]> rtime.felk.cvut.cz Git - hubacji1/iamcar2.git/blob - rrts/incl/rrtsp.hh
da509bfd3bc1fe74d449b0d42c43c452774dbc65
[hubacji1/iamcar2.git] / rrts / 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  * \ingroup planners
27  */
28 class P40 : public RRTExt21, public RRTExt8, public RRTExt10, public RRTExt14,
29                 public RRTExt15, public RRTExt19, public RRTExt17,
30                 public RRTExt13 {
31 public:
32         Json::Value json() const
33         {
34                 auto jvo = RRTExt13::json();
35                 auto json15 = RRTExt15::json();
36                 jvo["log_path_cost"] = json15["log_path_cost"];
37                 return jvo;
38         }
39         void reset()
40         {
41                 RRTExt8::reset();
42                 RRTExt14::reset();
43                 RRTExt13::reset();
44         }
45 };
46
47 /*! \brief Planner with optimization and reset.
48  *
49  * \ingroup planners
50  */
51 class P39 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
52                 public RRTExt15, public RRTExt16, public RRTExt17,
53                 public RRTExt13 {
54 public:
55         Json::Value json() const
56         {
57                 auto jvo = RRTExt13::json();
58                 auto json15 = RRTExt15::json();
59                 jvo["log_path_cost"] = json15["log_path_cost"];
60                 return jvo;
61         }
62         void json(Json::Value jvi)
63         {
64                 RRTExt2::json(jvi);
65         }
66         void reset()
67         {
68                 RRTExt8::reset();
69                 RRTExt14::reset();
70                 RRTExt13::reset();
71                 RRTExt2::reset();
72         }
73 };
74
75 class P38 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
76                 public RRTExt15, public RRTExt16, public RRTExt18,
77                 public RRTExt13 {
78 public:
79         Json::Value json() const
80         {
81                 auto jvo = RRTExt13::json();
82                 auto json15 = RRTExt15::json();
83                 jvo["log_path_cost"] = json15["log_path_cost"];
84                 return jvo;
85         }
86         void json(Json::Value jvi)
87         {
88                 RRTExt2::json(jvi);
89         }
90         void reset()
91         {
92                 RRTExt8::reset();
93                 RRTExt14::reset();
94                 RRTExt13::reset();
95                 RRTExt2::reset();
96         }
97 };
98
99 class P37 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
100                 public RRTExt15, public RRTExt16, public RRTExt18 {
101 public:
102         Json::Value json() const
103         {
104                 return RRTExt15::json();
105         }
106         void json(Json::Value jvi)
107         {
108                 RRTExt2::json(jvi);
109         }
110         void reset()
111         {
112                 RRTExt8::reset();
113                 RRTExt14::reset();
114                 RRTExt2::reset();
115         }
116 };
117
118 class P36 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
119                 public RRTExt15, public RRTExt16, public RRTExt17 {
120 public:
121         Json::Value json() const
122         {
123                 return RRTExt15::json();
124         }
125         void json(Json::Value jvi)
126         {
127                 RRTExt2::json(jvi);
128         }
129         void reset()
130         {
131                 RRTExt8::reset();
132                 RRTExt14::reset();
133                 RRTExt2::reset();
134         }
135 };
136
137 } // namespace rrts
138 #endif /* RRTS_RRTSP_H */