72 bool HasAttr(
const char* attr)
const;
84 bool GetBool(
const char* attr = 0)
const;
86 int GetInt(
const char* attr = 0)
const;
90 float GetFloat(
const char* attr = 0)
const;
102 template<
typename T>
void Get(T& target,
const char* attr = 0);
109 bool GetOptBool(
const char* attr,
bool defaultValue)
const;
111 int GetOptInt(
const char* attr,
int defaultValue)
const;
113 float GetOptFloat(
const char* attr,
float defaultValue)
const;
124 template<
typename T>
bool GetOpt(T& target,
const char* attr = 0);
126 template<
typename T>
bool GetOpt(T& target,
const char* attr,
const T& _default);
130 const pjson::value_variant*
GetChild(
const char * key = 0)
const;
190 this->
Get(target, attr);
214template<
unsigned int N>
221 unsigned int count = arr.
Size();
223 for (
unsigned int i = 0; i < count; i++)
bool GetOptBool(const char *attr, bool defaultValue) const
get optional bool attribute value from current node
Definition jsonreader.cc:666
float GetFloat(const char *attr=0) const
get float attribute value from current node
Definition jsonreader.cc:530
bool SetToParent()
set current node to parent, return false if no parent exists
Definition jsonreader.cc:299
bool IsArray() const
check if current node is an array
Definition jsonreader.cc:338
Util::Stack< const pjson::value_variant * > parents
Definition jsonreader.h:135
virtual void Close()
end reading from the stream
Definition jsonreader.cc:96
Util::String GetCurrentNodeName() const
get name of current node
Definition jsonreader.cc:420
Math::vec4 GetVec4(const char *attr=0) const
get vec4 attribute value from current node
Definition jsonreader.cc:581
__DeclareClass(JsonReader)
bool GetOpt(T &target, const char *attr=0)
generic getter for optional items
Definition jsonreader.h:186
pjson::document * document
Definition jsonreader.h:132
bool SetToFirstChild(const Util::String &name="")
set current node to first child, false if none exists
Definition jsonreader.cc:233
bool SetToNode(const Util::String &path)
set current node as path, accepts / as separator and [number] to access array/object elements
Definition jsonreader.cc:173
JsonReader()
constructor
Definition jsonreader.cc:28
virtual bool Open()
begin reading from the stream
Definition jsonreader.cc:52
Math::vec4 GetOptVec4(const char *attr, const Math::vec4 &defaultValue) const
get optional vec4 attribute value from current node
Definition jsonreader.cc:738
float GetOptFloat(const char *attr, float defaultValue) const
get optional float attribute value from current node
Definition jsonreader.cc:702
void SetToRoot()
sets the current node to root
Definition jsonreader.cc:156
bool HasNode(const Util::String &path)
return true if node exists
Definition jsonreader.cc:114
int GetInt(const char *attr=0) const
get int attribute value from current node
Definition jsonreader.cc:500
Math::transform44 GetTransform44(const char *attr=0) const
get transform44 attribute value from current node
Definition jsonreader.cc:625
bool HasChildren() const
check if current node has children (json object or array)
Definition jsonreader.cc:361
virtual ~JsonReader()
destructor
Definition jsonreader.cc:38
Util::Array< Util::String > GetAttrs() const
return names of all attrs on current node
Definition jsonreader.cc:403
int GetOptInt(const char *attr, int defaultValue) const
get optional int attribute value from current node
Definition jsonreader.cc:684
Math::transform44 GetOptTransform44(const char *attr, const Math::transform44 &defaultValue) const
get transform44 attribute value from current node
Definition jsonreader.cc:774
Math::vec2 GetVec2(const char *attr=0) const
get vec2 attribute value from current node
Definition jsonreader.cc:546
Util::String GetOptString(const char *attr, const Util::String &defaultValue) const
get optional string attribute value from current node
Definition jsonreader.cc:648
Math::vec2 GetOptVec2(const char *attr, const Math::vec2 &defaultValue) const
get vec2 attribute value from current node
Definition jsonreader.cc:720
Util::Stack< IndexT > parentIdx
Definition jsonreader.h:136
void Get(T &target, const char *attr=0)
generic getter for extension types
Util::String GetString(const char *attr=0) const
get string attribute value from current node
Definition jsonreader.cc:455
uint GetUInt(const char *attr=0) const
get unsigned int attribute value from current node
Definition jsonreader.cc:515
const pjson::value_variant * GetChild(const char *key=0) const
Definition jsonreader.cc:433
bool SetToNextChild()
set to next child, false if none exists
Definition jsonreader.cc:272
Math::vec3 GetVec3(const char *attr=0) const
get vec4 attribute value from current node
Definition jsonreader.cc:559
Util::String GetChildNodeName(SizeT childIndex)
gets the childname of the child at index, or empty string if no child exists or has no name.
Definition jsonreader.cc:319
bool HasAttr(const char *attr) const
return true if matching attribute exists on current node
Definition jsonreader.cc:389
const pjson::value_variant * curNode
Definition jsonreader.h:133
SizeT CurrentSize() const
children count
Definition jsonreader.cc:373
Math::mat4 GetMat4(const char *attr=0) const
get mat4 attribute value from current node
Definition jsonreader.cc:603
bool IsObject() const
check if current node is an object (can have keys)
Definition jsonreader.cc:350
Util::StringAtom GetStringAtom(const char *attr=0) const
get stringatom attribute value from current node
Definition jsonreader.cc:470
Math::mat4 GetOptMat4(const char *attr, const Math::mat4 &defaultValue) const
get optional mat4 attribute value from current node
Definition jsonreader.cc:756
IndexT childIdx
Definition jsonreader.h:134
char * buffer
Definition jsonreader.h:138
bool GetBool(const char *attr=0) const
get bool attribute value from current node
Definition jsonreader.cc:485
StreamReader()
constructor
Definition streamreader.cc:16
Nebula's dynamic array class.
Definition array.h:60
const SizeT Size() const
get number of elements in array
Definition array.h:880
Implements large bit field.
Definition bitfield.h:24
constexpr void SetBit(const uint64_t bitIndex)
set a bit by index
Definition bitfield.h:215
A four-character-code is a quasi-human-readable 32-bit-id.
Definition fourcc.h:19
Nebula's stack class (a FILO container).
Definition stack.h:19
A StringAtom.
Definition stringatom.h:22
An "any type" variable.
Definition variant.h:31
#define n_assert(exp)
Definition debug.h:50
Instances of wrapped stream classes.
Definition multiplayerfeatureunit.cc:289
Definition jsonreader.h:24
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
A 2-component float vector class.
Definition vec2.h:21
A 3D vector.
Definition vec3.h:40
A 4D vector.
Definition vec4.h:24
A vector is a 3D direction in space.
Definition vector.h:22
Nebula's universal string class.
Definition String.cs:8
int SizeT
Definition types.h:40
unsigned int uint
Definition types.h:31
int IndexT
Definition types.h:39