Vuo  2.4.0
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
74char * 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
91bool 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
103{
104 VuoType_returnInequality(VuoReal, a.minimum, b.maximum);
105 VuoType_returnInequality(VuoReal, a.minimum, b.maximum);
106 return false;
107}