DART  6.6.2
dart::dynamics::PlaneShape Class Reference

PlaneShape represents infinite plane has normal and offset as properties. More...

#include <PlaneShape.hpp>

Inheritance diagram for dart::dynamics::PlaneShape:
dart::dynamics::Shape dart::common::Subject

Public Types

enum  ShapeType {
  SPHERE , BOX , ELLIPSOID , CYLINDER ,
  CAPSULE , CONE , PLANE , MULTISPHERE ,
  MESH , SOFT_MESH , LINE_SEGMENT , HEIGHTMAP ,
  UNSUPPORTED
}
 
enum  DataVariance {
  STATIC =0 , DYNAMIC_TRANSFORM = 1 << 1 , DYNAMIC_PRIMITIVE = 1 << 2 , DYNAMIC_COLOR = 1 << 3 ,
  DYNAMIC_VERTICES = 1 << 4 , DYNAMIC_ELEMENTS = 1 << 5 , DYNAMIC = 0xFF
}
 DataVariance can be used by renderers to determine whether it should expect data for this shape to change during each update. More...
 

Public Member Functions

 PlaneShape (const Eigen::Vector3d &_normal, double _offset)
 Constructor. More...
 
 PlaneShape (const Eigen::Vector3d &_normal, const Eigen::Vector3d &_point)
 Constructor. More...
 
const std::string & getType () const override
 Returns a string representing the shape type. More...
 
Eigen::Matrix3d computeInertia (double mass) const override
 Computes the inertia. More...
 
void setNormal (const Eigen::Vector3d &_normal)
 Set plane normal. More...
 
const Eigen::Vector3d & getNormal () const
 Get plane normal. More...
 
void setOffset (double _offset)
 Set plane offset. More...
 
double getOffset () const
 Get plane offset. More...
 
void setNormalAndOffset (const Eigen::Vector3d &_normal, double _offset)
 Set plane normal and offset. More...
 
void setNormalAndPoint (const Eigen::Vector3d &_normal, const Eigen::Vector3d &_point)
 Set plane normal and point. More...
 
double computeDistance (const Eigen::Vector3d &_point) const
 Compute distance between the plane and the given point. More...
 
double computeSignedDistance (const Eigen::Vector3d &_point) const
 Compute signed distance between the plane and the given point. More...
 
template<typename ShapeT >
bool is () const
 Get true if the types of this Shape and the template parameter (a shape class) are identical. More...
 
const math::BoundingBoxgetBoundingBox () const
 Get the bounding box of the shape in its local coordinate frame. More...
 
Eigen::Matrix3d computeInertiaFromDensity (double density) const
 
Eigen::Matrix3d computeInertiaFromMass (double mass) const
 
double getVolume () const
 Returns volume of this shape. More...
 
int getID () const
 
ShapeType getShapeType () const
 
void setDataVariance (unsigned int _variance)
 Set the data variance of this shape. More...
 
void addDataVariance (unsigned int _variance)
 Add a type of variance to this shape. More...
 
void removeDataVariance (unsigned int _variance)
 Remove a type of variance from this shape. More...
 
unsigned int getDataVariance () const
 Get the data variance of this shape. More...
 
bool checkDataVariance (DataVariance type) const
 True iff this Shape has the specified type of DataVariance. More...
 
virtual void refreshData ()
 Instruct this shape to update its data. More...
 
virtual void notifyAlphaUpdate (double alpha)
 Notify that the alpha of this shape has updated. More...
 
virtual void notifyAlphaUpdated (double alpha)
 Notify that the alpha of this shape has updated. More...
 
virtual void notifyColorUpdate (const Eigen::Vector4d &color)
 Notify that the color (rgba) of this shape has updated. More...
 
virtual void notifyColorUpdated (const Eigen::Vector4d &color)
 Notify that the color (rgba) of this shape has updated. More...
 

Static Public Member Functions

static const std::string & getStaticType ()
 Returns shape type for this class. More...
 

Protected Member Functions

void sendDestructionNotification () const
 Send a destruction notification to all Observers. More...
 
void addObserver (Observer *_observer) const
 Add an Observer to the list of Observers. More...
 
void removeObserver (Observer *_observer) const
 Remove an Observer from the list of Observers. More...
 

Protected Attributes

math::BoundingBox mBoundingBox
 The bounding box (in the local coordinate frame) of the shape. More...
 
bool mIsBoundingBoxDirty
 Whether bounding box needs update. More...
 
double mVolume
 Volume enclosed by the geometry. More...
 
bool mIsVolumeDirty
 Whether volume needs update. More...
 
int mID
 Unique id. More...
 
unsigned int mVariance
 The DataVariance of this Shape. More...
 
ShapeType mType
 
std::set< Observer * > mObservers
 List of current Observers. More...
 

Static Protected Attributes

static int mCounter = 1000
 

