Blender V2.61 - r43446
Public Member Functions | Protected Member Functions | Protected Attributes

btGImpactShapeInterface Class Reference

Base class for gimpact shapes. More...

#include <btGImpactShape.h>

Inheritance diagram for btGImpactShapeInterface:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 btGImpactShapeInterface ()
SIMD_FORCE_INLINE void updateBound ()
 performs refit operation
void getAabb (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
 If the Bounding box is not updated, then this class attemps to calculate it.
virtual void postUpdate ()
 Tells to this object that is needed to refit the box set.
SIMD_FORCE_INLINE const btAABB & getLocalBox ()
 Obtains the local box, which is the global calculated box of the total of subshapes.
virtual int getShapeType () const
virtual void setLocalScaling (const btVector3 &scaling)
virtual const btVector3 & getLocalScaling () const
virtual void setMargin (btScalar margin)
virtual void rayTest (const btVector3 &rayFrom, const btVector3 &rayTo, btCollisionWorld::RayResultCallback &resultCallback) const
 virtual method for ray collision
virtual void processAllTriangles (btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const
 Function for retrieve triangles.
virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType () const =0
 Base method for determinig which kind of GIMPACT shape we get.
SIMD_FORCE_INLINE btGImpactBoxSetgetBoxSet ()
 gets boxset
SIMD_FORCE_INLINE bool hasBoxSet () const
 Determines if this class has a hierarchy structure for sorting its primitives.
virtual const
btPrimitiveManagerBase
getPrimitiveManager () const =0
 Obtains the primitive manager.
virtual int getNumChildShapes () const =0
 Gets the number of children.
virtual bool childrenHasTransform () const =0
 if true, then its children must get transforms.
virtual bool needsRetrieveTriangles () const =0
 Determines if this shape has triangles.
virtual bool needsRetrieveTetrahedrons () const =0
 Determines if this shape has tetrahedrons.
virtual void getBulletTriangle (int prim_index, btTriangleShapeEx &triangle) const =0
 Base method for determinig which kind of GIMPACT shape we get.
virtual void getBulletTetrahedron (int prim_index, btTetrahedronShapeEx &tetrahedron) const =0
 Base method for determinig which kind of GIMPACT shape we get.
virtual void lockChildShapes () const
 call when reading child shapes
virtual void unlockChildShapes () const
 Base method for determinig which kind of GIMPACT shape we get.
SIMD_FORCE_INLINE void getPrimitiveTriangle (int index, btPrimitiveTriangle &triangle) const
 if this trimesh
virtual void getChildAabb (int child_index, const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
 Retrieves the bound from a child.
virtual btCollisionShapegetChildShape (int index)=0
 Gets the children.
virtual const btCollisionShapegetChildShape (int index) const =0
 Gets the child.
virtual btTransform getChildTransform (int index) const =0
 Gets the children transform.
virtual void setChildTransform (int index, const btTransform &transform)=0
 Sets the children transform.

Protected Member Functions

virtual void calcLocalAABB ()

Protected Attributes

btAABB m_localAABB
bool m_needs_update
btVector3 localScaling
btGImpactBoxSet m_box_set

Detailed Description

Base class for gimpact shapes.

Definition at line 78 of file btGImpactShape.h.


Constructor & Destructor Documentation

btGImpactShapeInterface::btGImpactShapeInterface ( ) [inline]

Member Function Documentation

virtual void btGImpactShapeInterface::calcLocalAABB ( ) [inline, protected, virtual]

use this function for perfofm refit in bounding boxes use this function for perfofm refit in bounding boxes

Reimplemented in btGImpactMeshShape.

Definition at line 88 of file btGImpactShape.h.

References btGImpactQuantizedBvh::buildSet(), btGImpactQuantizedBvh::getGlobalBox(), btGImpactQuantizedBvh::getNodeCount(), lockChildShapes(), m_box_set, m_localAABB, unlockChildShapes(), and btGImpactQuantizedBvh::update().

Referenced by updateBound().

virtual bool btGImpactShapeInterface::childrenHasTransform ( ) const [pure virtual]
void btGImpactShapeInterface::getAabb ( const btTransform t,
btVector3 &  aabbMin,
btVector3 &  aabbMax 
) const [inline, virtual]

If the Bounding box is not updated, then this class attemps to calculate it.

Postcondition:
Calls updateBound() for update the box set.

Implements btCollisionShape.

Definition at line 133 of file btGImpactShape.h.

References m_localAABB.

Referenced by btGImpactCollisionAlgorithm::gimpact_vs_concave(), and btGImpactCollisionAlgorithm::gimpacttrimeshpart_vs_plane_collision().

SIMD_FORCE_INLINE btGImpactBoxSet* btGImpactShapeInterface::getBoxSet ( ) [inline]
virtual void btGImpactShapeInterface::getBulletTetrahedron ( int  prim_index,
btTetrahedronShapeEx tetrahedron 
) const [pure virtual]

Base method for determinig which kind of GIMPACT shape we get.

Subshape member functions

Implemented in btGImpactCompoundShape, btGImpactMeshShapePart, and btGImpactMeshShape.

Referenced by GIM_ShapeRetriever::TetraShapeRetriever::getChildShape().

virtual void btGImpactShapeInterface::getBulletTriangle ( int  prim_index,
btTriangleShapeEx triangle 
) const [pure virtual]

Base method for determinig which kind of GIMPACT shape we get.

Subshape member functions

Implemented in btGImpactCompoundShape, btGImpactMeshShapePart, and btGImpactMeshShape.

Referenced by GIM_ShapeRetriever::TriangleShapeRetriever::getChildShape().

virtual void btGImpactShapeInterface::getChildAabb ( int  child_index,
const btTransform t,
btVector3 &  aabbMin,
btVector3 &  aabbMax 
) const [inline, virtual]
virtual btCollisionShape* btGImpactShapeInterface::getChildShape ( int  index) [pure virtual]
virtual const btCollisionShape* btGImpactShapeInterface::getChildShape ( int  index) const [pure virtual]

Gets the child.

Implemented in btGImpactCompoundShape, btGImpactMeshShapePart, and btGImpactMeshShape.

virtual btTransform btGImpactShapeInterface::getChildTransform ( int  index) const [pure virtual]
virtual eGIMPACT_SHAPE_TYPE btGImpactShapeInterface::getGImpactShapeType ( ) const [pure virtual]

Base method for determinig which kind of GIMPACT shape we get.

Subshape member functions

Implemented in btGImpactCompoundShape, btGImpactMeshShapePart, and btGImpactMeshShape.

Referenced by btGImpactCollisionAlgorithm::gimpact_vs_gimpact(), and btGImpactCollisionAlgorithm::gimpact_vs_shape().

SIMD_FORCE_INLINE const btAABB& btGImpactShapeInterface::getLocalBox ( ) [inline]

Obtains the local box, which is the global calculated box of the total of subshapes.

Definition at line 148 of file btGImpactShape.h.

References m_localAABB.

Referenced by btGImpactMeshShape::calcLocalAABB().

virtual const btVector3& btGImpactShapeInterface::getLocalScaling ( ) const [inline, virtual]

Implements btCollisionShape.

Reimplemented in btGImpactMeshShapePart.

Definition at line 168 of file btGImpactShape.h.

References localScaling.

virtual int btGImpactShapeInterface::getNumChildShapes ( ) const [pure virtual]
virtual const btPrimitiveManagerBase* btGImpactShapeInterface::getPrimitiveManager ( ) const [pure virtual]

Obtains the primitive manager.

Implemented in btGImpactCompoundShape, btGImpactMeshShapePart, and btGImpactMeshShape.

Referenced by getChildAabb(), and getPrimitiveTriangle().

SIMD_FORCE_INLINE void btGImpactShapeInterface::getPrimitiveTriangle ( int  index,
btPrimitiveTriangle triangle 
) const [inline]
virtual int btGImpactShapeInterface::getShapeType ( ) const [inline, virtual]

Reimplemented from btCollisionShape.

Definition at line 154 of file btGImpactShape.h.

References GIMPACT_SHAPE_PROXYTYPE.

SIMD_FORCE_INLINE bool btGImpactShapeInterface::hasBoxSet ( ) const [inline]

Determines if this class has a hierarchy structure for sorting its primitives.

Definition at line 201 of file btGImpactShape.h.

References btGImpactQuantizedBvh::getNodeCount(), and m_box_set.

Referenced by btGImpactCollisionAlgorithm::gimpact_vs_gimpact_find_pairs(), and btGImpactCollisionAlgorithm::gimpact_vs_shape_find_pairs().

virtual void btGImpactShapeInterface::lockChildShapes ( ) const [inline, virtual]
virtual bool btGImpactShapeInterface::needsRetrieveTetrahedrons ( ) const [pure virtual]

Determines if this shape has tetrahedrons.

Implemented in btGImpactCompoundShape, btGImpactMeshShapePart, and btGImpactMeshShape.

Referenced by GIM_ShapeRetriever::GIM_ShapeRetriever().

virtual bool btGImpactShapeInterface::needsRetrieveTriangles ( ) const [pure virtual]

Determines if this shape has triangles.

Implemented in btGImpactCompoundShape, btGImpactMeshShapePart, and btGImpactMeshShape.

Referenced by GIM_ShapeRetriever::GIM_ShapeRetriever().

virtual void btGImpactShapeInterface::postUpdate ( ) [inline, virtual]

Tells to this object that is needed to refit the box set.

Reimplemented in btGImpactMeshShape.

Definition at line 142 of file btGImpactShape.h.

References m_needs_update.

Referenced by btGImpactMeshShape::postUpdate(), btGImpactCompoundShape::setChildTransform(), setLocalScaling(), btGImpactMeshShapePart::setLocalScaling(), and btGImpactMeshShapePart::setMargin().

virtual void btGImpactShapeInterface::processAllTriangles ( btTriangleCallback callback,
const btVector3 &  aabbMin,
const btVector3 &  aabbMax 
) const [inline, virtual]

Function for retrieve triangles.

It gives the triangles in local space

Implements btConcaveShape.

Reimplemented in btGImpactMeshShapePart, and btGImpactMeshShape.

Definition at line 286 of file btGImpactShape.h.

virtual void btGImpactShapeInterface::rayTest ( const btVector3 &  rayFrom,
const btVector3 &  rayTo,
btCollisionWorld::RayResultCallback resultCallback 
) const [inline, virtual]

virtual method for ray collision

Reimplemented in btGImpactMeshShape.

Definition at line 277 of file btGImpactShape.h.

virtual void btGImpactShapeInterface::setChildTransform ( int  index,
const btTransform transform 
) [pure virtual]

Sets the children transform.

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

Implemented in btGImpactCompoundShape, btGImpactMeshShapePart, and btGImpactMeshShape.

virtual void btGImpactShapeInterface::setLocalScaling ( const btVector3 &  scaling) [inline, virtual]
Postcondition:
You must call updateBound() for update the box set.

Implements btCollisionShape.

Reimplemented in btGImpactMeshShapePart, and btGImpactMeshShape.

Definition at line 162 of file btGImpactShape.h.

References localScaling, and postUpdate().

virtual void btGImpactShapeInterface::setMargin ( btScalar  margin) [inline, virtual]
virtual void btGImpactShapeInterface::unlockChildShapes ( ) const [inline, virtual]

Base method for determinig which kind of GIMPACT shape we get.

Subshape member functions

Reimplemented in btGImpactMeshShapePart, and btGImpactMeshShape.

Definition at line 234 of file btGImpactShape.h.

Referenced by calcLocalAABB(), btGImpactCompoundShape::calculateLocalInertia(), btGImpactCollisionAlgorithm::gimpact_vs_gimpact(), and btGImpactCollisionAlgorithm::gimpact_vs_shape().

SIMD_FORCE_INLINE void btGImpactShapeInterface::updateBound ( ) [inline]

performs refit operation

Updates the entire Box set of this shape.

Precondition:
postUpdate() must be called for attemps to calculating the box set, else this function will does nothing.
Postcondition:
if m_needs_update == true, then it calls calcLocalAABB();

Definition at line 122 of file btGImpactShape.h.

References calcLocalAABB(), and m_needs_update.

Referenced by CcdShapeConstructionInfo::CreateBulletShape().


Member Data Documentation


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