18 #define _unumber_hpp_ 1 20 #include <ubit/unode.hpp> 32 virtual int intValue()
const = 0;
33 virtual float floatValue()
const = 0;
34 virtual double doubleValue()
const = 0;
35 virtual UStr toString()
const = 0;
40 virtual void changed(
bool =
true);
52 UInt(
int v = 0) : value(v) {}
53 UInt(
const UInt& v) : value(v.value) {}
55 UInt(
const std::string&);
57 operator int()
const {
return value;}
60 friend std::istream& operator>>(std::istream&,
UInt&);
63 int intValue()
const {
return value;}
64 float floatValue()
const {
return float(value);}
65 double doubleValue()
const {
return double(value);}
66 UStr toString()
const;
72 UInt& operator=(
int v) {
return setImpl(v);}
73 UInt& operator=(
const UInt& v) {
return setImpl(v.value);}
75 UInt& operator=(
const char* s) {
return setImpl(s);}
77 UInt& operator=(
const std::string& s);
79 friend std::ostream& operator<<(std::ostream&,
const UInt&);
84 bool operator==(
int v)
const {
return value == v;}
85 bool operator==(
double v)
const {
return value == v;}
86 bool operator==(
const UInt& v)
const {
return value == v.value;}
88 bool operator!=(
int v)
const {
return value != v;}
89 bool operator!=(
double v)
const {
return value != v;}
90 bool operator!=(
const UInt& v)
const {
return value != v.value;}
92 bool operator<(
int v)
const {
return value < v;}
93 bool operator<(
double v)
const {
return value < v;}
94 bool operator<(
const UInt& v)
const {
return value < v.value;}
96 bool operator<=(
int v)
const {
return value <= v;}
97 bool operator<=(
double v)
const {
return value <= v;}
98 bool operator<=(
const UInt& v)
const {
return value <= v.value;}
100 bool operator>(
int v)
const {
return value > v;}
101 bool operator>(
double v)
const {
return value > v;}
102 bool operator>(
const UInt& v)
const {
return value > v.value;}
104 bool operator>=(
int v)
const {
return value >= v;}
105 bool operator>=(
double v)
const {
return value >= v;}
106 bool operator>=(
const UInt& v)
const {
return value >= v.value;}
110 UInt& operator++() {
return setImpl(value+1);}
111 UInt operator++(
int);
112 UInt& operator--() {
return setImpl(value-1);}
113 UInt operator--(
int);
115 UInt& operator+=(
int v) {
return setImpl(value+v);}
116 UInt& operator+=(
const UInt& v) {
return setImpl(value+v.value);}
117 UInt& operator-=(
int v) {
return setImpl(value-v);}
118 UInt& operator-=(
const UInt& v) {
return setImpl(value-v.value);}
119 UInt& operator*=(
int v) {
return setImpl(value*v);}
120 UInt& operator*=(
const UInt& v) {
return setImpl(value*v.value);}
121 UInt& operator/=(
int v) {
return setImpl(value/v);}
122 UInt& operator/=(
const UInt& v) {
return setImpl(value/v.value);}
126 virtual UInt& setImpl(
int,
bool call_callbacks =
true);
127 virtual UInt& setImpl(
const char*,
bool call_callbacks =
true);
144 UFloat(
float v = 0.0) : value(v) {}
149 UFloat(
const std::string&);
151 operator float()
const {
return value;}
154 friend std::ostream& operator<<(std::ostream&,
const UFloat&);
157 int intValue()
const {
return int(value);}
158 float floatValue()
const {
return value;}
159 double doubleValue()
const {
return double(value);}
160 UStr toString()
const;
164 UFloat& operator=(
float v) {
return setImpl(v);}
165 UFloat& operator=(
const UFloat& v) {
return setImpl(v.value);}
166 UFloat& operator=(
const UInt& v) {
return setImpl(v.value);}
167 UFloat& operator=(
const char* s) {
return setImpl(s);}
169 UFloat& operator=(
const std::string& s);
171 friend std::istream& operator>>(std::istream&,
UFloat&);
176 bool operator==(
float v)
const {
return value == v;}
177 bool operator==(
double v)
const {
return value == v;}
178 bool operator==(
const UFloat& v)
const {
return value == v.value;}
180 bool operator!=(
float v)
const {
return value != v;}
181 bool operator!=(
double v)
const {
return value != v;}
182 bool operator!=(
const UFloat& v)
const {
return value != v.value;}
184 bool operator<(
float v)
const {
return value < v;}
185 bool operator<(
double v)
const {
return value < v;}
186 bool operator<(
const UFloat& v)
const {
return value < v.value;}
188 bool operator<=(
float v)
const {
return value <= v;}
189 bool operator<=(
double v)
const {
return value <= v;}
190 bool operator<=(
const UFloat& v)
const {
return value <= v.value;}
192 bool operator>(
float v)
const {
return value > v;}
193 bool operator>(
double v)
const {
return value > v;}
194 bool operator>(
const UFloat& v)
const {
return value > v.value;}
196 bool operator>=(
float v)
const {
return value >= v;}
197 bool operator>=(
double v)
const {
return value >= v;}
198 bool operator>=(
const UFloat& v)
const {
return value >= v.value;}
202 UFloat& operator++() {
return setImpl(value+1);}
204 UFloat& operator--() {
return setImpl(value-1);}
207 UFloat& operator+=(
int v) {
return setImpl(value+v);}
208 UFloat& operator+=(
const UFloat& v) {
return setImpl(value+v.value);}
209 UFloat& operator-=(
int v) {
return setImpl(value-v);}
210 UFloat& operator-=(
const UFloat& v) {
return setImpl(value-v.value);}
211 UFloat& operator*=(
int v) {
return setImpl(value*v);}
212 UFloat& operator*=(
const UFloat& v) {
return setImpl(value*v.value);}
213 UFloat& operator/=(
int v) {
return setImpl(value/v);}
214 UFloat& operator/=(
const UFloat& v) {
return setImpl(value/v.value);}
218 virtual UFloat& setImpl(
float,
bool call_callbacks =
true);
219 virtual UFloat& setImpl(
const char*,
bool call_callbacks =
true);
236 UDouble(
double v = 0.0) : value(v) {}
243 operator double()
const {
return value;}
246 friend std::ostream& operator<<(std::ostream&,
const UDouble&);
249 int intValue()
const {
return int(value);}
250 float floatValue()
const {
return float(value);}
251 double doubleValue()
const {
return value;}
252 UStr toString()
const;
256 UDouble& operator=(
double v) {
return setImpl(v);}
258 UDouble& operator=(
const UFloat& v) {
return setImpl(v.value);}
259 UDouble& operator=(
const UInt& v) {
return setImpl(v.value);}
261 UDouble& operator=(
const char* s) {
return setImpl(s);}
263 UDouble& operator=(
const std::string& s);
265 friend std::istream& operator>>(std::istream&,
UDouble&);
270 bool operator==(
float v)
const {
return value == v;}
271 bool operator==(
double v)
const {
return value == v;}
272 bool operator==(
const UDouble& v)
const {
return value == v.value;}
274 bool operator!=(
float v)
const {
return value != v;}
275 bool operator!=(
double v)
const {
return value != v;}
276 bool operator!=(
const UDouble& v)
const {
return value != v.value;}
278 bool operator<(
float v)
const {
return value < v;}
279 bool operator<(
double v)
const {
return value < v;}
280 bool operator<(
const UDouble& v)
const {
return value < v.value;}
282 bool operator<=(
float v)
const {
return value <= v;}
283 bool operator<=(
double v)
const {
return value <= v;}
284 bool operator<=(
const UDouble& v)
const {
return value <= v.value;}
286 bool operator>(
float v)
const {
return value > v;}
287 bool operator>(
double v)
const {
return value > v;}
288 bool operator>(
const UDouble& v)
const {
return value > v.value;}
290 bool operator>=(
float v)
const {
return value >= v;}
291 bool operator>=(
double v)
const {
return value >= v;}
292 bool operator>=(
const UDouble& v)
const {
return value >= v.value;}
296 UDouble& operator++() {
return setImpl(value+1);}
298 UDouble& operator--() {
return setImpl(value-1);}
301 UDouble& operator+=(
int v) {
return setImpl(value+v);}
302 UDouble& operator+=(
const UDouble& v) {
return setImpl(value+v.value);}
303 UDouble& operator-=(
int v) {
return setImpl(value-v);}
304 UDouble& operator-=(
const UDouble& v) {
return setImpl(value-v.value);}
305 UDouble& operator*=(
int v) {
return setImpl(value*v);}
306 UDouble& operator*=(
const UDouble& v) {
return setImpl(value*v.value);}
307 UDouble& operator/=(
int v) {
return setImpl(value/v);}
308 UDouble& operator/=(
const UDouble& v) {
return setImpl(value/v.value);}
312 virtual UDouble& setImpl(
double,
bool call_callbacks =
true);
313 virtual UDouble& setImpl(
const char*,
bool call_callbacks =
true);
Active Number base class.
Definition: unumber.hpp:27
Base class of objects that can be added to the UBIT scene graph (SEE DETAILS!).
Definition: unode.hpp:38
virtual void changed(bool=true)
called when object's content is changed.
Definition: unumber.cpp:36
virtual UNumber & onChange(UCall &)
adds callbacks that are activated when the objects' value changes.
Definition: unumber.cpp:31
base class of callback objects for firing functions or methods.
Definition: ucall.hpp:144
Active Integer.
Definition: unumber.hpp:48
Definition: uhardfont.hpp:31
Active Double.
Definition: unumber.hpp:232
Active Float.
Definition: unumber.hpp:140
Ubit String.
Definition: ustr.hpp:72