]> rtime.felk.cvut.cz Git - hubacji1/rrts.git/blob - api/rrtce.h
Add compound extensions w/k-d tree
[hubacji1/rrts.git] / api / rrtce.h
1 /*! \brief RRT compound extensions.
2
3 This file contains compound extensions. The goal is to merge multiple
4 extensions from `rrtext.h` in one.
5
6 Compound extensions have no implementation.
7 */
8 #ifndef RRTCE_H
9 #define RRTCE_H
10
11 #include "rrts.h"
12 #include "rrtext.h"
13
14 class RRTCE1 : public RRTExt1, public RRTExt2 {};
15 class RRTCE2 : public RRTExt2, public RRTExt5 {};
16 class RRTCE3 : public RRTExt2, public RRTExt6 {};
17 class RRTCE4 : public RRTExt1, public RRTExt2, public RRTExt4 {
18         public:
19                 void init()
20                 {
21                         RRTExt2::init();
22                         RRTExt4::init();
23                 }
24                 void deinit()
25                 {
26                         RRTExt2::deinit();
27                         RRTExt4::deinit();
28                 }
29 };
30 class RRTCE5 : public RRTExt2, public RRTExt5, public RRTExt4 {
31         public:
32                 void init()
33                 {
34                         RRTExt2::init();
35                         RRTExt4::init();
36                 }
37                 void deinit()
38                 {
39                         RRTExt2::deinit();
40                         RRTExt4::deinit();
41                 }
42 };
43 class RRTCE6 : public RRTExt2, public RRTExt6, public RRTExt4 {
44         public:
45                 void init()
46                 {
47                         RRTExt2::init();
48                         RRTExt4::init();
49                 }
50                 void deinit()
51                 {
52                         RRTExt2::deinit();
53                         RRTExt4::deinit();
54                 }
55 };
56 class RRTCE7
57         : public RRTExt2
58         , public RRTExt3
59         , public RRTExt4
60         , public RRTExt5
61 {
62         public:
63                 void init()
64                 {
65                         RRTExt2::init();
66                         RRTExt4::init();
67                 }
68                 void deinit()
69                 {
70                         RRTExt2::deinit();
71                         RRTExt4::deinit();
72                 }
73 };
74 class RRTCE8
75         : public RRTExt2
76         , public RRTExt3
77         , public RRTExt4
78         , public RRTExt6
79 {
80         public:
81                 void init()
82                 {
83                         RRTExt2::init();
84                         RRTExt4::init();
85                 }
86                 void deinit()
87                 {
88                         RRTExt2::deinit();
89                         RRTExt4::deinit();
90                 }
91 };
92 class RRTCE9
93         : public RRTExt2
94         , public RRTExt3
95         , public RRTExt4
96         , public RRTExt1
97 {
98         public:
99                 void init()
100                 {
101                         RRTExt2::init();
102                         RRTExt4::init();
103                 }
104                 void deinit()
105                 {
106                         RRTExt2::deinit();
107                         RRTExt4::deinit();
108                 }
109 };
110 class RRTCE10
111         : public RRTExt2
112         , public RRTExt3
113         , public RRTExt7
114         , public RRTExt6
115 {
116         public:
117                 void init()
118                 {
119                         RRTExt2::init();
120                         RRTExt7::init();
121                 }
122                 void deinit()
123                 {
124                         RRTExt2::deinit();
125                         RRTExt7::deinit();
126                 }
127 };
128 class RRTCE11
129         : public RRTExt2
130         , public RRTExt3
131         , public RRTExt7
132         , public RRTExt5
133 {
134         public:
135                 void init()
136                 {
137                         RRTExt2::init();
138                         RRTExt7::init();
139                 }
140                 void deinit()
141                 {
142                         RRTExt2::deinit();
143                         RRTExt7::deinit();
144                 }
145 };
146 class RRTCE12
147         : public RRTExt2
148         , public RRTExt3
149         , public RRTExt7
150         , public RRTExt1
151 {
152         public:
153                 void init()
154                 {
155                         RRTExt2::init();
156                         RRTExt7::init();
157                 }
158                 void deinit()
159                 {
160                         RRTExt2::deinit();
161                         RRTExt7::deinit();
162                 }
163 };
164
165 #endif /* RRTCE_H */