Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/objecthierarchie/src/Test.h @ 219

Last change on this file since 219 was 219, checked in by landauf, 16 years ago
  • removed the "ClassHierarchy" manager-class and put its sole feature (bIsCreatingClassHierarchy_) directly into the Identifier.
  • added a dynamic_cast from OrxonoxClass to BaseObject to the Factory. OrxonoxClass is needed because several classes use Interfaces, but all classes are derived at least from BaseObject, so the cast will work.
File size: 2.9 KB
Line 
1#ifndef _Test_H__
2#define _Test_H__
3
4#include "BaseObject.h"
5#include "IdentifierIncludes.h"
6
7namespace orxonox
8{
9    class Interface1 : virtual public OrxonoxClass
10    {
11        public:
12            Interface1() { registerAbstractRootObject(Interface1); }
13    };
14
15    class Interface2 : virtual public OrxonoxClass
16    {
17        public:
18            Interface2() { registerAbstractRootObject(Interface2); }
19    };
20
21    class A1 : public BaseObject
22    {
23        public:
24            A1() { registerObject(A1); }
25    };
26
27    class A2 : public BaseObject
28    {
29        public:
30            A2() { registerObject(A2); }
31    };
32
33    class A3: public BaseObject, public Interface1
34    {
35        public:
36            A3() { registerObject(A3); }
37    };
38
39    class A1B1 : public A1
40    {
41        public:
42            A1B1() { registerObject(A1B1); }
43    };
44
45    class A1B2 : public A1
46    {
47        public:
48            A1B2() { registerObject(A1B2); }
49    };
50
51    class A2B1 : public A2
52    {
53        public:
54            A2B1() { registerObject(A2B1); }
55    };
56
57    class A2B2 : public A2, Interface1
58    {
59        public:
60            A2B2() { registerObject(A2B2); }
61    };
62
63    class A3B1 : public A3
64    {
65        public:
66            A3B1() { registerObject(A3B1); }
67    };
68
69    class A3B2 : public A3, Interface2
70    {
71        public:
72            A3B2() { registerObject(A3B2); }
73    };
74
75    class A1B1C1 : public A1B1
76    {
77        public:
78            A1B1C1() { registerObject(A1B1C1); }
79    };
80
81    class A1B1C2 : public A1B1
82    {
83        public:
84            A1B1C2() { registerObject(A1B1C2); }
85    };
86
87    class A1B2C1 : public A1B2
88    {
89        public:
90            A1B2C1() { registerObject(A1B2C1); }
91    };
92
93    class A2B1C1 : public A2B1, Interface2
94    {
95        public:
96            A2B1C1() { registerObject(A2B1C1); }
97    };
98
99    class A2B2C1 : public A2B2
100    {
101        public:
102            A2B2C1() { registerObject(A2B2C1); }
103    };
104
105    class A3B1C1 : public A3B1
106    {
107        public:
108            A3B1C1() { registerObject(A3B1C1); }
109    };
110
111    class A3B1C2 : public A3B1, Interface2
112    {
113        public:
114            A3B1C2() { registerObject(A3B1C2); }
115    };
116
117    class A3B2C1 : public A3B2
118    {
119        public:
120            A3B2C1() { registerObject(A3B2C1); }
121    };
122
123    class A3B2C2 : public A3B2
124    {
125        public:
126            A3B2C2() { registerObject(A3B2C2); }
127    };
128
129    CreateFactory(A1);
130    CreateFactory(A2);
131    CreateFactory(A3);
132    CreateFactory(A1B1);
133    CreateFactory(A1B2);
134    CreateFactory(A2B1);
135    CreateFactory(A2B2);
136    CreateFactory(A3B1);
137    CreateFactory(A3B2);
138    CreateFactory(A1B1C1);
139    CreateFactory(A1B1C2);
140    CreateFactory(A1B2C1);
141    CreateFactory(A2B1C1);
142    CreateFactory(A2B2C1);
143    CreateFactory(A3B1C1);
144    CreateFactory(A3B1C2);
145    CreateFactory(A3B2C1);
146    CreateFactory(A3B2C2);
147}
148
149#endif
Note: See TracBrowser for help on using the repository browser.