hpp-pinocchio
4.13.0
Wrapping of the kinematic/dynamic chain Pinocchio for HPP.
|
Go to the documentation of this file.
29 #ifndef HPP_PINOCCHIO_LIEGROUP_ELEMENT_HH
30 #define HPP_PINOCCHIO_LIEGROUP_ELEMENT_HH
43 template <
typename vector_type>
44 class LiegroupElementConstBase {
49 template <
typename Derived>
60 template <
typename Derived>
67 template <
typename vector_type2>
85 template <
typename vector_type2>
87 return ((*
space_ == *(other.space_)) && (
value_ == other.value_));
91 template <
typename vector_type2>
93 return ((*
space_ != *(other.space_)) || (
value_ != other.value_));
97 template <
typename Derived>
106 template <
typename vector_type2>
108 template <
typename vector_type2>
115 template <
typename vector_type>
124 :
Base(value, space, NULL) {}
140 template <
typename vector_type2>
142 :
Base(other.value_, other.space()) {}
148 template <
typename vector_type2>
150 :
Base(other.value_, other.space()) {}
153 template <
typename vector_type2>
155 :
Base(other.value_, other.space(), NULL) {}
164 vector_type&
vector() {
return this->value_; }
167 void setNeutral() { this->value_ = this->space_->neutral().vector(); }
173 template <
typename vector_type2>
176 this->space_ = other.space();
177 this->value_ = other.vector();
182 template <
typename Vector>
184 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Vector);
185 assert(this->space_->nq() == v.derived().size());
186 this->value_.noalias() = v.derived();
199 template <
typename vector_type>
210 template <
typename vector_type1,
typename vector_type2>
212 const LiegroupElementConstBase<vector_type2>& e2);
216 template <
typename vector_type>
217 vector_t log(
const LiegroupElementConstBase<vector_type>& lge);
219 template <
typename vector_type>
222 os <<
"Lie group element in " << *(e.space()) <<
" represented by vector ("
223 << e.vector().transpose() <<
")";
231 #endif // HPP_PINOCCHIO_LIEGROUP_ELEMENT_HH
LiegroupElementBase(const LiegroupSpacePtr_t &space)
Definition: liegroup-element.hh:128
void setNeutral()
Set element to neutral element.
Definition: liegroup-element.hh:167
void check() const
Definition: liegroup-element.hh:82
LiegroupElement operator+(const LiegroupElementConstBase< vector_type > &e, vectorIn_t v)
bool operator==(const LiegroupElementConstBase< vector_type2 > &other)
Equality operator.
Definition: liegroup-element.hh:86
vector_type value_
Definition: liegroup-element.hh:103
LiegroupElementBase(const LiegroupElementConstBase< vector_type2 > &other)
Definition: liegroup-element.hh:141
LiegroupElementBase(const LiegroupElementBase< vector_type2 > &other)
Definition: liegroup-element.hh:149
LiegroupElementBase(LiegroupElementBase< vector_type2 > &other)
Casting operator from LiegroupElement to LiegroupElementRef
Definition: liegroup-element.hh:154
LiegroupElementBase(const vector_type &value)
Definition: liegroup-element.hh:135
Definition: liegroup-space.hh:101
LiegroupElementConstBase(const Eigen::EigenBase< Derived > &value)
Definition: liegroup-element.hh:61
LiegroupElementConstBase(const Eigen::EigenBase< Derived > &value, const LiegroupSpacePtr_t &space, void *)
Definition: liegroup-element.hh:98
shared_ptr< LiegroupSpace > LiegroupSpacePtr_t
Definition: fwd.hh:150
const LiegroupSpacePtr_t & space() const
get reference to vector of Lie groups
Definition: liegroup-element.hh:72
LiegroupSpacePtr_t space_
Definition: liegroup-element.hh:104
LiegroupElementBase & operator=(const LiegroupElementConstBase< vector_type2 > &other)
Assignment from another LiegroupElement.
Definition: liegroup-element.hh:174
const vector_type & vector() const
Const vector representation.
Definition: liegroup-element.hh:161
vector_t operator-(const LiegroupElementConstBase< vector_type1 > &e1, const LiegroupElementConstBase< vector_type2 > &e2)
LiegroupElementBase & operator=(const Eigen::MatrixBase< Vector > &v)
Assignment from a vector.
Definition: liegroup-element.hh:183
LiegroupElementBase & operator+=(vectorIn_t v)
Inplace integration of a velocity vector.
LiegroupElementConstBase< vector_type > Base
Definition: liegroup-element.hh:118
matrix_t::Index size_type
Definition: fwd.hh:96
LiegroupElementConstBase(const LiegroupElementConstBase< vector_type2 > &other)
Definition: liegroup-element.hh:68
Utility functions.
Definition: body.hh:39
const vector_type & vector() const
Const vector representation.
Definition: liegroup-element.hh:75
vector_t log(const LiegroupElementConstBase< vector_type > &lge)
Compute the log as a tangent vector of a Lie group element.
Eigen::Ref< const vector_t > vectorIn_t
Definition: fwd.hh:92
size_type size() const
Size of the vector representation.
Definition: liegroup-element.hh:78
Eigen::Matrix< value_type, Eigen::Dynamic, 1 > vector_t
Definition: fwd.hh:87
LiegroupElementBase< vector_t > LiegroupElement
Element of a Lie group.
Definition: fwd.hh:145
bool operator!=(const LiegroupElementConstBase< vector_type2 > &other)
Equality operator.
Definition: liegroup-element.hh:92
std::ostream & operator<<(std::ostream &os, const hpp::pinocchio::Device &device)
Definition: device.hh:364
LiegroupElementBase()
Constructor of trivial element.
Definition: liegroup-element.hh:158
LiegroupElementConstBase(const Eigen::EigenBase< Derived > &value, const LiegroupSpacePtr_t &liegroupSpace)
Definition: liegroup-element.hh:50
vector_type & vector()
Modifiable vector representation.
Definition: liegroup-element.hh:164
LiegroupElementBase(const vector_type &value, const LiegroupSpacePtr_t &space)
Definition: liegroup-element.hh:123
Definition: collision-object.hh:40