source: GTP/trunk/Lib/Vis/OnlineCullingCHC/ObjReader/include/ObjNode.h @ 2111

Revision 2111, 1.0 KB checked in by mattausch, 17 years ago (diff)
Line 
1#ifndef __ObjNode_H__
2#define __ObjNode_H__
3
4
5#include <string.h>
6#include <Ogre.h>
7
8enum ObjType
9{
10        IV_INVALID = -1,
11        IV_STRING = 0,
12        IV_INT = 1,
13        IV_REAL = 2
14};
15
16
17class ObjField
18{
19public:
20        ObjField();
21        ~ObjField();
22
23        char *name;
24        void *value;
25        ObjType typ;
26        int cnt;
27        ObjField *next;
28};
29
30class __declspec(dllexport) ObjNode
31{
32        public:
33                ObjNode();
34                ObjNode(const char *s);
35                ~ObjNode();
36
37                void print(int ident=0);
38                void attachNode(ObjNode *child);
39                void addField(const char *name, char *value);
40                void addField(const char *name, void *value, int cnt, ObjType typ);
41
42                ObjNode *getParent() { return parent; }
43                char *getName() { return name; }
44                ObjNode *getNodeRecursive(const char *name);
45                ObjNode *getNextChildNode(bool reset = false);
46                ObjField *getField(const char *name);
47                void *getField(const char *name, ObjType *typ, int *cnt);
48
49        private:
50                char *name;
51                ObjField *fields;
52                ObjNode *parent;
53                ObjNode *children;
54                ObjNode *next;
55
56                ObjNode *actual;
57};
58
59#endif
Note: See TracBrowser for help on using the repository browser.