2 This file is part of I am car.
4 I am car is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 I am car is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with I am car. If not, see <http://www.gnu.org/licenses/>.
27 class LaValle1998: public RRTBase {
29 //using RRTBase::RRTBase;
30 LaValle1998(RRTNode *init, RRTNode *goal);
35 std::vector<RRTNode *> (&nodes)[IYSIZE],
37 std::vector<RRTNode *> &nodes,
40 float (*cost)(RRTNode *, RRTNode *));
42 std::vector<RRTNode *> (*steer)(
45 float (*cost)(RRTNode *init, RRTNode *goal);
49 class Kuwata2008: public RRTBase {
51 Kuwata2008(RRTNode *init, RRTNode *goal);
56 std::vector<RRTNode *> (&nodes)[IYSIZE],
58 std::vector<RRTNode *> &nodes,
61 float (*cost)(RRTNode *, RRTNode *));
63 std::vector<RRTNode *> (*steer)(
66 float (*cost)(RRTNode *init, RRTNode *goal);
70 class Karaman2011: public RRTBase {
72 Karaman2011(RRTNode *init, RRTNode *goal);
77 std::vector<RRTNode *> (&nodes)[IYSIZE],
79 std::vector<RRTNode *> &nodes,
82 float (*cost)(RRTNode *, RRTNode *));
83 std::vector<RRTNode *> (*nv)(
86 float (*cost)(RRTNode *, RRTNode *),
89 std::vector<RRTNode *> (*steer)(
92 float (*cost)(RRTNode *init, RRTNode *goal);
96 class T1: public RRTBase {
98 T1(RRTNode *init, RRTNode *goal);
103 std::vector<RRTNode *> (&nodes)[IYSIZE],
105 std::vector<RRTNode *> &nodes,
108 float (*cost)(RRTNode *, RRTNode *));
109 std::vector<RRTNode *> (*nv)(
112 float (*cost)(RRTNode *, RRTNode *),
114 RRTNode *(*sample)();
115 std::vector<RRTNode *> (*steer)(
118 float (*cost)(RRTNode *init, RRTNode *goal);