hpp::constraints::ConvexShape Class Reference

#include <hpp/constraints/convex-shape.hh>

Collaboration diagram for hpp::constraints::ConvexShape:
[legend]

Public Member Functions

 ConvexShape (const std::vector< vector3_t > &pts, JointPtr_t joint=JointPtr_t())
 Represent a convex shape. More...
 
 ConvexShape (const fcl::TriangleP &t, const JointPtr_t &joint=JointPtr_t())
 
 ConvexShape (const vector3_t &p0, const vector3_t &p1, const vector3_t &p2, const JointPtr_t &joint=JointPtr_t())
 This constructor is required for compatibility with deprecated Triangle constructor. More...
 
 ConvexShape (const ConvexShape &t)
 
void reverse ()
 
vector3_t intersectionLocal (const vector3_t &A, const vector3_t &u) const
 Intersection with a line defined by a point and a vector. More...
 
bool isInsideLocal (const vector3_t &Ap) const
 As isInside but consider A as expressed in joint frame. More...
 
value_type distanceLocal (const vector3_t &a) const
 Return the shortest distance from a point to the shape A negative value means the point is inside the shape. More...
 
const vector3_tplaneXaxis () const
 Return the X axis of the plane in the joint frame. More...
 
const vector3_tplaneYaxis () const
 Return the Y axis of the plane in the joint frame The Y axis is aligned with \( Pts_[1] - Pts_[0] \). More...
 
const Transform3fpositionInJoint () const
 Transform of the shape in the joint frame. More...
 

Public Attributes

std::vector< vector3_tPts_
 The points in the joint frame. It is constant. More...
 
size_t shapeDimension_
 
vector3_t C_
 the center in the joint frame. It is constant. More...
 
vector3_t N_
 the normal to the shape in the joint frame. It is constant. More...
 
std::vector< vector3_tNs_
 Ns_ and Us_ are unit vector, in the plane containing the shape, expressed in the joint frame. More...
 
std::vector< vector3_tUs_
 
vector_t Ls_
 
Transform3f MinJoint_
 
JointPtr_t joint_
 

Constructor & Destructor Documentation

hpp::constraints::ConvexShape::ConvexShape ( const std::vector< vector3_t > &  pts,
JointPtr_t  joint = JointPtr_t() 
)
inline

Represent a convex shape.

Parameters
ptsa sequence of points lying in a plane. The convex shape is obtained by connecting consecutive points (in a circular way)
Note
There is no convexity check yet. The order is important: The normal is parallel to (pts[1] - pts[0]).cross (pts[2] - pts[1]) The normal to the segment in the plane are directed outward. (pts[i+1] - pts[i]).cross (normalToConvexShape)
hpp::constraints::ConvexShape::ConvexShape ( const fcl::TriangleP &  t,
const JointPtr_t joint = JointPtr_t() 
)
inline
hpp::constraints::ConvexShape::ConvexShape ( const vector3_t p0,
const vector3_t p1,
const vector3_t p2,
const JointPtr_t joint = JointPtr_t() 
)
inline

This constructor is required for compatibility with deprecated Triangle constructor.

hpp::constraints::ConvexShape::ConvexShape ( const ConvexShape t)
inline

Member Function Documentation

value_type hpp::constraints::ConvexShape::distanceLocal ( const vector3_t a) const
inline

Return the shortest distance from a point to the shape A negative value means the point is inside the shape.

Parameters
aa point already in the plane containing the convex shape, and expressed in the local frame.

References Eigen::assert(), and Eigen::d.

Referenced by hpp::constraints::ConvexShapeData::distance().

vector3_t hpp::constraints::ConvexShape::intersectionLocal ( const vector3_t A,
const vector3_t u 
) const
inline

Intersection with a line defined by a point and a vector.

Parameters
A,upoint and vector expressed in the local frame.

References hpp::constraints::linePlaneIntersection().

bool hpp::constraints::ConvexShape::isInsideLocal ( const vector3_t Ap) const
inline

As isInside but consider A as expressed in joint frame.

References Eigen::assert().

Referenced by hpp::constraints::ConvexShapeData::isInside().

const vector3_t& hpp::constraints::ConvexShape::planeXaxis ( ) const
inline

Return the X axis of the plane in the joint frame.

References Eigen::assert().

const vector3_t& hpp::constraints::ConvexShape::planeYaxis ( ) const
inline

Return the Y axis of the plane in the joint frame The Y axis is aligned with \( Pts_[1] - Pts_[0] \).

References Eigen::assert().

const Transform3f& hpp::constraints::ConvexShape::positionInJoint ( ) const
inline

Transform of the shape in the joint frame.

void hpp::constraints::ConvexShape::reverse ( )
inline

Member Data Documentation

vector3_t hpp::constraints::ConvexShape::C_
vector_t hpp::constraints::ConvexShape::Ls_
Transform3f hpp::constraints::ConvexShape::MinJoint_
vector3_t hpp::constraints::ConvexShape::N_

the normal to the shape in the joint frame. It is constant.

Referenced by hpp::constraints::ConvexShapeData::_recompute(), and hpp::constraints::ConvexShapeData::alignedPositionInJoint().

std::vector<vector3_t> hpp::constraints::ConvexShape::Ns_

Ns_ and Us_ are unit vector, in the plane containing the shape, expressed in the joint frame.

Ns_[i] is normal to edge i, pointing inside. Ns_[i] is a vector director of edge i.

std::vector<vector3_t> hpp::constraints::ConvexShape::Pts_

The points in the joint frame. It is constant.

size_t hpp::constraints::ConvexShape::shapeDimension_
std::vector<vector3_t> hpp::constraints::ConvexShape::Us_