-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSceneLoader.h
More file actions
56 lines (44 loc) · 1.68 KB
/
SceneLoader.h
File metadata and controls
56 lines (44 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef __SceneLoader_H__
#define __SceneLoader_H__
#include "Rapidjson/document.h"
#include "MathGeoLib/Math/float3.h"
#include "MathGeoLib/Math/float4.h"
class SceneLoader
{
public:
SceneLoader();
~SceneLoader();
void ClearScene();
void LoadJSON(const char * json);
char * GetJSON() const;
//Call each time a Game Object is processed in this order
void StartGameObject();
void CreateComponentArray();
void FinishGameObject();
//Call each time a component is added to a Game Object
void StartComponent();
void FinishComponent();
//Add and Get functions for each type. Requires call to StartGameObject before use.
void AddUnsignedInt(const char * name, unsigned int value);
unsigned int GetUnsignedInt(const char * name, unsigned int defaultVal);
void AddFloat(const char * name, float value);
float GetFloat(const char * name, float defaultVal);
void AddString(const char * name, const char * value);
const char * GetString(const char * name, const char * defaultVal);
void AddVec3f(const char * name, const float3 & value);
float3 GetVec3f(const char * name, const float3 & defaultVal);
void AddVec4f(const char * name, const float4 & value);
float4 GetVec4f(const char * name, const float4 & defaultVal);
//Prepare to read Game Object with requested UID.
bool SetCurrentObject(unsigned int parentUID);
//Prepare to read next Component
bool SelectNextComponent();
void SaveJSONToFile(const char * filename);
void LoadJSONFromFile(const char * filename);
private:
rapidjson::Document document;
rapidjson::Value currentObject;
rapidjson::Value currentComponent;
void AddMemberToObjectOrComponent(rapidjson::Value & name, rapidjson::Value & val);
};
#endif __SceneLoader_H__