GCC Code Coverage Report


Directory: ./
File: include/hpp/core/fwd.hh
Date: 2024-08-10 11:29:48
Exec Total Coverage
Lines: 2 2 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 //
2 // Copyright (c) 2014 CNRS
3 // Authors: Florent Lamiraux, Joseph Mirabel
4 //
5
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are
8 // met:
9 //
10 // 1. Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 //
13 // 2. Redistributions in binary form must reproduce the above copyright
14 // notice, this list of conditions and the following disclaimer in the
15 // documentation and/or other materials provided with the distribution.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
28 // DAMAGE.
29
30 #ifndef HPP_CORE_FWD_HH
31 #define HPP_CORE_FWD_HH
32
33 #include <deque>
34 #include <hpp/constraints/fwd.hh>
35 #include <hpp/core/config.hh>
36 #include <hpp/core/deprecated.hh>
37 #include <hpp/util/pointer.hh>
38 #include <list>
39 #include <map>
40 #include <set>
41 #include <vector>
42
43 namespace hpp {
44 namespace core {
45 HPP_PREDEF_CLASS(BiRRTPlanner);
46 HPP_PREDEF_CLASS(CollisionValidation);
47 HPP_PREDEF_CLASS(CollisionValidationReport);
48 HPP_PREDEF_CLASS(AllCollisionsValidationReport);
49 HPP_PREDEF_CLASS(ConfigurationShooter);
50 HPP_PREDEF_CLASS(ConfigProjector);
51 HPP_PREDEF_CLASS(ConfigValidation);
52 HPP_PREDEF_CLASS(ConfigValidations);
53 HPP_PREDEF_CLASS(ConnectedComponent);
54 HPP_PREDEF_CLASS(Constraint);
55 HPP_PREDEF_CLASS(ConstraintSet);
56 HPP_PREDEF_CLASS(DiffusingPlanner);
57 HPP_PREDEF_CLASS(Distance);
58 HPP_PREDEF_CLASS(DistanceBetweenObjects);
59 class Edge;
60 HPP_PREDEF_CLASS(ExtractedPath);
61 HPP_PREDEF_CLASS(SubchainPath);
62 HPP_PREDEF_CLASS(JointBoundValidation);
63 struct JointBoundValidationReport;
64 class Node;
65 HPP_PREDEF_CLASS(Path);
66 HPP_PREDEF_CLASS(TimeParameterization);
67 HPP_PREDEF_CLASS(PathOptimizer);
68 HPP_PREDEF_CLASS(PathPlanner);
69 class Parameter;
70 HPP_PREDEF_CLASS(ProblemTarget);
71 HPP_PREDEF_CLASS(PathVector);
72 HPP_PREDEF_CLASS(PlanAndOptimize);
73 HPP_PREDEF_CLASS(Problem);
74 class ProblemSolver;
75 HPP_PREDEF_CLASS(Roadmap);
76 HPP_PREDEF_CLASS(SteeringMethod);
77 HPP_PREDEF_CLASS(StraightPath);
78 HPP_PREDEF_CLASS(InterpolatedPath);
79 HPP_PREDEF_CLASS(DubinsPath);
80 HPP_PREDEF_CLASS(ReedsSheppPath);
81 HPP_PREDEF_CLASS(KinodynamicPath);
82 HPP_PREDEF_CLASS(KinodynamicOrientedPath);
83 HPP_PREDEF_CLASS(ValidationReport);
84 HPP_PREDEF_CLASS(VisibilityPrmPlanner);
85 HPP_PREDEF_CLASS(WeighedDistance);
86 HPP_PREDEF_CLASS(KinodynamicDistance);
87 class KDTree;
88
89 typedef constraints::ComparisonTypes_t ComparisonTypes_t;
90 typedef constraints::ComparisonType ComparisonType;
91
92 typedef shared_ptr<BiRRTPlanner> BiRRTPlannerPtr_t;
93 typedef hpp::pinocchio::Body Body;
94 typedef hpp::pinocchio::BodyPtr_t BodyPtr_t;
95 typedef shared_ptr<CollisionValidation> CollisionValidationPtr_t;
96 typedef shared_ptr<CollisionValidationReport> CollisionValidationReportPtr_t;
97 typedef shared_ptr<AllCollisionsValidationReport>
98 AllCollisionsValidationReportPtr_t;
99 typedef pinocchio::CollisionObjectPtr_t CollisionObjectPtr_t;
100 typedef pinocchio::CollisionObjectConstPtr_t CollisionObjectConstPtr_t;
101 typedef pinocchio::CollisionGeometryPtr_t CollisionGeometryPtr_t;
102 typedef pinocchio::FclCollisionObject FclCollisionObject;
103 typedef FclCollisionObject* FclCollisionObjectPtr_t;
104 typedef const FclCollisionObject* FclConstCollisionObjectPtr_t;
105 typedef shared_ptr<FclCollisionObject> FclCollisionObjectSharePtr_t;
106
107 typedef pinocchio::Configuration_t Configuration_t;
108 typedef pinocchio::ConfigurationIn_t ConfigurationIn_t;
109 typedef pinocchio::ConfigurationOut_t ConfigurationOut_t;
110 typedef std::vector<Configuration_t> Configurations_t;
111 typedef Configurations_t::iterator ConfigIterator_t;
112 typedef Configurations_t::const_iterator ConfigConstIterator_t;
113 typedef shared_ptr<ConfigurationShooter> ConfigurationShooterPtr_t;
114 typedef shared_ptr<ConfigProjector> ConfigProjectorPtr_t;
115 typedef shared_ptr<ConfigValidation> ConfigValidationPtr_t;
116 typedef shared_ptr<ConfigValidations> ConfigValidationsPtr_t;
117 typedef shared_ptr<ConnectedComponent> ConnectedComponentPtr_t;
118
119 struct SharedComparator {
120 template <typename T>
121 180 bool operator()(const std::shared_ptr<T>& lhs,
122 const std::shared_ptr<T>& rhs) const {
123 180 return (*lhs) < (*rhs);
124 }
125 };
126 typedef std::set<ConnectedComponentPtr_t, SharedComparator>
127 ConnectedComponents_t;
128
129 typedef shared_ptr<Constraint> ConstraintPtr_t;
130 typedef shared_ptr<ConstraintSet> ConstraintSetPtr_t;
131 typedef shared_ptr<const ConstraintSet> ConstraintSetConstPtr_t;
132 typedef std::vector<ConstraintPtr_t> Constraints_t;
133 typedef pinocchio::Device Device_t;
134 typedef pinocchio::DevicePtr_t DevicePtr_t;
135 typedef pinocchio::DeviceWkPtr_t DeviceWkPtr_t;
136 typedef pinocchio::CenterOfMassComputationPtr_t CenterOfMassComputationPtr_t;
137 typedef std::deque<DevicePtr_t> Devices_t;
138 typedef constraints::DifferentiableFunction DifferentiableFunction;
139 typedef constraints::DifferentiableFunctionPtr_t DifferentiableFunctionPtr_t;
140 typedef shared_ptr<DiffusingPlanner> DiffusingPlannerPtr_t;
141 typedef shared_ptr<Distance> DistancePtr_t;
142 typedef shared_ptr<DistanceBetweenObjects> DistanceBetweenObjectsPtr_t;
143 typedef pinocchio::DistanceResults_t DistanceResults_t;
144 typedef Edge* EdgePtr_t;
145 typedef std::list<Edge*> Edges_t;
146 typedef shared_ptr<ExtractedPath> ExtractedPathPtr_t;
147 typedef shared_ptr<SubchainPath> SubchainPathPtr_t;
148 typedef pinocchio::JointJacobian_t JointJacobian_t;
149 typedef pinocchio::Joint Joint;
150 typedef pinocchio::JointConstPtr_t JointConstPtr_t;
151 typedef pinocchio::JointPtr_t JointPtr_t;
152 typedef pinocchio::JointConstPtr_t JointConstPtr_t;
153 typedef shared_ptr<JointBoundValidation> JointBoundValidationPtr_t;
154 typedef shared_ptr<JointBoundValidationReport> JointBoundValidationReportPtr_t;
155 typedef pinocchio::HalfJointJacobian_t HalfJointJacobian_t;
156 typedef pinocchio::JointVector_t JointVector_t;
157 typedef KDTree* KDTreePtr_t;
158 typedef constraints::LockedJoint LockedJoint;
159 typedef constraints::LockedJointPtr_t LockedJointPtr_t;
160 typedef constraints::LockedJointConstPtr_t LockedJointConstPtr_t;
161 typedef constraints::LockedJoints_t LockedJoints_t;
162 typedef pinocchio::matrix_t matrix_t;
163 typedef pinocchio::matrix3_t matrix3_t;
164 typedef constraints::matrix6_t matrix6_t;
165 typedef pinocchio::vector3_t vector3_t;
166 typedef constraints::matrixIn_t matrixIn_t;
167 typedef constraints::matrixOut_t matrixOut_t;
168 typedef constraints::LiegroupElement LiegroupElement;
169 typedef constraints::LiegroupElementRef LiegroupElementRef;
170 typedef pinocchio::LiegroupElementConstRef LiegroupElementConstRef;
171 typedef constraints::LiegroupSpace LiegroupSpace;
172 typedef constraints::LiegroupSpacePtr_t LiegroupSpacePtr_t;
173 typedef pinocchio::size_type size_type;
174 typedef pinocchio::value_type value_type;
175 typedef std::pair<value_type, value_type> interval_t;
176 /// Interval of indices as (first index, number of indices)
177 typedef Eigen::BlockIndex BlockIndex;
178 typedef constraints::segment_t segment_t;
179 typedef constraints::segments_t segments_t;
180 typedef Node* NodePtr_t;
181 typedef std::list<NodePtr_t> Nodes_t;
182 typedef std::vector<NodePtr_t> NodeVector_t;
183 typedef pinocchio::ObjectVector_t ObjectVector_t;
184 typedef std::vector<CollisionObjectPtr_t> ObjectStdVector_t;
185 typedef std::vector<CollisionObjectConstPtr_t> ConstObjectStdVector_t;
186
187 typedef shared_ptr<Path> PathPtr_t;
188 typedef shared_ptr<const Path> PathConstPtr_t;
189 typedef shared_ptr<TimeParameterization> TimeParameterizationPtr_t;
190 typedef shared_ptr<PathOptimizer> PathOptimizerPtr_t;
191 typedef shared_ptr<PathPlanner> PathPlannerPtr_t;
192 typedef shared_ptr<ProblemTarget> ProblemTargetPtr_t;
193 typedef shared_ptr<PathVector> PathVectorPtr_t;
194 typedef shared_ptr<const PathVector> PathVectorConstPtr_t;
195 typedef shared_ptr<PlanAndOptimize> PlanAndOptimizePtr_t;
196 typedef shared_ptr<Problem> ProblemPtr_t;
197 typedef shared_ptr<const Problem> ProblemConstPtr_t;
198 typedef ProblemSolver* ProblemSolverPtr_t;
199 typedef shared_ptr<Roadmap> RoadmapPtr_t;
200 typedef shared_ptr<StraightPath> StraightPathPtr_t;
201 typedef shared_ptr<const StraightPath> StraightPathConstPtr_t;
202 typedef shared_ptr<ReedsSheppPath> ReedsSheppPathPtr_t;
203 typedef shared_ptr<const ReedsSheppPath> ReedsSheppPathConstPtr_t;
204 typedef shared_ptr<DubinsPath> DubinsPathPtr_t;
205 typedef shared_ptr<const DubinsPath> DubinsPathConstPtr_t;
206 typedef shared_ptr<KinodynamicPath> KinodynamicPathPtr_t;
207 typedef shared_ptr<const KinodynamicPath> KinodynamicPathConstPtr_t;
208 typedef shared_ptr<KinodynamicOrientedPath> KinodynamicOrientedPathPtr_t;
209 typedef shared_ptr<const KinodynamicOrientedPath>
210 KinodynamicOrientedPathConstPtr_t;
211 typedef shared_ptr<InterpolatedPath> InterpolatedPathPtr_t;
212 typedef shared_ptr<const InterpolatedPath> InterpolatedPathConstPtr_t;
213 typedef shared_ptr<SteeringMethod> SteeringMethodPtr_t;
214 typedef std::vector<PathPtr_t> Paths_t;
215 typedef std::vector<PathVectorPtr_t> PathVectors_t;
216 typedef std::vector<PathVectorPtr_t> PathVectors_t;
217 typedef pinocchio::Transform3f Transform3f;
218 typedef pinocchio::vector3_t vector3_t;
219 typedef Eigen::Matrix<value_type, 2, 1> vector2_t;
220 typedef pinocchio::vector_t vector_t;
221 typedef pinocchio::vectorIn_t vectorIn_t;
222 typedef pinocchio::vectorOut_t vectorOut_t;
223 typedef Eigen::Matrix<value_type, 1, Eigen::Dynamic> rowvector_t;
224 typedef shared_ptr<VisibilityPrmPlanner> VisibilityPrmPlannerPtr_t;
225 typedef shared_ptr<ValidationReport> ValidationReportPtr_t;
226 typedef shared_ptr<WeighedDistance> WeighedDistancePtr_t;
227 typedef shared_ptr<KinodynamicDistance> KinodynamicDistancePtr_t;
228 typedef std::map<std::string, constraints::ImplicitPtr_t>
229 NumericalConstraintMap_t;
230 typedef std::map<std::string, ComparisonTypes_t> ComparisonTypeMap_t;
231 typedef std::map<std::string, segments_t> segmentsMap_t;
232 typedef constraints::NumericalConstraints_t NumericalConstraints_t;
233 typedef std::map<std::string, CenterOfMassComputationPtr_t>
234 CenterOfMassComputationMap_t;
235
236 // Collision pairs
237 struct CollisionPair;
238 typedef CollisionPair CollisionPair_t; // For backward compatibility.
239 typedef std::vector<CollisionPair_t> CollisionPairs_t;
240
241 class ExtractedPath;
242 namespace path {
243 template <int _PolynomeBasis, int _Order>
244 class Spline;
245 HPP_PREDEF_CLASS(Hermite);
246 typedef shared_ptr<Hermite> HermitePtr_t;
247 typedef shared_ptr<const Hermite> HermiteConstPtr_t;
248 } // namespace path
249
250 HPP_PREDEF_CLASS(ContinuousValidation);
251 typedef shared_ptr<ContinuousValidation> ContinuousValidationPtr_t;
252 namespace continuousValidation {
253 HPP_PREDEF_CLASS(Dichotomy);
254 typedef shared_ptr<Dichotomy> DichotomyPtr_t;
255 HPP_PREDEF_CLASS(Progressive);
256 typedef shared_ptr<Progressive> ProgressivePtr_t;
257 HPP_PREDEF_CLASS(BodyPairCollision);
258 typedef shared_ptr<BodyPairCollision> BodyPairCollisionPtr_t;
259 typedef std::vector<BodyPairCollisionPtr_t> BodyPairCollisions_t;
260 HPP_PREDEF_CLASS(IntervalValidation);
261 typedef shared_ptr<IntervalValidation> IntervalValidationPtr_t;
262 typedef std::vector<IntervalValidationPtr_t> IntervalValidations_t;
263 HPP_PREDEF_CLASS(SolidSolidCollision);
264 typedef shared_ptr<SolidSolidCollision> SolidSolidCollisionPtr_t;
265 } // namespace continuousValidation
266
267 namespace distance {
268 HPP_PREDEF_CLASS(ReedsShepp);
269 typedef shared_ptr<ReedsShepp> ReedsSheppPtr_t;
270 } // namespace distance
271
272 class NearestNeighbor;
273 typedef NearestNeighbor* NearestNeighborPtr_t;
274 namespace nearestNeighbor {
275 class Basic;
276 class KDTree;
277 typedef KDTree* KDTreePtr_t;
278 typedef Basic* BasicPtr_t;
279 } // namespace nearestNeighbor
280
281 namespace pathOptimization {
282 HPP_PREDEF_CLASS(RandomShortcut);
283 typedef shared_ptr<RandomShortcut> RandomShortcutPtr_t;
284 HPP_PREDEF_CLASS(SimpleShortcut);
285 typedef shared_ptr<SimpleShortcut> SimpleShortcutPtr_t;
286 HPP_PREDEF_CLASS(Cost);
287 typedef shared_ptr<Cost> CostPtr_t;
288 HPP_PREDEF_CLASS(GradientBased);
289 typedef shared_ptr<GradientBased> GradientBasedPtr_t;
290 HPP_PREDEF_CLASS(PathLength);
291 typedef shared_ptr<PathLength> PathLengthPtr_t;
292 HPP_PREDEF_CLASS(PartialShortcut);
293 typedef shared_ptr<PartialShortcut> PartialShortcutPtr_t;
294 HPP_PREDEF_CLASS(RSTimeParameterization);
295 typedef shared_ptr<RSTimeParameterization> RSTimeParameterizationPtr_t;
296 HPP_PREDEF_CLASS(SimpleTimeParameterization);
297 typedef shared_ptr<SimpleTimeParameterization> SimpleTimeParameterizationPtr_t;
298 HPP_PREDEF_CLASS(ConfigOptimization);
299 typedef shared_ptr<ConfigOptimization> ConfigOptimizationPtr_t;
300 } // namespace pathOptimization
301
302 namespace pathPlanner {
303 HPP_PREDEF_CLASS(kPrmStar);
304 typedef shared_ptr<kPrmStar> kPrmStarPtr_t;
305 } // namespace pathPlanner
306
307 HPP_PREDEF_CLASS(PathValidations);
308 HPP_PREDEF_CLASS(PathValidation);
309 typedef shared_ptr<PathValidation> PathValidationPtr_t;
310 typedef shared_ptr<PathValidations> PathValidationsPtr_t;
311 namespace pathValidation {
312 HPP_PREDEF_CLASS(Discretized);
313 typedef shared_ptr<Discretized> DiscretizedPtr_t;
314 } // namespace pathValidation
315 // Path validation reports
316 struct PathValidationReport;
317 struct CollisionPathValidationReport;
318 typedef shared_ptr<PathValidationReport> PathValidationReportPtr_t;
319 typedef shared_ptr<CollisionPathValidationReport>
320 CollisionPathValidationReportPtr_t;
321 typedef std::vector<CollisionPathValidationReport>
322 CollisionPathValidationReports_t;
323
324 HPP_PREDEF_CLASS(PathProjector);
325 typedef shared_ptr<PathProjector> PathProjectorPtr_t;
326 namespace pathProjector {
327 HPP_PREDEF_CLASS(Global);
328 typedef shared_ptr<Global> GlobalPtr_t;
329 HPP_PREDEF_CLASS(Dichotomy);
330 typedef shared_ptr<Dichotomy> DichotomyPtr_t;
331 HPP_PREDEF_CLASS(Progressive);
332 typedef shared_ptr<Progressive> ProgressivePtr_t;
333 HPP_PREDEF_CLASS(RecursiveHermite);
334 typedef shared_ptr<RecursiveHermite> RecursiveHermitePtr_t;
335 } // namespace pathProjector
336
337 namespace steeringMethod {
338 HPP_PREDEF_CLASS(Interpolated);
339 typedef shared_ptr<Interpolated> InterpolatedPtr_t;
340 HPP_PREDEF_CLASS(ReedsShepp);
341 typedef shared_ptr<ReedsShepp> ReedsSheppPtr_t;
342 HPP_PREDEF_CLASS(Kinodynamic);
343 typedef shared_ptr<Kinodynamic> KinodynamicPtr_t;
344 } // namespace steeringMethod
345
346 namespace problemTarget {
347 HPP_PREDEF_CLASS(GoalConfigurations);
348 HPP_PREDEF_CLASS(TaskTarget);
349 typedef shared_ptr<GoalConfigurations> GoalConfigurationsPtr_t;
350 typedef shared_ptr<TaskTarget> TaskTargetPtr_t;
351 } // namespace problemTarget
352
353 namespace configurationShooter {
354 HPP_PREDEF_CLASS(Uniform);
355 typedef shared_ptr<Uniform> UniformPtr_t;
356 HPP_PREDEF_CLASS(Gaussian);
357 typedef shared_ptr<Gaussian> GaussianPtr_t;
358 } // namespace configurationShooter
359
360 /// Plane polygon represented by its vertices
361 /// Used to model contact surfaces for manipulation applications
362 typedef constraints::Shape_t Shape_t;
363 typedef constraints::JointAndShape_t JointAndShape_t;
364 typedef constraints::JointAndShapes_t JointAndShapes_t;
365
366 namespace continuousCollisionChecking = continuousValidation;
367
368 } // namespace core
369 } // namespace hpp
370
371 #endif // HPP_CORE_FWD_HH
372