Private Member Functions

void updateBoundingBox () const override
 Updates bounding box. More...
 
void updateVolume () const override
 Updates volume. More...
 

Private Attributes

Eigen::Vector3d mNormal
 Plane normal. More...
 
double mOffset
 Plane offset. More...
 

Detailed Description

PlaneShape represents infinite plane has normal and offset as properties.

Member Enumeration Documentation

◆ DataVariance

DataVariance can be used by renderers to determine whether it should expect data for this shape to change during each update.

Enumerator
STATIC 
DYNAMIC_TRANSFORM 

No data will ever change.

DYNAMIC_PRIMITIVE 

The relative transform of the Shape might change.

DYNAMIC_COLOR 

The primitive properties (such as x/y/z scaling) of the shape might change.

DYNAMIC_VERTICES 

The coloring or textures of the shape might change.

DYNAMIC_ELEMENTS 

Vertex positions of a mesh might change (this does not include adding or removing vertices) (this enum is not relevant for primitive shapes)

DYNAMIC 

The number of elements and/or arrangement of elements might change (this includes adding and removing vertices) (this enum is not relevant for primitive shapes)

◆ ShapeType

Deprecated:
Deprecated in 6.1. Please use getType() instead.
Enumerator
SPHERE 
BOX 
ELLIPSOID 
CYLINDER 
CAPSULE 
CONE 
PLANE 
MULTISPHERE 
MESH 
SOFT_MESH 
LINE_SEGMENT 
HEIGHTMAP 
UNSUPPORTED 

Constructor & Destructor Documentation

◆ PlaneShape() [1/2]

dart::dynamics::PlaneShape::PlaneShape ( const Eigen::Vector3d &  _normal,
double  _offset 
)

Constructor.

◆ PlaneShape() [2/2]

dart::dynamics::PlaneShape::PlaneShape ( const Eigen::Vector3d &  _normal,
const Eigen::Vector3d &  _point 
)

Constructor.

Member Function Documentation

◆ addDataVariance()

void dart::dynamics::Shape::addDataVariance ( unsigned int  _variance)
inherited

Add a type of variance to this shape.

All other variance types will remain the same.

◆ addObserver()

void dart::common::Subject::addObserver ( Observer _observer) const
protectedinherited

Add an Observer to the list of Observers.

◆ checkDataVariance()

bool dart::dynamics::Shape::checkDataVariance ( DataVariance  type) const
inherited

True iff this Shape has the specified type of DataVariance.

◆ computeDistance()

double dart::dynamics::PlaneShape::computeDistance ( const Eigen::Vector3d &  _point) const

Compute distance between the plane and the given point.

◆ computeInertia()

Eigen::Matrix3d dart::dynamics::PlaneShape::computeInertia ( double  mass) const
overridevirtual

Computes the inertia.

Implements dart::dynamics::Shape.

◆ computeInertiaFromDensity()

Eigen::Matrix3d dart::dynamics::Shape::computeInertiaFromDensity ( double  density) const
inherited

◆ computeInertiaFromMass()

Eigen::Matrix3d dart::dynamics::Shape::computeInertiaFromMass ( double  mass) const
inherited

◆ computeSignedDistance()

double dart::dynamics::PlaneShape::computeSignedDistance ( const Eigen::Vector3d &  _point) const

Compute signed distance between the plane and the given point.

◆ getBoundingBox()

const math::BoundingBox & dart::dynamics::Shape::getBoundingBox ( ) const
inherited

Get the bounding box of the shape in its local coordinate frame.

The dimension will be automatically determined by the sub-classes such as BoxShape, EllipsoidShape, CylinderShape, and MeshShape.

◆ getDataVariance()

unsigned int dart::dynamics::Shape::getDataVariance ( ) const
inherited

Get the data variance of this shape.

◆ getID()

int dart::dynamics::Shape::getID ( ) const
inherited

◆ getNormal()

const Eigen::Vector3d & dart::dynamics::PlaneShape::getNormal ( ) const

Get plane normal.

◆ getOffset()

double dart::dynamics::PlaneShape::getOffset ( ) const

Get plane offset.

◆ getShapeType()

Shape::ShapeType dart::dynamics::Shape::getShapeType ( ) const
inherited
Deprecated:
Deprecated in 6.1. Please use getType() instead.

◆ getStaticType()

const std::string & dart::dynamics::PlaneShape::getStaticType ( )
static

Returns shape type for this class.

◆ getType()

const std::string & dart::dynamics::PlaneShape::getType ( ) const
overridevirtual

Returns a string representing the shape type.

See also
is()

Implements dart::dynamics::Shape.

◆ getVolume()

double dart::dynamics::Shape::getVolume ( ) const
inherited

Returns volume of this shape.

The volume will be automatically calculated by the sub-classes such as BoxShape, EllipsoidShape, CylinderShape, and MeshShape.

