]> rtime.felk.cvut.cz Git - hubacji1/rrts.git/blob - incl/rrtsp.hh
Add reset to rrtext 2
[hubacji1/rrts.git] / incl / rrtsp.hh
1 /*
2  * SPDX-FileCopyrightText: 2021 Jiri Vlasak <jiri.vlasak.2@cvut.cz>
3  *
4  * SPDX-License-Identifier: GPL-3.0-only
5  */
6
7 /*! \brief RRT* planners.
8  *
9  * This file contains _to be used_ RRT* planners consisting of the RRT*
10  * extensions.
11  *
12  * RRT* planners have no implementation.
13  *
14  * \file
15  * \defgroup planners RRTS Planners
16  */
17 #ifndef RRTS_RRTSP_H
18 #define RRTS_RRTSP_H
19
20 #include "rrtext.hh"
21
22 namespace rrts {
23
24 /*! \brief Planner for F1/10.
25  *
26  * TODO: change RRTExt2 to cost grid
27  *
28  * \ingroup planners
29  */
30 class P40 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
31                 public RRTExt15, public RRTExt19, public RRTExt17,
32                 public RRTExt13 {
33 public:
34         Json::Value json() const
35         {
36                 auto jvo = RRTExt13::json();
37                 auto json15 = RRTExt15::json();
38                 jvo["log_path_cost"] = json15["log_path_cost"];
39                 return jvo;
40         }
41         void json(Json::Value jvi)
42         {
43                 RRTExt2::json(jvi);
44         }
45         void reset()
46         {
47                 RRTExt8::reset();
48                 RRTExt14::reset();
49                 RRTExt13::reset();
50                 RRTExt2::reset();
51         }
52 };
53
54 /*! \brief Planner with optimization and reset.
55  *
56  * \ingroup planners
57  */
58 class P39 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
59                 public RRTExt15, public RRTExt16, public RRTExt17,
60                 public RRTExt13 {
61 public:
62         Json::Value json() const
63         {
64                 auto jvo = RRTExt13::json();
65                 auto json15 = RRTExt15::json();
66                 jvo["log_path_cost"] = json15["log_path_cost"];
67                 return jvo;
68         }
69         void json(Json::Value jvi)
70         {
71                 RRTExt2::json(jvi);
72         }
73         void reset()
74         {
75                 RRTExt8::reset();
76                 RRTExt14::reset();
77                 RRTExt13::reset();
78                 RRTExt2::reset();
79         }
80 };
81
82 class P38 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
83                 public RRTExt15, public RRTExt16, public RRTExt18,
84                 public RRTExt13 {
85 public:
86         Json::Value json() const
87         {
88                 auto jvo = RRTExt13::json();
89                 auto json15 = RRTExt15::json();
90                 jvo["log_path_cost"] = json15["log_path_cost"];
91                 return jvo;
92         }
93         void json(Json::Value jvi)
94         {
95                 RRTExt2::json(jvi);
96         }
97         void reset()
98         {
99                 RRTExt8::reset();
100                 RRTExt14::reset();
101                 RRTExt13::reset();
102                 RRTExt2::reset();
103         }
104 };
105
106 class P37 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
107                 public RRTExt15, public RRTExt16, public RRTExt18 {
108 public:
109         Json::Value json() const
110         {
111                 return RRTExt15::json();
112         }
113         void json(Json::Value jvi)
114         {
115                 RRTExt2::json(jvi);
116         }
117         void reset()
118         {
119                 RRTExt8::reset();
120                 RRTExt14::reset();
121                 RRTExt2::reset();
122         }
123 };
124
125 class P36 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
126                 public RRTExt15, public RRTExt16, public RRTExt17 {
127 public:
128         Json::Value json() const
129         {
130                 return RRTExt15::json();
131         }
132         void json(Json::Value jvi)
133         {
134                 RRTExt2::json(jvi);
135         }
136         void reset()
137         {
138                 RRTExt8::reset();
139                 RRTExt14::reset();
140                 RRTExt2::reset();
141         }
142 };
143
144 } // namespace rrts
145 #endif /* RRTS_RRTSP_H */