hpp-core  4.9.0
Implement basic classes for canonical path planning for kinematic chains.
path-projector.hh
Go to the documentation of this file.
1 // Copyright (c) 2014, LAAS-CNRS
2 // Authors: Joseph Mirabel (joseph.mirabel@laas.fr)
3 //
4 // This file is part of hpp-core.
5 // hpp-core is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 //
10 // hpp-core is distributed in the hope that it will be
11 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Lesser Public License for more details. You should have
14 // received a copy of the GNU Lesser General Public License along with
15 // hpp-core. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef HPP_CORE_PATHPROJECTOR_HH
18 # define HPP_CORE_PATHPROJECTOR_HH
19 
20 # include <hpp/core/config.hh>
21 # include <hpp/core/fwd.hh>
22 
23 namespace hpp {
24  namespace core {
26  class HPP_CORE_DLLAPI PathProjector
27  {
28  public:
33 
35  virtual ~PathProjector ();
36 
41  bool apply (const PathPtr_t& path, PathPtr_t& projection) const;
42 
43  protected:
52  const SteeringMethodPtr_t& steeringMethod,
53  bool keepSteeringMethodConstraints = false);
54 
56  virtual bool impl_apply (const PathPtr_t& path,
57  PathPtr_t& projection) const = 0;
58 
60  PathPtr_t steer (ConfigurationIn_t q1, ConfigurationIn_t q2) const;
62  private:
63  DistancePtr_t distance_;
64  };
65  } // namespace core
66 } // namespace hpp
67 
68 #endif // HPP_CORE_PATHPROJECTOR_HH
hpp::core::PathPtr_t PathPtr_t
Definition: path-projector.hh:30
boost::shared_ptr< Path > PathPtr_t
Definition: fwd.hh:170
pinocchio::ConfigurationIn_t ConfigurationIn_t
Definition: fwd.hh:97
hpp::core::PathVector PathVector
Definition: path-projector.hh:31
This class projects a path using constraints.
Definition: path-projector.hh:26
hpp::core::PathVectorPtr_t PathVectorPtr_t
Definition: path-projector.hh:32
hpp::core::Path Path
Definition: path-projector.hh:29
pinocchio::value_type value_type
Definition: fwd.hh:157
FCL_REAL d
Concatenation of several paths.
Definition: path-vector.hh:32
boost::shared_ptr< PathVector > PathVectorPtr_t
Definition: fwd.hh:176
boost::shared_ptr< SteeringMethod > SteeringMethodPtr_t
Definition: fwd.hh:194
SteeringMethodPtr_t steeringMethod_
Definition: path-projector.hh:61
boost::shared_ptr< Distance > DistancePtr_t
Definition: fwd.hh:122
Definition: path.hh:60
FCL_REAL distance(const KDOP< N > &other, Vec3f *P=NULL, Vec3f *Q=NULL) const