◆ is()

template<typename ShapeT >
bool dart::dynamics::Shape::is
inherited

Get true if the types of this Shape and the template parameter (a shape class) are identical.

This function is a syntactic sugar, which is identical to: (getType() == ShapeType::getStaticType()).

Example code:

auto shape = bodyNode->getShapeNode(0)->getShape();
if (shape->is<BoxShape>())
std::cout << "The shape type is box!\n";
See also
getType()

◆ notifyAlphaUpdate()

void dart::dynamics::Shape::notifyAlphaUpdate ( double  alpha)
virtualinherited

Notify that the alpha of this shape has updated.

◆ notifyAlphaUpdated()

void dart::dynamics::Shape::notifyAlphaUpdated ( double  alpha)
virtualinherited

Notify that the alpha of this shape has updated.

Reimplemented in dart::dynamics::MeshShape.

◆ notifyColorUpdate()

void dart::dynamics::Shape::notifyColorUpdate ( const Eigen::Vector4d &  color)
virtualinherited

Notify that the color (rgba) of this shape has updated.

◆ notifyColorUpdated()

void dart::dynamics::Shape::notifyColorUpdated ( const Eigen::Vector4d &  color)
virtualinherited

Notify that the color (rgba) of this shape has updated.

Reimplemented in dart::dynamics::ArrowShape.

◆ refreshData()

void dart::dynamics::Shape::refreshData ( )
virtualinherited

Instruct this shape to update its data.

◆ removeDataVariance()

void dart::dynamics::Shape::removeDataVariance ( unsigned int  _variance)
inherited

Remove a type of variance from this shape.

All other variance types will remain the same.

◆ removeObserver()

void dart::common::Subject::removeObserver ( Observer _observer) const
protectedinherited

Remove an Observer from the list of Observers.

◆ sendDestructionNotification()

void dart::common::Subject::sendDestructionNotification ( ) const
protectedinherited

Send a destruction notification to all Observers.

This will cause all Observers to behave as if this Subject has been permanently deleted, so it should only be called when that behavior is desired.

◆ setDataVariance()

void dart::dynamics::Shape::setDataVariance ( unsigned int  _variance)
inherited

Set the data variance of this shape.

Use the DataVariance to indicate what kind of shape information might change during run time so that renderers can optimize reliably.

◆ setNormal()

void dart::dynamics::PlaneShape::setNormal ( const Eigen::Vector3d &  _normal)

Set plane normal.

◆ setNormalAndOffset()

void dart::dynamics::PlaneShape::setNormalAndOffset ( const Eigen::Vector3d &  _normal,
double  _offset 
)

Set plane normal and offset.

◆ setNormalAndPoint()

void dart::dynamics::PlaneShape::setNormalAndPoint ( const Eigen::Vector3d &  _normal,
const Eigen::Vector3d &  _point 
)

Set plane normal and point.

◆ setOffset()

void dart::dynamics::PlaneShape::setOffset ( double  _offset)

Set plane offset.

◆ updateBoundingBox()

void dart::dynamics::PlaneShape::updateBoundingBox ( ) const
overrideprivatevirtual

Updates bounding box.

Implements dart::dynamics::Shape.

◆ updateVolume()

void dart::dynamics::PlaneShape::updateVolume ( ) const
overrideprivatevirtual

Updates volume.

Implements dart::dynamics::Shape.

Member Data Documentation

◆ mBoundingBox

math::BoundingBox dart::dynamics::Shape::mBoundingBox
mutableprotectedinherited

The bounding box (in the local coordinate frame) of the shape.

◆ mCounter

int dart::dynamics::Shape::mCounter = 1000
staticprotectedinherited

◆ mID

int dart::dynamics::Shape::mID
protectedinherited

Unique id.

◆ mIsBoundingBoxDirty

bool dart::dynamics::Shape::mIsBoundingBoxDirty
mutableprotectedinherited

Whether bounding box needs update.

◆ mIsVolumeDirty

bool dart::dynamics::Shape::mIsVolumeDirty
mutableprotectedinherited

Whether volume needs update.

◆ mNormal

Eigen::Vector3d dart::dynamics::PlaneShape::mNormal
private

Plane normal.

◆ mObservers

std::set<Observer*> dart::common::Subject::mObservers
mutableprotectedinherited

List of current Observers.

◆ mOffset

double dart::dynamics::PlaneShape::mOffset
private

Plane offset.

◆ mType

ShapeType dart::dynamics::Shape::mType
protectedinherited
Deprecated:
Deprecated in 6.1.

Please use getType() instead. Type of primitive shpae.

◆ mVariance

unsigned int dart::dynamics::Shape::mVariance
protectedinherited

The DataVariance of this Shape.

◆ mVolume

double dart::dynamics::Shape::mVolume
mutableprotectedinherited

Volume enclosed by the geometry.