Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/asylum/orxonox/objects/Test.h @ 1052

Last change on this file since 1052 was 1052, checked in by landauf, 16 years ago

merged core2 back to trunk
there might be some errors, wasn't able to test it yet due to some strange g++ and linker behaviour.

File size: 3.8 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *
4 *
5 *   License notice:
6 *
7 *   This program is free software; you can redistribute it and/or
8 *   modify it under the terms of the GNU General Public License
9 *   as published by the Free Software Foundation; either version 2
10 *   of the License, or (at your option) any later version.
11 *
12 *   This program is distributed in the hope that it will be useful,
13 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 *   GNU General Public License for more details.
16 *
17 *   You should have received a copy of the GNU General Public License
18 *   along with this program; if not, write to the Free Software
19 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20 *
21 *   Author:
22 *      Fabian 'x3n' Landau
23 *   Co-authors:
24 *      ...
25 *
26 */
27
28#ifndef _Test_H__
29#define _Test_H__
30
31#include "core/BaseObject.h"
32#include "core/CoreIncludes.h"
33
34namespace orxonox
35{
36    class Interface1 : virtual public OrxonoxClass
37    {
38        protected:
39            Interface1() { RegisterRootObject(Interface1); }
40    };
41
42    class Interface2 : virtual public OrxonoxClass
43    {
44        protected:
45            Interface2() { RegisterRootObject(Interface2); }
46    };
47
48    class A1 : public BaseObject
49    {
50        public:
51            A1() { RegisterObject(A1); }
52    };
53
54    class A2 : public BaseObject
55    {
56        public:
57            A2() { RegisterObject(A2); }
58    };
59
60    class A3: public BaseObject, public Interface1
61    {
62        public:
63            A3() { RegisterObject(A3); }
64    };
65
66    class A1B1 : public A1
67    {
68        public:
69            A1B1() { RegisterObject(A1B1); }
70    };
71
72    class A1B2 : public A1
73    {
74        public:
75            A1B2() { RegisterObject(A1B2); }
76//            virtual void test() = 0;
77    };
78
79    class A2B1 : public A2
80    {
81        public:
82            A2B1() { RegisterObject(A2B1); }
83    };
84
85    class A2B2 : public A2, Interface1
86    {
87        public:
88            A2B2() { RegisterObject(A2B2); }
89    };
90
91    class A3B1 : public A3
92    {
93        public:
94            A3B1() { RegisterObject(A3B1); }
95    };
96
97    class A3B2 : public A3, Interface2
98    {
99        public:
100            A3B2() { RegisterObject(A3B2); }
101    };
102
103    class A1B1C1 : public A1B1
104    {
105        public:
106            A1B1C1() { RegisterObject(A1B1C1); }
107    };
108
109    class A1B1C2 : public A1B1
110    {
111        public:
112            A1B1C2() { RegisterObject(A1B1C2); }
113    };
114
115    class A1B2C1 : public A1B2
116    {
117        public:
118            A1B2C1() { RegisterObject(A1B2C1); }
119//            void test() { std::cout << "test!\n"; }
120    };
121
122    class A2B1C1 : public A2B1, Interface2
123    {
124        public:
125            A2B1C1() { RegisterObject(A2B1C1); }
126    };
127
128    class A2B2C1 : public A2B2
129    {
130        public:
131            A2B2C1() { RegisterObject(A2B2C1); }
132    };
133
134    class A3B1C1 : public A3B1
135    {
136        public:
137            A3B1C1() { RegisterObject(A3B1C1); }
138    };
139
140    class A3B1C2 : public A3B1, Interface2
141    {
142        public:
143            A3B1C2() { RegisterObject(A3B1C2); }
144    };
145
146    class A3B2C1 : public A3B2
147    {
148        public:
149            A3B2C1() { RegisterObject(A3B2C1); }
150    };
151
152    class A3B2C2 : public A3B2
153    {
154        public:
155            A3B2C2() { RegisterObject(A3B2C2); }
156    };
157
158    CreateFactory(A1);
159    CreateFactory(A2);
160    CreateFactory(A3);
161    CreateFactory(A1B1);
162    CreateFactory(A1B2);
163    CreateFactory(A2B1);
164    CreateFactory(A2B2);
165    CreateFactory(A3B1);
166    CreateFactory(A3B2);
167    CreateFactory(A1B1C1);
168    CreateFactory(A1B1C2);
169    CreateFactory(A1B2C1);
170    CreateFactory(A2B1C1);
171    CreateFactory(A2B2C1);
172    CreateFactory(A3B1C1);
173    CreateFactory(A3B1C2);
174    CreateFactory(A3B2C1);
175    CreateFactory(A3B2C2);
176}
177
178#endif
Note: See TracBrowser for help on using the repository browser.