19 #ifndef HPP_RBPRM_TIMECONSTRAINT_PATH_HH
20 # define HPP_RBPRM_TIMECONSTRAINT_PATH_HH
22 # include <hpp/core/fwd.hh>
23 # include <hpp/core/config.hh>
24 # include <hpp/core/path.hh>
29 namespace interpolation {
31 typedef boost::shared_ptr <TimeConstraintPath>
54 core::ConfigurationIn_t init,
55 core::ConfigurationIn_t end,
56 core::value_type length,
57 const std::size_t pathDofRank,
73 core::ConfigurationIn_t init,
74 core::ConfigurationIn_t end,
75 core::value_type length,
76 core::ConstraintSetPtr_t constraints,
77 const std::size_t pathDofRank,
81 length, constraints, pathDofRank,tds);
116 virtual core::PathPtr_t
copy ()
const
118 return createCopy (weak_.lock ());
125 virtual core::PathPtr_t
copy (
const core::ConstraintSetPtr_t& constraints)
const
127 return createCopy (weak_.lock (), constraints);
135 virtual core::PathPtr_t extract (
const core::interval_t& subInterval)
const
136 throw (core::projection_error);
144 assert (initial.size () == initial_.size ());
145 pinocchio::value_type dof = initial_[pathDofRank_];
147 initial_[pathDofRank_] = dof;
156 assert (end.size () == end_.size ());
157 pinocchio::value_type dof = end_[pathDofRank_];
159 end_[pathDofRank_] = dof;
163 core::DevicePtr_t device ()
const;
172 core::Configuration_t
end ()
const
177 virtual void checkPath ()
const throw (core::projection_error);
180 virtual std::ostream& print (std::ostream &os)
const
182 os <<
"TimeConstraintPath:" << std::endl;
183 os <<
"interval: [ " << timeRange ().first <<
", "
184 << timeRange ().second <<
" ]" << std::endl;
185 os <<
"initial configuration: " << initial_.transpose () << std::endl;
186 os <<
"final configuration: " << end_.transpose () << std::endl;
191 core::ConfigurationIn_t end, core::value_type length,
192 const std::size_t pathDofRank,
197 core::ConfigurationIn_t end, core::value_type length,
198 core::ConstraintSetPtr_t constraints,
const std::size_t pathDofRank,
206 const core::ConstraintSetPtr_t& constraints);
210 parent_t::init (
self);
216 parent_t::init (
self);
220 virtual bool impl_compute (core::ConfigurationOut_t result,
221 core::value_type param)
const;
224 void updateConstraints(core::ConfigurationOut_t configuration)
const;
227 core::DevicePtr_t device_;
228 core::Configuration_t initial_;
229 core::Configuration_t end_;
236 TimeConstraintPathWkPtr_t weak_;
241 #endif // HPP_RBPRM_TIMECONSTRAINT_PATH_HH