Vuo  2.0.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
24 
26 
39 {
40  return (VuoRange){
43  ""
44  };
45 }
46 
52 {
53  json_object *js = json_object_new_object();
54 
55  if (value.minimum != VuoRange_NoMinimum)
56  {
57  json_object *cutoffObject = VuoReal_getJson(value.minimum);
58  json_object_object_add(js, "minimum", cutoffObject);
59  }
60 
61  if (value.maximum != VuoRange_NoMaximum)
62  {
63  json_object *cropObject = VuoReal_getJson(value.maximum);
64  json_object_object_add(js, "maximum", cropObject);
65  }
66 
67  return js;
68 }
69 
70 
75 char * VuoRange_getSummary(const VuoRange value)
76 {
77  if (value.minimum != VuoRange_NoMinimum && value.maximum != VuoRange_NoMaximum)
78  return VuoText_format("%g to %g", value.minimum, value.maximum);
79  else if (value.minimum != VuoRange_NoMinimum)
80  return VuoText_format("%g to ∞", value.minimum);
81  else if (value.maximum != VuoRange_NoMaximum)
82  return VuoText_format("-∞ to %g", value.maximum);
83  else
84  return VuoText_format("-∞ to ∞");
85 }
86 
92 bool VuoRange_areEqual(const VuoRange a, const VuoRange b)
93 {
94  return VuoReal_areEqual(a.minimum, b.minimum)
95  && VuoReal_areEqual(a.maximum, b.maximum);
96 }
97 
103 bool VuoRange_isLessThan(const VuoRange a, const VuoRange b)
104 {
105  VuoType_returnInequality(VuoReal, a.minimum, b.maximum);
106  VuoType_returnInequality(VuoReal, a.minimum, b.maximum);
107  return false;
108 }