142 Variant(
const IO::FileTime& rhs);
259 bool operator==(
const IO::FileTime& rhs)
const;
300 bool operator!=(
const IO::FileTime& rhs)
const;
388 void SetGuid(
const Util::Guid& val);
390 const Util::Guid&
GetGuid()
const;
445 template <
typename TYPE>
549 this->
object->Release();
663 this->
f[0] = rhs.
f[0];
672 this->
f[0] = rhs.
f[0];
673 this->
f[1] = rhs.
f[1];
676 this->
f[0] = rhs.
f[0];
677 this->
f[1] = rhs.
f[1];
678 this->
f[2] = rhs.
f[2];
681 this->
f[0] = rhs.
f[0];
682 this->
f[1] = rhs.
f[1];
683 this->
f[2] = rhs.
f[2];
684 this->
f[3] = rhs.
f[3];
687 this->
f[0] = rhs.
f[0];
688 this->
f[1] = rhs.
f[1];
689 this->
f[2] = rhs.
f[2];
690 this->
f[3] = rhs.
f[3];
705 this->
guid =
new Util::Guid(*rhs.
guid);
708 this->
object = rhs.
object;
711 this->
object->AddRef();
751 n_error(
"Variant::Copy(): invalid type!");
946 this->
object->AddRef();
1007 this->
guid =
new Util::Guid(rhs);
1117 this->
i64 = rhs.AsEpochTime();
1152 this->
guid =
new Util::Guid;
1447 this->
guid =
new Util::Guid(val);
1481 this->
object->AddRef();
1684 this->
i64 = val.AsEpochTime();
1693 if (rhs.
type == this->type)
1700 return (this->
i8 == rhs.
i8);
1702 return (this->
i16 == rhs.
i16);
1706 return (this->
i == rhs.
i);
1708 return (this->
u == rhs.
u);
1710 return (this->
i64 == rhs.
i64);
1712 return (this->
u64 == rhs.
u64);
1714 return (this->
b == rhs.
b);
1716 return (this->
f[0] == rhs.
f[0]);
1718 return (this->
d == rhs.
d);
1720 return ((*this->
string) == (*rhs.
string));
1722 return ((this->
f[0] == rhs.
f[0]) && (this->f[1] == rhs.
f[1]));
1724 return ((this->
f[0] == rhs.
f[0]) &&
1725 (this->f[1] == rhs.
f[1]) &&
1726 (this->f[2] == rhs.
f[2]) &&
1727 (this->f[3] == rhs.
f[3]));
1729 return ((this->
f[0] == rhs.
f[0]) &&
1730 (this->f[1] == rhs.
f[1]) &&
1731 (this->f[2] == rhs.
f[2]) &&
1732 (this->f[3] == rhs.
f[3]));
1734 return ((*this->
guid) == (*rhs.
guid));
1736 return ((*this->
blob) == (*rhs.
blob));
1738 return (this->
object == rhs.
object);
1742 return ((*this->
m) == (*rhs.
m));
1744 return ((*this->
t) == (*rhs.
t));
1746 return (this->
i64 == rhs.
i64);
1748 n_error(
"Variant::operator==(): invalid variant type!");
1761 if (rhs.
type == this->type)
1768 return (this->
i8 > rhs.
i8);
1770 return (this->
i16 > rhs.
i16);
1774 return (this->
i > rhs.
i);
1776 return (this->
u > rhs.
u);
1778 return (this->
i64 > rhs.
i64);
1780 return (this->
u64 > rhs.
u64);
1782 return (this->
b > rhs.
b);
1784 return (this->
f[0] > rhs.
f[0]);
1786 return (this->
d > rhs.
d);
1788 return ((*this->
string) > (*rhs.
string));
1790 return ((this->
f[0] > rhs.
f[0]) && (this->f[1] > rhs.
f[1]));
1792 return ((this->
f[0] > rhs.
f[0]) &&
1793 (this->f[1] > rhs.
f[1]) &&
1794 (this->f[2] > rhs.
f[2]) &&
1795 (this->f[3] > rhs.
f[3]));
1797 return ((this->
f[0] > rhs.
f[0]) &&
1798 (this->f[1] > rhs.
f[1]) &&
1799 (this->f[2] > rhs.
f[2]) &&
1800 (this->f[3] > rhs.
f[3]));
1802 return ((*this->
guid) > (*rhs.
guid));
1804 return ((*this->
blob) > (*rhs.
blob));
1806 return (this->
object > rhs.
object);
1810 return (this->
i64 > rhs.
i64);
1812 n_error(
"Variant::operator>(): invalid variant type!");
1825 if (rhs.
type == this->type)
1832 return (this->
i8 < rhs.
i8);
1834 return (this->
i16 < rhs.
i16);
1838 return (this->
i < rhs.
i);
1840 return (this->
u < rhs.
u);
1842 return (this->
i64 < rhs.
i64);
1844 return (this->
u64 < rhs.
u64);
1846 return (this->
b < rhs.
b);
1848 return (this->
f[0] < rhs.
f[0]);
1850 return (this->
d > rhs.
d);
1852 return ((*this->
string) < (*rhs.
string));
1854 return ((this->
f[0] < rhs.
f[0]) && (this->f[1] < rhs.
f[1]));
1856 return ((this->
f[0] < rhs.
f[0]) &&
1857 (this->f[1] < rhs.
f[1]) &&
1858 (this->f[2] < rhs.
f[2]) &&
1859 (this->f[3] < rhs.
f[3]));
1861 return ((this->
f[0] < rhs.
f[0]) &&
1862 (this->f[1] < rhs.
f[1]) &&
1863 (this->f[2] < rhs.
f[2]) &&
1864 (this->f[3] < rhs.
f[3]));
1866 return ((*this->
guid) < (*rhs.
guid));
1868 return ((*this->
blob) < (*rhs.
blob));
1870 return (this->
object < rhs.
object);
1874 return (this->
i64 < rhs.
i64);
1876 n_error(
"Variant::operator<(): invalid variant type!");
1890 if (rhs.
type == this->type)
1897 return (this->
i8 >= rhs.
i8);
1899 return (this->
i16 >= rhs.
i16);
1903 return (this->
i >= rhs.
i);
1905 return (this->
u >= rhs.
u);
1907 return (this->
i64 >= rhs.
i64);
1909 return (this->
u64 >= rhs.
u64);
1911 return (this->
b >= rhs.
b);
1913 return (this->
f[0] >= rhs.
f[0]);
1915 return (this->
d >= rhs.
d);
1917 return ((*this->
string) >= (*rhs.
string));
1919 return ((this->
f[0] >= rhs.
f[0]) && (this->f[1] >= rhs.
f[1]));
1921 return ((this->
f[0] >= rhs.
f[0]) &&
1922 (this->f[1] >= rhs.
f[1]) &&
1923 (this->f[2] >= rhs.
f[2]) &&
1924 (this->f[3] >= rhs.
f[3]));
1926 return ((this->
f[0] >= rhs.
f[0]) &&
1927 (this->f[1] >= rhs.
f[1]) &&
1928 (this->f[2] >= rhs.
f[2]) &&
1929 (this->f[3] >= rhs.
f[3]));
1931 return ((*this->
guid) >= (*rhs.
guid));
1933 return ((*this->
blob) >= (*rhs.
blob));
1935 return (this->
object >= rhs.
object);
1939 return (this->
i64 >= rhs.
i64);
1941 n_error(
"Variant::operator>(): invalid variant type!");
1954 if (rhs.
type == this->type)
1961 return (this->
i8 <= rhs.
i8);
1963 return (this->
i16 <= rhs.
i16);
1967 return (this->
i <= rhs.
i);
1969 return (this->
u <= rhs.
u);
1971 return (this->
i64 <= rhs.
i64);
1973 return (this->
u64 <= rhs.
u64);
1975 return (this->
b <= rhs.
b);
1977 return (this->
f[0] <= rhs.
f[0]);
1979 return (this->
d >= rhs.
d);
1981 return ((*this->
string) <= (*rhs.
string));
1983 return ((this->
f[0] <= rhs.
f[0]) && (this->f[1] <= rhs.
f[1]));
1985 return ((this->
f[0] <= rhs.
f[0]) &&
1986 (this->f[1] <= rhs.
f[1]) &&
1987 (this->f[2] <= rhs.
f[2]) &&
1988 (this->f[3] <= rhs.
f[3]));
1990 return ((this->
f[0] <= rhs.
f[0]) &&
1991 (this->f[1] <= rhs.
f[1]) &&
1992 (this->f[2] <= rhs.
f[2]) &&
1993 (this->f[3] <= rhs.
f[3]));
1995 return ((*this->
guid) <= (*rhs.
guid));
1997 return ((*this->
blob) <= (*rhs.
blob));
1999 return (this->
object <= rhs.
object);
2003 return (this->
i64 <= rhs.
i64);
2005 n_error(
"Variant::operator<(): invalid variant type!");
2018 return !(*
this == rhs);
2028 return (this->
i8 == rhs);
2038 return (this->
i16 == rhs);
2048 return (this->
ui16 == rhs);
2058 return (this->
i == rhs);
2068 return (this->
u == rhs);
2078 return (this->
i64 == rhs);
2088 return (this->
u64 == rhs);
2098 return (this->
f[0] == rhs);
2108 return (this->
d == rhs);
2118 return (this->
b == rhs);
2128 return ((*this->
string) == rhs);
2148 return (this->
f[0] == rhs.
x && this->f[1] == rhs.
y);
2158 return ((this->
f[0] == rhs.
x) &&
2159 (this->f[1] == rhs.
y) &&
2160 (this->f[2] == rhs.
z) &&
2161 (this->f[3] == rhs.
w));
2171 return ((this->
f[0] == rhs.
x) &&
2172 (this->f[1] == rhs.
y) &&
2173 (this->f[2] == rhs.
z) &&
2174 (this->f[3] == rhs.
w));
2184 return (*this->
guid) == rhs;
2194 return this->
object == ptr;
2211{
return (this->
i64 == rhs.AsEpochTime());
2221 return (this->
i8 != rhs);
2231 return (this->
i16 != rhs);
2241 return (this->
ui16 != rhs);
2251 return (this->
i != rhs);
2261 return (this->
u != rhs);
2271 return (this->
i64 != rhs);
2281 return (this->
u64 != rhs);
2291 return (this->
f[0] != rhs);
2301 return (this->
d != rhs);
2311 return (this->
b != rhs);
2321 return (*this->
string) != rhs;
2341 return (this->
f[0] != rhs.
x || this->f[1] != rhs.
y);
2351 return ((this->
f[0] != rhs.
x) ||
2352 (this->f[1] != rhs.
y) ||
2353 (this->f[2] != rhs.
z) ||
2354 (this->f[3] != rhs.
w));
2364 return ((this->
f[0] != rhs.
x) ||
2365 (this->f[1] != rhs.
y) ||
2366 (this->f[2] != rhs.
z) ||
2367 (this->f[3] != rhs.
w));
2377 return (*this->
guid) != rhs;
2387 return (this->
object == ptr);
2397 return (this->
voidPtr == ptr);
2406 return (this->
i64 != rhs.AsEpochTime());
2673 return Math::vec4(this->
f[0], this->
f[1], this->
f[2], this->
f[3]);
2692 return Math::quat(this->
f[0], this->
f[1], this->
f[2], this->
f[3]);
2745inline const Util::Guid&
2749 return *(this->
guid);
2768 return *(this->
blob);
3005 IO::FileTime fileTime(this->
i64);
3022template <
typename TYPE>
3026 static_assert(
true,
"Get method for TYPE is not implemented!");
3346 case Guid: { retval = this->
GetGuid().AsString();
break; }
3352 n_error(
"Variant::ToString(): invalid type enum '%d'", this->
type);
3366 bool retval =
false;
3370 case UInt: {
if(
string.IsValidInt()) { this->
SetUInt(
string.AsInt()); retval =
true; }
break; };
3371 case Float: {
if(
string.IsValidFloat()) { this->
SetFloat(
string.AsFloat()); retval =
true; }
break; }
3372 case Bool: {
if(
string.IsValidBool()) { this->
SetBool(
string.AsBool()); retval =
true; }
break; }
3373 case Vec2: {
if(
string.IsValidVec2()) { this->
SetVec2(
string.AsVec2()); retval =
true; }
break; }
3374 case Vec4: {
if(
string.IsValidVec4()) { this->
SetVec4(
string.AsVec4()); retval =
true; }
break; }
3376 case Mat4: {
if(
string.IsValidMat4()) { this->
SetMat4(
string.AsMat4()); retval =
true; }
break; }
3377 case Transform44: {
if (
string.IsValidTransform44()) { this->
SetTransform44(
string.AsTransform44()); retval =
true; }
break; }
3384 for (
i = 0;
i < tokens.
Size();
i++)
3386 if (tokens[
i].IsValidInt())
3388 result.
Append(tokens[
i].AsInt());
3400 for (
i = 0;
i < tokens.
Size();
i++)
3402 if (tokens[
i].IsValidFloat())
3404 result.
Append(tokens[
i].AsFloat());
3416 for (
i = 0;
i < tokens.
Size();
i++)
3418 if (tokens[
i].IsValidBool())
3420 result.
Append(tokens[
i].AsBool());
3449 case Void:
return 0;
3450 case Byte:
return sizeof(uint8_t);
3451 case Short:
return sizeof(uint16_t);
3452 case UShort:
return sizeof(uint16_t);
3453 case Int:
return sizeof(uint32_t);
3454 case UInt:
return sizeof(uint32_t);
3455 case Int64:
return sizeof(uint64_t);
3456 case UInt64:
return sizeof(uint64_t);
3457 case Float:
return sizeof(float);
3458 case Double:
return sizeof(double);
3459 case Bool:
return sizeof(bool);
3460 case Vec2:
return sizeof(float) * 2;
3461 case Vec4:
return sizeof(float) * 4;
3467 case Guid:
return sizeof(Util::Guid);
3469 case VoidPtr:
return sizeof(
void*);
3480 n_error(
"Variant::Size(): invalid type enum '%d'!", this->
type);
3528 n_error(
"Variant::AsVoidPtr(): invalid type enum '%d'!", this->
type);
3541 if (
string.IsValidInt()) val.
SetInt(
string.AsInt());
3542 else if (
string.IsValidFloat()) val.
SetFloat(
string.AsFloat());
3543 else if (
string.IsValidVec2()) val.
SetVec2(
string.AsVec2());
3544 else if (
string.IsValidVec4()) val.
SetVec4(
string.AsVec4());
3545 else if (
string.IsValidBool()) val.
SetBool(
string.AsBool());
3546 else if (
string.IsValidMat4()) val.
SetMat4(
string.AsMat4());
3559 case Void:
return "void";
3560 case Byte:
return "byte";
3561 case Short:
return "short";
3562 case UShort:
return "ushort";
3563 case Int:
return "int";
3564 case UInt:
return "uint";
3565 case Int64:
return "int64";
3566 case UInt64:
return "uint64_t";
3567 case Float:
return "float";
3568 case Double:
return "double";
3569 case Bool:
return "bool";
3570 case Vec2:
return "vec2";
3571 case Vec4:
return "vec4";
3573 case String:
return "string";
3574 case Mat4:
return "mat4";
3576 case Blob:
return "blob";
3577 case Guid:
return "guid";
3578 case Object:
return "object";
3579 case VoidPtr:
return "voidptr";
3590 n_error(
"Variant::TypeToString(): invalid type enum '%d'!",
t);
3601 if (
"void" == str)
return Void;
3602 else if (
"byte" == str)
return Byte;
3603 else if (
"short" == str)
return Short;
3604 else if (
"ushort" == str)
return UShort;
3605 else if (
"int" == str)
return Int;
3606 else if (
"uint" == str)
return UInt;
3607 else if (
"int64" == str)
return Int64;
3608 else if (
"uint64_t" == str)
return UInt64;
3609 else if (
"float" == str)
return Float;
3610 else if (
"double" == str)
return Double;
3611 else if (
"bool" == str)
return Bool;
3612 else if (
"vec2" == str)
return Vec2;
3613 else if (
"vec4" == str)
return Vec4;
3614 else if (
"color" == str)
return Vec4;
3615 else if (
"quaternion" == str)
return Quaternion;
3616 else if (
"string" == str)
return String;
3617 else if (
"mat4" == str)
return Mat4;
3618 else if (
"transform44" == str)
return Transform44;
3619 else if (
"blob" == str)
return Blob;
3620 else if (
"guid" == str)
return Guid;
3621 else if (
"object" == str)
return Object;
3622 else if (
"voidptr" == str)
return VoidPtr;
3623 else if (
"intarray" == str)
return IntArray;
3624 else if (
"floatarray" == str)
return FloatArray;
3625 else if (
"boolarray" == str)
return BoolArray;
3626 else if (
"vec2array" == str)
return Vec2Array;
3627 else if (
"vec4array" == str)
return Vec4Array;
3628 else if (
"mat4array" == str)
return Mat4Array;
3629 else if (
"stringarray" == str)
return StringArray;
3630 else if (
"guidarray" == str)
return GuidArray;
3631 else if (
"blobarray" == str)
return BlobArray;
3634 n_error(
"Variant::StringToType(): invalid type string '%s'!", str.
AsCharPtr());
The common base class of Nebula.
Definition refcounted.h:38
Nebula's dynamic array class.
Definition array.h:60
void Append(const TYPE &first, const ELEM_TYPE &... elements)
Append multiple elements to the end of the array.
Definition array.h:1334
const SizeT Size() const
get number of elements in array
Definition array.h:880
The Util::Blob class encapsulates a chunk of raw memory into a C++ object which can be copied,...
Definition blob.h:22
An "any type" variable.
Definition variant.h:32
void SetDouble(double val)
set double content
Definition variant.h:2567
Util::Array< Math::mat4 > * mat4Array
Definition variant.h:497
const Util::Array< Util::String > & GetStringArray() const
get string array content
Definition variant.h:2955
void SetBlob(const Util::Blob &val)
set blob
Definition variant.h:2756
int64_t GetInt64() const
get integer content
Definition variant.h:2518
Core::RefCounted * object
Definition variant.h:490
const Math::mat4 & GetMat4() const
get mat4 content
Definition variant.h:2708
Math::quat GetQuat() const
get quaternion content
Definition variant.h:2689
Type
variant types
Definition variant.h:36
@ Short
Definition variant.h:39
@ BlobArray
Definition variant.h:67
@ UInt64
Definition variant.h:44
@ Int
Definition variant.h:41
@ Vec4Array
Definition variant.h:64
@ Quaternion
Definition variant.h:51
@ Blob
Definition variant.h:55
@ Vec3Array
Definition variant.h:63
@ Transform44
Definition variant.h:54
@ Float
Definition variant.h:45
@ Bool
Definition variant.h:47
@ FloatArray
Definition variant.h:60
@ Vec2
Definition variant.h:48
@ GuidArray
Definition variant.h:68
@ String
Definition variant.h:52
@ Object
Definition variant.h:57
@ StringArray
Definition variant.h:65
@ FileTime
Definition variant.h:69
@ Void
Definition variant.h:37
@ NumTypes
Definition variant.h:70
@ UInt
Definition variant.h:42
@ IntArray
Definition variant.h:59
@ Mat4Array
Definition variant.h:66
@ Vec3
Definition variant.h:49
@ Guid
Definition variant.h:56
@ Double
Definition variant.h:46
@ Mat4
Definition variant.h:53
@ VoidPtr
Definition variant.h:58
@ Vec2Array
Definition variant.h:62
@ Int64
Definition variant.h:43
@ Byte
Definition variant.h:38
@ Vec4
Definition variant.h:50
@ UShort
Definition variant.h:40
@ BoolArray
Definition variant.h:61
const Util::Array< Math::mat4 > & GetMat4Array() const
get mat4 array content
Definition variant.h:2936
Math::vec4 GetVec4() const
get vec4 content
Definition variant.h:2670
int GetInt() const
get integer content
Definition variant.h:2488
double d
Definition variant.h:482
const Util::String & GetString() const
get string content
Definition variant.h:2614
bool operator>=(const Variant &rhs) const
greater equal operator
Definition variant.h:1888
void * voidPtr
Definition variant.h:489
bool b
Definition variant.h:481
void SetFloat(float val)
set float content
Definition variant.h:2548
Util::Guid * guid
Definition variant.h:487
uint GetUInt() const
get unsigned integer content
Definition variant.h:2498
void SetBool(bool val)
set bool content
Definition variant.h:2586
Math::transform44 * t
Definition variant.h:485
bool GetBool() const
get bool content
Definition variant.h:2595
void Clear()
clear content, resets type to void
Definition variant.h:624
static Variant FromString(const Util::String &string)
create from string
Definition variant.h:3538
Util::Blob * blob
Definition variant.h:488
void SetShort(short val)
set short content
Definition variant.h:2432
IO::FileTime GetFileTime() const
get filetime content
Definition variant.h:3002
bool operator!=(const Variant &rhs) const
inequality operator
Definition variant.h:2016
void SetBoolArray(const Util::Array< bool > &val)
set bool array content
Definition variant.h:2851
void operator=(const Variant &rhs)
assignment operator
Definition variant.h:1211
const Util::Array< Math::vec3 > & GetVec3Array() const
get vec4 array content
Definition variant.h:2898
void SetByte(byte val)
set byte content
Definition variant.h:2413
void SetFileTime(const IO::FileTime &val)
set filetime content
Definition variant.h:2993
Util::Array< bool > * boolArray
Definition variant.h:493
ushort ui16
Definition variant.h:476
void SetBlobArray(const Util::Array< Util::Blob > &val)
set blob array content
Definition variant.h:2984
void SetVec3Array(const Util::Array< Math::vec3 > &val)
set vec4 array content
Definition variant.h:2889
Variant()
default constructor
Definition variant.h:508
Util::Array< Util::Guid > * guidArray
Definition variant.h:499
Type GetType() const
get type
Definition variant.h:1202
void SetGuid(const Util::Guid &val)
set guid content
Definition variant.h:2737
void SetString(const Util::String &val)
set string content
Definition variant.h:2605
Util::Array< Util::Blob > * blobArray
Definition variant.h:500
const Util::Array< float > & GetFloatArray() const
get float array content
Definition variant.h:2841
void SetFloatArray(const Util::Array< float > &val)
set float array content
Definition variant.h:2832
void SetType(Type t)
set type of attribute
Definition variant.h:1133
void SetInt64(int64_t val)
set integer content
Definition variant.h:2508
TYPE Get() const
Templated get method.
Definition variant.h:3024
void SetMat4Array(const Util::Array< Math::mat4 > &val)
set mat4 array content
Definition variant.h:2927
void SetVec4Array(const Util::Array< Math::vec4 > &val)
set vec4 array content
Definition variant.h:2908
const Util::Array< Util::Blob > & GetBlobArray() const
get blob array content
Definition variant.h:3013
bool operator==(const Variant &rhs) const
equality operator
Definition variant.h:1691
const Util::Guid & GetGuid() const
get guid content
Definition variant.h:2746
void SetVec2(const Math::vec2 &val)
set vec2 content
Definition variant.h:2624
float GetFloat() const
get float content
Definition variant.h:2557
void SetUInt64(uint64_t val)
set unsigned integer content
Definition variant.h:2528
void SetVoidPtr(void *ptr)
set opaque void pointer
Definition variant.h:2794
uint64_t GetUInt64() const
get unsigned integer content
Definition variant.h:2538
void SetVec2Array(const Util::Array< Math::vec2 > &val)
set vec2 array content
Definition variant.h:2870
void SetStringArray(const Util::Array< Util::String > &val)
set string array content
Definition variant.h:2946
const Util::Array< Util::Guid > & GetGuidArray() const
get guid array content
Definition variant.h:2974
Math::vec3 GetVec3() const
get vec4 content
Definition variant.h:2652
Util::Array< Math::vec4 > * vec4Array
Definition variant.h:496
const void * AsVoidPtr() const
get pointer to data
Definition variant.h:3490
static Type StringToType(const Util::String &str)
convert string to type
Definition variant.h:3599
void Delete()
delete current content
Definition variant.h:519
void SetIntArray(const Util::Array< int > &val)
set int array content
Definition variant.h:2813
Type type
Definition variant.h:471
const Math::transform44 & GetTransform44() const
get transform44 content
Definition variant.h:2727
Core::RefCounted * GetObject() const
get object pointer
Definition variant.h:2784
void SetQuat(const Math::quat &val)
set quaternion content
Definition variant.h:2680
Math::mat4 * m
Definition variant.h:484
bool operator<(const Variant &rhs) const
less operator
Definition variant.h:1823
const Util::Blob & GetBlob() const
get blob
Definition variant.h:2765
static Util::String TypeToString(Type t)
convert type to string
Definition variant.h:3555
short i16
Definition variant.h:475
Util::Array< float > * floatArray
Definition variant.h:492
int i
Definition variant.h:477
void SetVec3(const Math::vec3 &val)
set vec4 content
Definition variant.h:2643
int64_t i64
Definition variant.h:479
double GetDouble() const
get double content
Definition variant.h:2576
float f[4]
Definition variant.h:483
short GetShort() const
get short content
Definition variant.h:2450
Util::String * string
Definition variant.h:486
byte i8
Definition variant.h:474
const Util::Array< Math::vec4 > & GetVec4Array() const
get vec4 array content
Definition variant.h:2917
bool SetParseString(const Util::String &string)
set value from string, if type doesn't match, returns false
Definition variant.h:3364
bool operator<=(const Variant &rhs) const
less equal operator
Definition variant.h:1952
bool operator>(const Variant &rhs) const
greater operator
Definition variant.h:1759
void * GetVoidPtr() const
get void pointer
Definition variant.h:2803
uint64_t u64
Definition variant.h:480
const SizeT Size() const
get size of data
Definition variant.h:3445
void SetInt(int val)
set integer content
Definition variant.h:2470
const Util::Array< Math::vec2 > & GetVec2Array() const
get vec2 array content
Definition variant.h:2879
Util::Array< int > * intArray
Definition variant.h:491
void SetObject(Core::RefCounted *ptr)
set object pointer
Definition variant.h:2775
~Variant()
destructor
Definition variant.h:1124
void Copy(const Variant &rhs)
copy current content
Definition variant.h:633
Util::Array< Math::vec2 > * vec2Array
Definition variant.h:494
void SetUInt(uint val)
set unsigned integer content
Definition variant.h:2479
void SetTransform44(const Math::transform44 &val)
set transform44 content
Definition variant.h:2718
Util::Array< Math::vec3 > * float3Array
Definition variant.h:495
void SetMat4(const Math::mat4 &val)
set mat4 content
Definition variant.h:2699
ushort GetUShort() const
get short content
Definition variant.h:2460
Math::vec2 GetVec2() const
get vec2 content
Definition variant.h:2633
Util::Array< Util::String > * stringArray
Definition variant.h:498
const Util::Array< int > & GetIntArray() const
get int array content
Definition variant.h:2822
void SetGuidArray(const Util::Array< Util::Guid > &val)
set guid array content
Definition variant.h:2965
Util::String ToString() const
convert value to string
Definition variant.h:3324
uint u
Definition variant.h:478
void SetUShort(ushort val)
set ushort content
Definition variant.h:2441
void SetVec4(const Math::vec4 &val)
set vec4 content
Definition variant.h:2661
const Util::Array< bool > & GetBoolArray() const
get bool array content
Definition variant.h:2860
byte GetByte() const
get byte content
Definition variant.h:2422
void __cdecl n_error(const char *msg,...)
This function is called when a serious situation is encountered which requires abortion of the applic...
Definition debug.cc:138
#define n_assert(exp)
Definition debug.h:50
Implements a memory related functions.
A quad tree designed to return regions of free 2D space.
Definition String.cs:6
A 4x4 single point precision float matrix.
Definition mat4.h:49
A quaternion is usually used to represent an orientation in 3D space.
Definition quat.h:30
float y
Definition quat.h:78
void storeu(scalar *ptr) const
write content to unaligned memory through the write cache
Definition quat.h:184
float z
Definition quat.h:78
float w
Definition quat.h:78
float x
Definition quat.h:78
A 2-component float vector class.
Definition vec2.h:21
scalar x
Definition vec2.h:88
scalar y
Definition vec2.h:89
A 3D vector.
Definition vec3.h:37
void storeu(scalar *ptr) const
write content to unaligned memory through the write cache
Definition vec3.h:198
A 4D vector.
Definition vec4.h:24
float y
Definition vec4.h:95
float z
Definition vec4.h:95
float w
Definition vec4.h:95
void storeu(scalar *ptr) const
write content to unaligned memory through the write cache
Definition vec4.h:203
float x
Definition vec4.h:95
Nebula's universal string class.
Definition String.cs:8
static String FromFloat(float f)
construct a string from a float
Definition string.h:1000
static String FromShort(short i)
construct a string from a short
Definition string.h:901
static String FromVec3(const Math::vec3 &v)
construct a string from vec3
Definition string.h:1045
static String FromVec4(const Math::vec4 &v)
construct a string from vec4
Definition string.h:1056
static String FromVec2(const Math::vec2 &v)
construct a string from vec2
Definition string.h:1034
static String FromUInt(uint i)
construct a string from a uint
Definition string.h:934
static String FromBlob(const Util::Blob &b)
create from blob
Definition string.cc:1220
const char * AsCharPtr() const
return contents as character pointer
Definition string.h:558
void AppendBool(bool val)
append bool value
Definition string.h:1200
static String FromQuat(const Math::quat &q)
construct a string from quat
Definition string.h:1100
static String FromInt(int i)
construct a string from an int
Definition string.h:923
static String FromUShort(ushort i)
construct a string from a ushort
Definition string.h:912
static String FromDouble(double f)
construct a string from a double
Definition string.h:1011
static String FromByte(byte i)
construct a string from a byte
Definition string.h:879
void Append(const String &str)
append string
Definition string.h:633
static String FromBool(bool b)
construct a string from a bool
Definition string.h:1022
static String FromTransform44(const Math::transform44 &m)
construct a string from transform44
Definition string.h:1122
void AppendFloat(float val)
append float value
Definition string.h:1191
static String FromMat4(const Math::mat4 &m)
construct a string from mat4
Definition string.h:1111
void AppendInt(int val)
append int value
Definition string.h:1164
int SizeT
Definition types.h:42
unsigned int uint
Definition types.h:33
unsigned short ushort
Definition types.h:34
int IndexT
Definition types.h:41