hpp-constraints  4.10.1
Definition of basic geometric constraints for motion planning
distance-between-points-in-bodies.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015 CNRS
3 // Authors: Florent Lamiraux
4 //
5 //
6 // This file is part of hpp-constraints.
7 // hpp-constraints is free software: you can redistribute it
8 // and/or modify it under the terms of the GNU Lesser General Public
9 // License as published by the Free Software Foundation, either version
10 // 3 of the License, or (at your option) any later version.
11 //
12 // hpp-constraints is distributed in the hope that it will be
13 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 // General Lesser Public License for more details. You should have
16 // received a copy of the GNU Lesser General Public License along with
17 // hpp-constraints. If not, see
18 // <http://www.gnu.org/licenses/>.
19 
20 #ifndef HPP_CONSTRAINTS_DISTANCE_BETWEEN_POINTS_IN_BODIES_HH
21 # define HPP_CONSTRAINTS_DISTANCE_BETWEEN_POINTS_IN_BODIES_HH
22 
23 # include <hpp/pinocchio/liegroup-element.hh>
25 
26 namespace hpp {
27  namespace constraints {
28 
38  {
39  public:
40  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
41 
51  (const std::string& name, const DevicePtr_t& robot,
52  const JointPtr_t& joint1, const JointPtr_t& joint2,
53  const vector3_t& point1, const vector3_t& point2);
54 
63  (const std::string& name, const DevicePtr_t& robot,
64  const JointPtr_t& joint1, const vector3_t& point1,
65  const vector3_t& point2);
66 
68 
69  protected:
76  DistanceBetweenPointsInBodies (const std::string& name,
77  const DevicePtr_t& robot,
78  const JointPtr_t& joint1,
79  const JointPtr_t& joint2,
80  const vector3_t& point1,
81  const vector3_t& point2);
82 
88  DistanceBetweenPointsInBodies (const std::string& name,
89  const DevicePtr_t& robot,
90  const JointPtr_t& joint1,
91  const vector3_t& point1,
92  const vector3_t& point2);
93 
94  virtual void impl_compute (LiegroupElementRef result,
95  ConfigurationIn_t argument) const;
96  virtual void impl_jacobian (matrixOut_t jacobian,
97  ConfigurationIn_t arg) const;
98  private:
99  DevicePtr_t robot_;
100  JointPtr_t joint1_;
101  JointPtr_t joint2_;
102  vector3_t point1_;
103  vector3_t point2_;
104  mutable vector3_t global1_;
105  mutable vector3_t global2_;
106  mutable Configuration_t latestArgument_;
107  mutable LiegroupElement latestResult_;
108  }; // class DistanceBetweenPointsInBodies
109  } // namespace constraints
110 } // namespace hpp
111 
112 #endif //HPP_CONSTRAINTS_DISTANCE_BETWEEN_POINTS_IN_BODIES_HH
Definition: distance-between-points-in-bodies.hh:36
Definition: active-set-differentiable-function.hh:24
pinocchio::DevicePtr_t DevicePtr_t
Definition: fwd.hh:97
pinocchio::LiegroupElement LiegroupElement
Definition: fwd.hh:53
pinocchio::vector3_t vector3_t
Definition: fwd.hh:40
pinocchio::Configuration_t Configuration_t
Definition: fwd.hh:93
virtual ~DistanceBetweenPointsInBodies()
Definition: distance-between-points-in-bodies.hh:67
pinocchio::ConfigurationIn_t ConfigurationIn_t
Definition: fwd.hh:94
pinocchio::JointPtr_t JointPtr_t
Definition: fwd.hh:38
Definition: differentiable-function.hh:52
boost::shared_ptr< DistanceBetweenPointsInBodies > DistanceBetweenPointsInBodiesPtr_t
Definition: fwd.hh:111
#define HPP_CONSTRAINTS_DLLAPI
Definition: config.hh:64
pinocchio::LiegroupElementRef LiegroupElementRef
Definition: fwd.hh:54
Eigen::Ref< matrix_t > matrixOut_t
Definition: fwd.hh:46