Class CollisionGeometry

Inheritance Relationships

Derived Types

Class Documentation

class CollisionGeometry

The geometry for the object for collision or distance computation.

Subclassed by coal::BVHModelBase, coal::HeightField< BV >, coal::OcTree, coal::ShapeBase

Public Functions

inline CollisionGeometry()
CollisionGeometry(const CollisionGeometry &other) = default

Copy constructor.

inline virtual ~CollisionGeometry()
virtual CollisionGeometry *clone() const = 0

Clone *this into a new CollisionGeometry.

inline bool operator==(const CollisionGeometry &other) const

Equality operator.

inline bool operator!=(const CollisionGeometry &other) const

Difference operator.

inline virtual OBJECT_TYPE getObjectType() const

get the type of the object

inline virtual NODE_TYPE getNodeType() const

get the node type

virtual void computeLocalAABB() = 0

compute the AABB for object in local coordinate

inline void *getUserData() const

get user data in geometry

inline void setUserData(void *data)

set user data in geometry

inline bool isOccupied() const

whether the object is completely occupied

inline bool isFree() const

whether the object is completely free

bool isUncertain() const

whether the object has some uncertainty

inline virtual Vec3s computeCOM() const

compute center of mass

inline virtual Matrix3s computeMomentofInertia() const

compute the inertia matrix, related to the origin

inline virtual CoalScalar computeVolume() const

compute the volume

inline virtual Matrix3s computeMomentofInertiaRelatedToCOM() const

compute the inertia matrix, related to the com

Public Members

Vec3s aabb_center

AABB center in local coordinate.

CoalScalar aabb_radius

AABB radius.

AABB aabb_local

AABB in local coordinate, used for tight AABB when only translation transform.

void *user_data

pointer to user defined data specific to this object

CoalScalar cost_density

collision cost for unit volume

CoalScalar threshold_occupied

threshold for occupied ( >= is occupied)

CoalScalar threshold_free

threshold for free (<= is free)