]> rtime.felk.cvut.cz Git - hubacji1/rrts.git/blob - incl/rrtsp.hh
Parameterize maximum iterations
[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 with optimization and reset.
25  *
26  * \ingroup planners
27  */
28 class P39 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
29                 public RRTExt15, public RRTExt16, 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 json(Json::Value jvi)
40         {
41                 RRTExt2::json(jvi);
42         }
43         void reset()
44         {
45                 RRTExt8::reset();
46                 RRTExt14::reset();
47                 RRTExt13::reset();
48         }
49 };
50
51 class P38 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
52                 public RRTExt15, public RRTExt16, public RRTExt18,
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         }
72 };
73
74 class P37 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
75                 public RRTExt15, public RRTExt16, public RRTExt18 {
76 public:
77         Json::Value json() const
78         {
79                 return RRTExt15::json();
80         }
81         void json(Json::Value jvi)
82         {
83                 RRTExt2::json(jvi);
84         }
85         void reset()
86         {
87                 RRTExt8::reset();
88                 RRTExt14::reset();
89         }
90 };
91
92 class P36 : public RRTExt2, public RRTExt8, public RRTExt10, public RRTExt14,
93                 public RRTExt15, public RRTExt16, public RRTExt17 {
94 public:
95         Json::Value json() const
96         {
97                 return RRTExt15::json();
98         }
99         void json(Json::Value jvi)
100         {
101                 RRTExt2::json(jvi);
102         }
103         void reset()
104         {
105                 RRTExt8::reset();
106                 RRTExt14::reset();
107         }
108 };
109
110 } // namespace rrts
111 #endif /* RRTS_RRTSP_H */