17 #define __mUndefDValue 1e30 18 #define __mUndefFValue 1e30f 19 #define __mIsUndefinedD(x) (((x)>9.99999e29)&&((x)<1.00001e30)) 21 #define __mIsUndefinedF(x) (((x)>9.99999e29f)&&((x)<1.00001e30f)) 22 #define __mUndefIntVal 2109876543 24 #define __mUndefIntVal64 9223344556677889900LL 67 static od_int16
val() {
return 32766; }
68 static bool hasUdf() {
return false; }
69 static bool isUdf( od_int16 i ) {
return i == 32766; }
70 static void setUdf( od_int16& i ) { i = 32766; }
82 static od_uint16
val() {
return 65534; }
83 static bool hasUdf() {
return false; }
98 static bool hasUdf() {
return true; }
157 static bool val() {
return false; }
159 static bool isUdf(
bool b ) {
return false; }
160 static void setUdf(
bool& b ) { b =
false; }
202 static const char*
val() {
return ""; }
204 static bool isUdf(
const char* s ) {
return !s || !*s; }
217 static const char*
val() {
return ""; }
219 static bool isUdf(
const char* s ) {
return !s || !*s; }
220 static void setUdf(
char*& s ) {
if ( s ) *s =
'\0'; }
232 static char val() {
return -127; }
234 static bool isUdf(
const char s ) {
return s==-127; }
235 static void setUdf(
char& s ) { s = -127; }
240 template <
class T>
inline 246 template <
class T>
inline 253 template <
class T>
inline 259 template <
class T>
inline 270 #define mUdf(type) Values::Undef<type>::val() 271 #define mSetUdf(val) Values::setUdf(val) 285 # define mIsUdf(val) isUdfImpl(val) 292 #define mFastMaxReasonableFloat 1e20f 293 #define mFastIsFloatDefined(fval) \ 294 ( (fval>-mFastMaxReasonableFloat && fval<mFastMaxReasonableFloat) || \ 295 (!__mIsUndefinedF(fval) && Math::IsNormalNumber(fval)) ) static bool hasUdf()
Definition: undefval.h:158
static double val()
Definition: undefval.h:187
static bool isUdf(int64_t i)
Definition: undefval.h:129
static bool val()
Definition: undefval.h:157
Templatized undefined and initialisation (i.e. null) values.
Definition: color.h:113
static bool isUdf(float f)
Definition: undefval.h:174
bool hasUdf()
Definition: undefval.h:254
#define mGlobal(module)
Definition: commondefs.h:160
#define od_int64
Definition: plftypes.h:34
static void setUdf(unsigned int &i)
Definition: undefval.h:115
#define mDefineStaticLocalObject(type, var, init)
Definition: commondefs.h:199
static void setUdf(short &i)
Definition: undefval.h:70
bool isUdfImpl(T val)
Definition: undefval.h:277
static bool hasUdf()
Definition: undefval.h:233
static void setUdf(uint64_t &i)
Definition: undefval.h:145
static bool hasUdf()
Definition: undefval.h:173
static bool isUdf(short i)
Definition: undefval.h:69
#define __mIsUndefinedF(x)
Definition: undefval.h:21
static void setUdf(char &s)
Definition: undefval.h:235
static bool hasUdf()
Definition: undefval.h:143
static unsigned short val()
Definition: undefval.h:82
static bool isUdf(unsigned int i)
Definition: undefval.h:84
static int val()
Definition: undefval.h:97
static bool isUdf(unsigned int i)
Definition: undefval.h:114
static bool hasUdf()
Definition: undefval.h:68
#define __mUndefIntVal
Almost MAXINT so unlikely, but not MAXINT to avoid that.
Definition: undefval.h:23
static bool hasUdf()
Definition: undefval.h:188
#define od_uint32
Definition: plftypes.h:30
static bool isUdf(int i)
Definition: undefval.h:99
static const char * val()
Definition: undefval.h:217
static void setUdf(const char *&)
Definition: undefval.h:205
static const char * val()
Definition: undefval.h:202
static void setUdf(double &d)
Definition: undefval.h:190
static float val()
Definition: undefval.h:172
static bool hasUdf()
Definition: undefval.h:83
static bool isUdf(uint64_t i)
Definition: undefval.h:144
static unsigned int val()
Definition: undefval.h:112
#define od_int16
Definition: plftypes.h:25
static char val()
Definition: undefval.h:232
#define od_uint64
Definition: plftypes.h:35
static bool hasUdf()
Definition: undefval.h:218
const T & udfVal(const T &t)
Definition: undefval.h:247
#define od_int32
Definition: plftypes.h:29
static bool hasUdf()
Definition: undefval.h:203
static bool isUdf(const char *s)
Definition: undefval.h:204
static void setUdf(unsigned int &i)
Definition: undefval.h:85
static bool isUdf(const char s)
Definition: undefval.h:234
static void setUdf(int64_t &i)
Definition: undefval.h:130
static bool isUdf(double d)
Definition: undefval.h:189
T & setUdf(T &u)
Definition: undefval.h:260
#define __mUndefDValue
Undefined value. IEEE gives NaN but that's not exactly what we want.
Definition: undefval.h:17
#define od_uint16
Definition: plftypes.h:26
static void setUdf(int &i)
Definition: undefval.h:100
static void setUdf(bool &b)
Definition: undefval.h:160
static bool hasUdf()
Definition: undefval.h:113
static bool isUdf(const char *s)
Definition: undefval.h:219
#define __mIsUndefinedD(x)
Check on undefined. Also works when double converted to float and vv.
Definition: undefval.h:20
static void setUdf(char *&s)
Definition: undefval.h:220
static bool isUdf(bool b)
Definition: undefval.h:159
#define __mUndefFValue
Definition: undefval.h:18
static bool hasUdf()
Definition: undefval.h:98
#define mClass(module)
Definition: commondefs.h:161
bool isUdf(const T &t)
Definition: undefval.h:241
static short val()
Definition: undefval.h:67
#define __mUndefIntVal64
Almost MAXINT64 therefore unlikely.
Definition: undefval.h:25
static uint64_t val()
Definition: undefval.h:142
static void setUdf(float &f)
Definition: undefval.h:175
static int64_t val()
Definition: undefval.h:127
Templatized undefined values.
Definition: undefval.h:49
static bool hasUdf()
Definition: undefval.h:128