Vuo  2.3.2
VuoRange.c
Go to the documentation of this file.
1 
10 #include "type.h"
11 
13 #ifdef VUO_COMPILER
15  "title" : "Range",
16  "description" : "Defines a range with an optionally bound/unbound min/max.",
17  "keywords" : [ ],
18  "version" : "1.0.0",
19  "dependencies" : [
20  "VuoReal"
21  ]
22  });
23 #endif
25 
26 
39 {
40  return (VuoRange){
43  };
44 }
45 
51 {
52  json_object *js = json_object_new_object();
53 
54  if (value.minimum != VuoRange_NoMinimum)
55  {
56  json_object *cutoffObject = VuoReal_getJson(value.minimum);
57  json_object_object_add(js, "minimum", cutoffObject);
58  }
59 
60  if (value.maximum != VuoRange_NoMaximum)
61  {
62  json_object *cropObject = VuoReal_getJson(value.maximum);
63  json_object_object_add(js, "maximum", cropObject);
64  }
65 
66  return js;
67 }
68 
69 
74 char * VuoRange_getSummary(const VuoRange value)
75 {
76  if (value.minimum != VuoRange_NoMinimum && value.maximum != VuoRange_NoMaximum)
77  return VuoText_format("%g to %g", value.minimum, value.maximum);
78  else if (value.minimum != VuoRange_NoMinimum)
79  return VuoText_format("%g to ∞", value.minimum);
80  else if (value.maximum != VuoRange_NoMaximum)
81  return VuoText_format("-∞ to %g", value.maximum);
82  else
83  return VuoText_format("-∞ to ∞");
84 }
85 
91 bool VuoRange_areEqual(const VuoRange a, const VuoRange b)
92 {
93  return VuoReal_areEqual(a.minimum, b.minimum)
94  && VuoReal_areEqual(a.maximum, b.maximum);
95 }
96 
102 bool VuoRange_isLessThan(const VuoRange a, const VuoRange b)
103 {
104  VuoType_returnInequality(VuoReal, a.minimum, b.maximum);
105  VuoType_returnInequality(VuoReal, a.minimum, b.maximum);
106  return false;
107 }