Bullet Collision Detection & Physics Library: btGImpactMeshShape Class Reference

Bullet Collision Detection & Physics Library

Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
btGImpactMeshShape Class Reference

This class manages a mesh supplied by the btStridingMeshInterface interface. More...

`#include <btGImpactShape.h>`

Inheritance diagram for btGImpactMeshShape:
[legend]
Collaboration diagram for btGImpactMeshShape:
[legend]

## Public Member Functions
| btGImpactMeshShape (btStridingMeshInterface *meshInterface)
virtual | ~btGImpactMeshShape ()
btStridingMeshInterface * | getMeshInterface ()
const btStridingMeshInterface * | getMeshInterface () const
int | getMeshPartCount () const
btGImpactMeshShapePart * | getMeshPart (int index)
const btGImpactMeshShapePart * | getMeshPart (int index) const
virtual void | setLocalScaling (const btVector3 &scaling)
virtual void | setMargin (btScalar margin)
virtual void | postUpdate ()
| Tells to this object that is needed to refit all the meshes. More...
virtual void | calculateLocalInertia (btScalar mass, btVector3 &inertia) const
virtual const btPrimitiveManagerBase * | getPrimitiveManager () const
| Obtains the primitive manager. More...
virtual int | getNumChildShapes () const
| Gets the number of children. More...
virtual bool | childrenHasTransform () const
| if true, then its children must get transforms. More...
virtual bool | needsRetrieveTriangles () const
| Determines if this shape has triangles. More...
virtual bool | needsRetrieveTetrahedrons () const
| Determines if this shape has tetrahedrons. More...
virtual void | getBulletTriangle (int prim_index, btTriangleShapeEx &triangle) const
virtual void | getBulletTetrahedron (int prim_index, btTetrahedronShapeEx &tetrahedron) const
virtual void | lockChildShapes () const
| call when reading child shapes More...
virtual void | unlockChildShapes () const
virtual void | getChildAabb (int child_index, const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
| Retrieves the bound from a child. More...
virtual btCollisionShape * | getChildShape (int index)
| Gets the children. More...
virtual const btCollisionShape * | getChildShape (int index) const
| Gets the child. More...
virtual btTransform | getChildTransform (int index) const
| Gets the children transform. More...
virtual void | setChildTransform (int index, const btTransform &transform)
| Sets the children transform. More...
virtual eGIMPACT_SHAPE_TYPE | getGImpactShapeType () const
| Subshape member functions. More...
virtual const char * | getName () const
virtual void | rayTest (const btVector3 &rayFrom, const btVector3 &rayTo, btCollisionWorld::RayResultCallback &resultCallback) const
| virtual method for ray collision More...
virtual void | processAllTriangles (btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const
| Function for retrieve triangles. More...
virtual void | processAllTrianglesRay (btTriangleCallback *callback, const btVector3 &rayFrom, const btVector3 &rayTo) const
| Function for retrieve triangles. More...
virtual int | calculateSerializeBufferSize () const
virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const
| fills the dataBuffer and returns the struct name (and 0 on failure) More...
Public Member Functions inherited from btGImpactShapeInterface
| btGImpactShapeInterface ()
void | updateBound ()
| performs refit operation More...
void | getAabb (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
| If the Bounding box is not updated, then this class attemps to calculate it. More...
const btAABB & | getLocalBox ()
| Obtains the local box, which is the global calculated box of the total of subshapes. More...
virtual int | getShapeType () const
virtual const btVector3 & | getLocalScaling () const
const btGImpactBoxSet * | getBoxSet () const
| gets boxset More...
bool | hasBoxSet () const
| Determines if this class has a hierarchy structure for sorting its primitives. More...
void | getPrimitiveTriangle (int index, btPrimitiveTriangle &triangle) const
| if this trimesh More...
Public Member Functions inherited from btConcaveShape
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btConcaveShape ()
virtual | ~btConcaveShape ()
virtual btScalar | getMargin () const
Public Member Functions inherited from btCollisionShape
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btCollisionShape ()
virtual | ~btCollisionShape ()
virtual void | getBoundingSphere (btVector3 &center, btScalar &radius) const
virtual btScalar | getAngularMotionDisc () const
| getAngularMotionDisc returns the maximum radius needed for Conservative Advancement to handle time-of-impact with rotations. More...
virtual btScalar | getContactBreakingThreshold (btScalar defaultContactThresholdFactor) const
void | calculateTemporalAabb (const btTransform &curTrans, const btVector3 &linvel, const btVector3 &angvel, btScalar timeStep, btVector3 &temporalAabbMin, btVector3 &temporalAabbMax) const
| calculateTemporalAabb calculates the enclosing aabb for the moving object over interval [0..timeStep) result is conservative More...
bool | isPolyhedral () const
bool | isConvex2d () const
bool | isConvex () const
bool | isNonMoving () const
bool | isConcave () const
bool | isCompound () const
bool | isSoftBody () const
bool | isInfinite () const
| isInfinite is used to catch simulation error (aabb check) More...
int | getShapeType () const
virtual btVector3 | getAnisotropicRollingFrictionDirection () const
| the getAnisotropicRollingFrictionDirection can be used in combination with setAnisotropicFriction See Bullet/Demos/RollingFrictionDemo for an example More...
void | setUserPointer (void *userPtr)
| optional user data pointer More...
void * | getUserPointer () const
void | setUserIndex (int index)
int | getUserIndex () const
virtual void | serializeSingleShape (btSerializer *serializer) const

## Protected Member Functions
void | buildMeshParts (btStridingMeshInterface *meshInterface)
virtual void | calcLocalAABB ()
| use this function for perfofm refit in bounding boxes More...

## Protected Attributes
btAlignedObjectArray< btGImpactMeshShapePart * > | m_mesh_parts
Protected Attributes inherited from btGImpactShapeInterface
btAABB | m_localAABB
bool | m_needs_update
btVector3 | localScaling
btGImpactBoxSet | m_box_set
Protected Attributes inherited from btConcaveShape
btScalar | m_collisionMargin
Protected Attributes inherited from btCollisionShape
int | m_shapeType
void * | m_userPointer
int | m_userIndex

## Private Attributes
btStridingMeshInterface * | m_meshInterface

## Detailed Description

This class manages a mesh supplied by the btStridingMeshInterface interface.

Set of btGImpactMeshShapePart parts

- Simply create this shape by passing the btStridingMeshInterface to the constructor btGImpactMeshShape, then you must call updateBound() after creating the mesh
- You can handle deformable meshes with this shape, by calling postUpdate() every time when changing the mesh vertices.

Definition at line 842 of file btGImpactShape.h.

## Constructor & Destructor Documentation

## ◆ btGImpactMeshShape()

btGImpactMeshShape::btGImpactMeshShape | ( | btStridingMeshInterface * | meshInterface | ) |
| inline

Definition at line 870 of file btGImpactShape.h.

## ◆ ~btGImpactMeshShape()

virtual btGImpactMeshShape::~btGImpactMeshShape | ( |  | ) |
| inlinevirtual

Definition at line 876 of file btGImpactShape.h.

## Member Function Documentation

## ◆ buildMeshParts()

void btGImpactMeshShape::buildMeshParts | ( | btStridingMeshInterface * | meshInterface | ) |
| inlineprotected

Definition at line 848 of file btGImpactShape.h.

## ◆ calcLocalAABB()

virtual void btGImpactMeshShape::calcLocalAABB | ( |  | ) |
| inlineprotectedvirtual

use this function for perfofm refit in bounding boxes

Reimplemented from btGImpactShapeInterface.

Definition at line 858 of file btGImpactShape.h.

## ◆ calculateLocalInertia()

void btGImpactMeshShape::calculateLocalInertia | ( | btScalar | mass,
|  | btVector3 & | inertia
| ) |  | const
| virtual

Implements btCollisionShape.

Definition at line 156 of file btGImpactShape.cpp.

## ◆ calculateSerializeBufferSize()

int btGImpactMeshShape::calculateSerializeBufferSize | ( |  | ) | const
| inlinevirtual

Reimplemented from btCollisionShape.

Definition at line 1102 of file btGImpactShape.h.

## ◆ childrenHasTransform()

virtual bool btGImpactMeshShape::childrenHasTransform | ( |  | ) | const
| inlinevirtual

if true, then its children must get transforms.

Implements btGImpactShapeInterface.

Definition at line 970 of file btGImpactShape.h.

## ◆ getBulletTetrahedron()

virtual void btGImpactMeshShape::getBulletTetrahedron | ( | int | prim_index,
|  | btTetrahedronShapeEx & | tetrahedron
| ) |  | const
| inlinevirtual

Implements btGImpactShapeInterface.

Definition at line 997 of file btGImpactShape.h.

## ◆ getBulletTriangle()

virtual void btGImpactMeshShape::getBulletTriangle | ( | int | prim_index,
|  | btTriangleShapeEx & | triangle
| ) |  | const
| inlinevirtual

Implements btGImpactShapeInterface.

Definition at line 990 of file btGImpactShape.h.

## ◆ getChildAabb()

virtual void btGImpactMeshShape::getChildAabb | ( | int | child_index,
|  | const btTransform & | t,
|  | btVector3 & | aabbMin,
|  | btVector3 & | aabbMax
| ) |  | const
| inlinevirtual

Retrieves the bound from a child.

Reimplemented from btGImpactShapeInterface.

Definition at line 1018 of file btGImpactShape.h.

## ◆ getChildShape() [1/2]

virtual btCollisionShape* btGImpactMeshShape::getChildShape | ( | int | index | ) |
| inlinevirtual

Gets the children.

Implements btGImpactShapeInterface.

Definition at line 1028 of file btGImpactShape.h.

## ◆ getChildShape() [2/2]

virtual const btCollisionShape* btGImpactMeshShape::getChildShape | ( | int | index | ) | const
| inlinevirtual

Gets the child.

Implements btGImpactShapeInterface.

Definition at line 1036 of file btGImpactShape.h.

## ◆ getChildTransform()

virtual btTransform btGImpactMeshShape::getChildTransform | ( | int | index | ) | const
| inlinevirtual

Gets the children transform.

Implements btGImpactShapeInterface.

Definition at line 1044 of file btGImpactShape.h.

## ◆ getGImpactShapeType()

virtual eGIMPACT_SHAPE_TYPE btGImpactMeshShape::getGImpactShapeType | ( |  | ) | const
| inlinevirtual

Subshape member functions.

Base method for determinig which kind of GIMPACT shape we get

Implements btGImpactShapeInterface.

Definition at line 1062 of file btGImpactShape.h.

## ◆ getMeshInterface() [1/2]

btStridingMeshInterface* btGImpactMeshShape::getMeshInterface | ( |  | ) |
| inline

Definition at line 887 of file btGImpactShape.h.

## ◆ getMeshInterface() [2/2]

const btStridingMeshInterface* btGImpactMeshShape::getMeshInterface | ( |  | ) | const
| inline

Definition at line 892 of file btGImpactShape.h.

## ◆ getMeshPart() [1/2]

btGImpactMeshShapePart* btGImpactMeshShape::getMeshPart | ( | int | index | ) |
| inline

Definition at line 902 of file btGImpactShape.h.

## ◆ getMeshPart() [2/2]

const btGImpactMeshShapePart* btGImpactMeshShape::getMeshPart | ( | int | index | ) | const
| inline

Definition at line 907 of file btGImpactShape.h.

## ◆ getMeshPartCount()

int btGImpactMeshShape::getMeshPartCount | ( |  | ) | const
| inline

Definition at line 897 of file btGImpactShape.h.

## ◆ getName()

virtual const char* btGImpactMeshShape::getName | ( |  | ) | const
| inlinevirtual

Implements btCollisionShape.

Definition at line 1067 of file btGImpactShape.h.

## ◆ getNumChildShapes()

virtual int btGImpactMeshShape::getNumChildShapes | ( |  | ) | const
| inlinevirtual

Gets the number of children.

Implements btGImpactShapeInterface.

Definition at line 963 of file btGImpactShape.h.

## ◆ getPrimitiveManager()

virtual const btPrimitiveManagerBase* btGImpactMeshShape::getPrimitiveManager | ( |  | ) | const
| inlinevirtual

Obtains the primitive manager.

Implements btGImpactShapeInterface.

Definition at line 956 of file btGImpactShape.h.

## ◆ lockChildShapes()

virtual void btGImpactMeshShape::lockChildShapes | ( |  | ) | const
| inlinevirtual

call when reading child shapes

Reimplemented from btGImpactShapeInterface.

Definition at line 1005 of file btGImpactShape.h.

## ◆ needsRetrieveTetrahedrons()

virtual bool btGImpactMeshShape::needsRetrieveTetrahedrons | ( |  | ) | const
| inlinevirtual

Determines if this shape has tetrahedrons.

Implements btGImpactShapeInterface.

Definition at line 984 of file btGImpactShape.h.

## ◆ needsRetrieveTriangles()

virtual bool btGImpactMeshShape::needsRetrieveTriangles | ( |  | ) | const
| inlinevirtual

Determines if this shape has triangles.

Implements btGImpactShapeInterface.

Definition at line 977 of file btGImpactShape.h.

## ◆ postUpdate()

virtual void btGImpactMeshShape::postUpdate | ( |  | ) |
| inlinevirtual

Tells to this object that is needed to refit all the meshes.

Reimplemented from btGImpactShapeInterface.

Definition at line 941 of file btGImpactShape.h.

## ◆ processAllTriangles()

void btGImpactMeshShape::processAllTriangles | ( | btTriangleCallback * | callback,
|  | const btVector3 & | aabbMin,
|  | const btVector3 & | aabbMax
| ) |  | const
| virtual

Function for retrieve triangles.

It gives the triangles in local space

Reimplemented from btGImpactShapeInterface.

Definition at line 245 of file btGImpactShape.cpp.

## ◆ processAllTrianglesRay()

void btGImpactMeshShape::processAllTrianglesRay | ( | btTriangleCallback * | ,
|  | const btVector3 & | ,
|  | const btVector3 & |
| ) |  | const
| virtual

Function for retrieve triangles.

It gives the triangles in local space

Reimplemented from btGImpactShapeInterface.

Definition at line 254 of file btGImpactShape.cpp.

## ◆ rayTest()

void btGImpactMeshShape::rayTest | ( | const btVector3 & | rayFrom,
|  | const btVector3 & | rayTo,
|  | btCollisionWorld::RayResultCallback & | resultCallback
| ) |  | const
| virtual

virtual method for ray collision

Reimplemented from btGImpactShapeInterface.

Definition at line 188 of file btGImpactShape.cpp.

## ◆ serialize()

const char * btGImpactMeshShape::serialize | ( | void * | dataBuffer,
|  | btSerializer * | serializer
| ) |  | const
| virtual

fills the dataBuffer and returns the struct name (and 0 on failure)

Reimplemented from btCollisionShape.

Definition at line 264 of file btGImpactShape.cpp.

## ◆ setChildTransform()

virtual void btGImpactMeshShape::setChildTransform | ( | int | index,
|  | const btTransform & | transform
| ) |  |
| inlinevirtual

Sets the children transform.

Postcondition
  You must call updateBound() for update the box set.

Implements btGImpactShapeInterface.

Definition at line 1055 of file btGImpactShape.h.

## ◆ setLocalScaling()

virtual void btGImpactMeshShape::setLocalScaling | ( | const btVector3 & | scaling | ) |
| inlinevirtual

Postcondition
  You must call updateBound() for update the box set.

Reimplemented from btGImpactShapeInterface.

Definition at line 912 of file btGImpactShape.h.

## ◆ setMargin()

virtual void btGImpactMeshShape::setMargin | ( | btScalar | margin | ) |
| inlinevirtual

Reimplemented from btGImpactShapeInterface.

Definition at line 926 of file btGImpactShape.h.

## ◆ unlockChildShapes()

virtual void btGImpactMeshShape::unlockChildShapes | ( |  | ) | const
| inlinevirtual

Reimplemented from btGImpactShapeInterface.

Definition at line 1010 of file btGImpactShape.h.

## Member Data Documentation

## ◆ m_mesh_parts

btAlignedObjectArray<btGImpactMeshShapePart*> btGImpactMeshShape::m_mesh_parts
| protected

Definition at line 847 of file btGImpactShape.h.

## ◆ m_meshInterface

btStridingMeshInterface* btGImpactMeshShape::m_meshInterface
| private

Definition at line 844 of file btGImpactShape.h.

The documentation for this class was generated from the following files:

- btGImpactShape.h
- btGImpactShape.cpp