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 {
51 static TimeConstraintPathPtr_t
create(
const core::DevicePtr_t& device, core::ConfigurationIn_t init,
52 core::ConfigurationIn_t end, core::value_type length,
55 TimeConstraintPathPtr_t shPtr(ptr);
66 static TimeConstraintPathPtr_t
create(
const core::DevicePtr_t& device, core::ConfigurationIn_t init,
67 core::ConfigurationIn_t end, core::value_type length,
68 core::ConstraintSetPtr_t constraints,
const std::size_t pathDofRank,
71 TimeConstraintPathPtr_t shPtr(ptr);
79 static TimeConstraintPathPtr_t
createCopy(
const TimeConstraintPathPtr_t& path) {
81 TimeConstraintPathPtr_t shPtr(ptr);
90 static TimeConstraintPathPtr_t
createCopy(
const TimeConstraintPathPtr_t& path,
91 const core::ConstraintSetPtr_t& constraints) {
93 TimeConstraintPathPtr_t shPtr(ptr);
103 virtual core::PathPtr_t
copy()
const {
return createCopy(weak_.lock()); }
109 virtual core::PathPtr_t
copy(
const core::ConstraintSetPtr_t& constraints)
const {
110 return createCopy(weak_.lock(), constraints);
117 virtual core::PathPtr_t extract(
const core::interval_t& subInterval)
const;
124 assert(initial.size() == initial_.size());
125 pinocchio::value_type dof = initial_[pathDofRank_];
127 initial_[pathDofRank_] = dof;
135 assert(end.size() == end_.size());
136 pinocchio::value_type dof = end_[pathDofRank_];
138 end_[pathDofRank_] = dof;
142 core::DevicePtr_t device()
const;
145 core::Configuration_t
initial()
const {
return initial_; }
148 core::Configuration_t
end()
const {
return end_; }
150 virtual void checkPath()
const;
154 virtual std::ostream&
print(std::ostream& os)
const {
155 os <<
"TimeConstraintPath:" << std::endl;
156 os <<
"interval: [ " << timeRange().first <<
", " << timeRange().second <<
" ]" << std::endl;
157 os <<
"initial configuration: " << initial_.transpose() << std::endl;
158 os <<
"final configuration: " << end_.transpose() << std::endl;
162 TimeConstraintPath(
const core::DevicePtr_t& robot, core::ConfigurationIn_t init, core::ConfigurationIn_t end,
163 core::value_type length,
const std::size_t pathDofRank,
const T_TimeDependant& tds);
166 TimeConstraintPath(
const core::DevicePtr_t& robot, core::ConfigurationIn_t init, core::ConfigurationIn_t end,
167 core::value_type length, core::ConstraintSetPtr_t constraints,
const std::size_t pathDofRank,
176 void init(TimeConstraintPathPtr_t
self) {
177 parent_t::init(
self);
182 parent_t::init(
self);
186 virtual bool impl_compute(core::ConfigurationOut_t result, core::value_type param)
const;
189 void updateConstraints(core::ConfigurationOut_t configuration)
const;
192 core::DevicePtr_t device_;
193 core::Configuration_t initial_;
194 core::Configuration_t end_;
201 TimeConstraintPathWkPtr_t weak_;
206 #endif // HPP_RBPRM_TIMECONSTRAINT_PATH_HH static TimeConstraintPathPtr_t create(const core::DevicePtr_t &device, core::ConfigurationIn_t init, core::ConfigurationIn_t end, core::value_type length, const std::size_t pathDofRank, const T_TimeDependant &tds)
Definition: time-constraint-path.hh:51
virtual ~TimeConstraintPath()
Destructor.
Definition: time-constraint-path.hh:45
void initialConfig(core::ConfigurationIn_t initial)
Definition: time-constraint-path.hh:123
Definition: time-constraint-path.hh:41
virtual void checkPath() const
Definition: algorithm.hh:27
std::shared_ptr< TimeConstraintPath > TimeConstraintPathPtr_t
Definition: time-constraint-path.hh:31
const std::size_t pathDofRank_
Definition: time-constraint-path.hh:197
Path parent_t
Definition: time-constraint-path.hh:43
void endConfig(core::ConfigurationIn_t end)
Definition: time-constraint-path.hh:134
virtual core::PathPtr_t copy() const
Definition: time-constraint-path.hh:103
void initCopy(TimeConstraintPathPtr_t self)
Definition: time-constraint-path.hh:181
virtual core::PathPtr_t copy(const core::ConstraintSetPtr_t &constraints) const
Definition: time-constraint-path.hh:109
const T_TimeDependant tds_
Definition: time-constraint-path.hh:198
static TimeConstraintPathPtr_t createCopy(const TimeConstraintPathPtr_t &path, const core::ConstraintSetPtr_t &constraints)
Definition: time-constraint-path.hh:90
static TimeConstraintPathPtr_t create(const core::DevicePtr_t &device, core::ConfigurationIn_t init, core::ConfigurationIn_t end, core::value_type length, core::ConstraintSetPtr_t constraints, const std::size_t pathDofRank, const T_TimeDependant &tds)
Definition: time-constraint-path.hh:66
virtual std::ostream & print(std::ostream &os) const
Print path in a stream.
Definition: time-constraint-path.hh:154
void init(TimeConstraintPathPtr_t self)
Definition: time-constraint-path.hh:176
core::Configuration_t end() const
Get the final configuration.
Definition: time-constraint-path.hh:148
std::vector< TimeDependant > T_TimeDependant
Definition: time-dependant.hh:68
HPP_PREDEF_CLASS(ComTrajectory)
core::Configuration_t initial() const
Get the initial configuration.
Definition: time-constraint-path.hh:145
static TimeConstraintPathPtr_t createCopy(const TimeConstraintPathPtr_t &path)
Definition: time-constraint-path.hh:79