hpp-core  4.9.0
Implement basic classes for canonical path planning for kinematic chains.
recursive-hermite.hh
Go to the documentation of this file.
1 // Copyright (c) 2016, 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_RECURSIVE_HERMITE_HH
18 # define HPP_CORE_PATHPROJECTOR_RECURSIVE_HERMITE_HH
19 
20 # include "hpp/core/fwd.hh"
21 # include "hpp/core/config.hh"
23 
24 namespace hpp {
25  namespace core {
26  namespace pathProjector {
30  class HPP_CORE_DLLAPI RecursiveHermite : public PathProjector
31  {
32  public:
35 
37  const SteeringMethodPtr_t& steeringMethod, value_type step);
38 
39  static RecursiveHermitePtr_t create (const Problem& problem,
40  const value_type& step);
41 
42  protected:
43  bool impl_apply (const PathPtr_t& path,
44  PathPtr_t& projection) const;
45 
47  const SteeringMethodPtr_t& steeringMethod,
48  const value_type& M, const value_type& beta);
49 
50  bool project (const PathPtr_t& path, PathPtr_t& proj) const;
51 
52  private:
53  bool recurse (const HermitePtr_t& path, PathVectorPtr_t& proj, const value_type& thr) const;
54  value_type M_, beta_;
55  };
56  } // namespace pathProjector
57  } // namespace core
58 } // namespace hpp
59 
60 #endif // HPP_CORE_PATHPROJECTOR_RECURSIVE_HERMITE_HH
hpp::core::PathPtr_t PathPtr_t
Definition: path-projector.hh:30
boost::shared_ptr< Hermite > HermitePtr_t
Definition: fwd.hh:226
Definition: problem.hh:48
ObjectFactory * create(ObjectFactory *parent=NULL, const XMLElement *element=NULL)
This class projects a path using constraints.
Definition: path-projector.hh:26
hpp::core::PathVectorPtr_t PathVectorPtr_t
Definition: path-projector.hh:32
boost::shared_ptr< RecursiveHermite > RecursiveHermitePtr_t
Definition: fwd.hh:315
Definition: recursive-hermite.hh:30
hpp::core::path::Hermite Hermite
Definition: recursive-hermite.hh:33
pinocchio::value_type value_type
Definition: fwd.hh:157
hpp::core::path::HermitePtr_t HermitePtr_t
Definition: recursive-hermite.hh:34
Definition: hermite.hh:31
boost::shared_ptr< SteeringMethod > SteeringMethodPtr_t
Definition: fwd.hh:194
boost::shared_ptr< Distance > DistancePtr_t
Definition: fwd.hh:122
FCL_REAL distance(const KDOP< N > &other, Vec3f *P=NULL, Vec3f *Q=NULL) const