Blender
V3.3
|
Base class for gimpact shapes. More...
#include <btGImpactShape.h>
Public Member Functions | |
btGImpactShapeInterface () | |
SIMD_FORCE_INLINE 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... | |
virtual void | postUpdate () |
Tells to this object that is needed to refit the box set. More... | |
SIMD_FORCE_INLINE const btAABB & | getLocalBox () |
Obtains the local box, which is the global calculated box of the total of subshapes. More... | |
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 More... | |
virtual void | processAllTriangles (btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const |
Function for retrieve triangles. More... | |
virtual void | processAllTrianglesRay (btTriangleCallback *, const btVector3 &, const btVector3 &) const |
Function for retrieve triangles. More... | |
virtual eGIMPACT_SHAPE_TYPE | getGImpactShapeType () const =0 |
Base method for determinig which kind of GIMPACT shape we get. More... | |
SIMD_FORCE_INLINE const btGImpactBoxSet * | getBoxSet () const |
gets boxset More... | |
SIMD_FORCE_INLINE bool | hasBoxSet () const |
Determines if this class has a hierarchy structure for sorting its primitives. More... | |
virtual const btPrimitiveManagerBase * | getPrimitiveManager () const =0 |
Obtains the primitive manager. More... | |
virtual int | getNumChildShapes () const =0 |
Gets the number of children. More... | |
virtual bool | childrenHasTransform () const =0 |
if true, then its children must get transforms. More... | |
virtual bool | needsRetrieveTriangles () const =0 |
Determines if this shape has triangles. More... | |
virtual bool | needsRetrieveTetrahedrons () const =0 |
Determines if this shape has tetrahedrons. More... | |
virtual void | getBulletTriangle (int prim_index, btTriangleShapeEx &triangle) const =0 |
virtual void | getBulletTetrahedron (int prim_index, btTetrahedronShapeEx &tetrahedron) const =0 |
virtual void | lockChildShapes () const |
call when reading child shapes More... | |
virtual void | unlockChildShapes () const |
SIMD_FORCE_INLINE void | getPrimitiveTriangle (int index, btPrimitiveTriangle &triangle) const |
if this trimesh More... | |
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)=0 |
Gets the children. More... | |
virtual const btCollisionShape * | getChildShape (int index) const =0 |
Gets the child. More... | |
virtual btTransform | getChildTransform (int index) const =0 |
Gets the children transform. More... | |
virtual void | setChildTransform (int index, const btTransform &transform)=0 |
Sets the children transform. More... | |
Protected Member Functions | |
virtual void | calcLocalAABB () |
Protected Attributes | |
btAABB | m_localAABB |
bool | m_needs_update |
btVector3 | localScaling |
btGImpactBoxSet | m_box_set |
Base class for gimpact shapes.
Definition at line 73 of file btGImpactShape.h.
|
inline |
Definition at line 100 of file btGImpactShape.h.
References GIMPACT_SHAPE_PROXYTYPE, localScaling, m_localAABB, and m_needs_update.
|
inlineprotectedvirtual |
use this function for perfofm refit in bounding boxes use this function for perfofm refit in bounding boxes
Reimplemented in btGImpactMeshShape.
Definition at line 83 of file btGImpactShape.h.
References btGImpactQuantizedBvh::buildSet(), btGImpactQuantizedBvh::getGlobalBox(), btGImpactQuantizedBvh::getNodeCount(), lockChildShapes(), m_box_set, m_localAABB, unlockChildShapes(), and btGImpactQuantizedBvh::update().
Referenced by updateBound().
|
pure virtual |
if true, then its children must get transforms.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by btGImpactCollisionAlgorithm::gimpact_vs_gimpact(), and btGImpactCollisionAlgorithm::gimpact_vs_shape().
|
inline |
If the Bounding box is not updated, then this class attemps to calculate it.
Definition at line 126 of file btGImpactShape.h.
References btAABB, m_localAABB, and t.
Referenced by btCreateCompoundFromGimpactShape(), btGImpactCollisionAlgorithm::gimpact_vs_concave(), and btGImpactCollisionAlgorithm::gimpacttrimeshpart_vs_plane_collision().
|
inline |
gets boxset
Definition at line 185 of file btGImpactShape.h.
References m_box_set.
Referenced by btGImpactCollisionAlgorithm::gimpact_vs_gimpact_find_pairs(), and btGImpactCollisionAlgorithm::gimpact_vs_shape_find_pairs().
|
pure virtual |
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by GIM_ShapeRetriever::TetraShapeRetriever::getChildShape().
|
pure virtual |
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by GIM_ShapeRetriever::TriangleShapeRetriever::getChildShape().
|
inlinevirtual |
Retrieves the bound from a child.
Reimplemented in btGImpactMeshShape, and btGImpactCompoundShape.
Definition at line 234 of file btGImpactShape.h.
References btAABB, btPrimitiveManagerBase::get_primitive_box(), getPrimitiveManager(), and t.
Referenced by btGImpactCollisionAlgorithm::gimpact_vs_gimpact_find_pairs(), and btGImpactCollisionAlgorithm::gimpact_vs_shape_find_pairs().
|
pure virtual |
Gets the child.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
|
pure virtual |
Gets the children.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by GIM_ShapeRetriever::ChildShapeRetriever::getChildShape(), and setMargin().
|
pure virtual |
Gets the children transform.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by btGImpactCollisionAlgorithm::gimpact_vs_gimpact(), and btGImpactCollisionAlgorithm::gimpact_vs_shape().
|
pure virtual |
Base method for determinig which kind of GIMPACT shape we get.
Subshape member functions
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by btGImpactCollisionAlgorithm::gimpact_vs_gimpact(), and btGImpactCollisionAlgorithm::gimpact_vs_shape().
|
inline |
Obtains the local box, which is the global calculated box of the total of subshapes.
Definition at line 141 of file btGImpactShape.h.
References m_localAABB.
Referenced by btGImpactMeshShape::calcLocalAABB().
|
inlinevirtual |
Reimplemented in btGImpactMeshShapePart.
Definition at line 160 of file btGImpactShape.h.
References localScaling.
Referenced by MyInternalTriangleIndexCallback::internalProcessTriangleIndex().
|
pure virtual |
Gets the number of children.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by btGImpactCollisionAlgorithm::gimpact_vs_gimpact_find_pairs(), btGImpactCollisionAlgorithm::gimpact_vs_shape_find_pairs(), and setMargin().
|
pure virtual |
Obtains the primitive manager.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by getChildAabb(), and getPrimitiveTriangle().
|
inline |
if this trimesh
Definition at line 226 of file btGImpactShape.h.
References btPrimitiveManagerBase::get_primitive_triangle(), and getPrimitiveManager().
Referenced by btGImpactCollisionAlgorithm::collide_sat_triangles(), btGImpactMeshShapePart::processAllTriangles(), and btGImpactMeshShapePart::processAllTrianglesRay().
|
inlinevirtual |
Definition at line 146 of file btGImpactShape.h.
References GIMPACT_SHAPE_PROXYTYPE.
|
inline |
Determines if this class has a hierarchy structure for sorting its primitives.
Definition at line 191 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().
|
inlinevirtual |
call when reading child shapes
Reimplemented in btGImpactMeshShape, and btGImpactMeshShapePart.
Definition at line 217 of file btGImpactShape.h.
Referenced by calcLocalAABB(), btGImpactCompoundShape::calculateLocalInertia(), btGImpactCollisionAlgorithm::gimpact_vs_gimpact(), and btGImpactCollisionAlgorithm::gimpact_vs_shape().
|
pure virtual |
Determines if this shape has tetrahedrons.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by GIM_ShapeRetriever::GIM_ShapeRetriever().
|
pure virtual |
Determines if this shape has triangles.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Referenced by GIM_ShapeRetriever::GIM_ShapeRetriever().
|
inlinevirtual |
Tells to this object that is needed to refit the box set.
Reimplemented in btGImpactMeshShape.
Definition at line 135 of file btGImpactShape.h.
References m_needs_update.
Referenced by btGImpactMeshShape::postUpdate(), btGImpactCompoundShape::setChildTransform(), setLocalScaling(), btGImpactMeshShapePart::setLocalScaling(), and btGImpactMeshShapePart::setMargin().
|
inlinevirtual |
Function for retrieve triangles.
It gives the triangles in local space
Reimplemented in btGImpactMeshShape, and btGImpactMeshShapePart.
Definition at line 272 of file btGImpactShape.h.
|
inlinevirtual |
Function for retrieve triangles.
It gives the triangles in local space
Reimplemented in btGImpactMeshShape, and btGImpactMeshShapePart.
Definition at line 283 of file btGImpactShape.h.
|
inlinevirtual |
virtual method for ray collision
Reimplemented in btGImpactMeshShape.
Definition at line 261 of file btGImpactShape.h.
References void.
|
pure virtual |
Sets the children transform.
Implemented in btGImpactMeshShape, btGImpactMeshShapePart, and btGImpactCompoundShape.
Reimplemented in btGImpactMeshShape, and btGImpactMeshShapePart.
Definition at line 154 of file btGImpactShape.h.
References localScaling, and postUpdate().
Reimplemented in btGImpactMeshShape, and btGImpactMeshShapePart.
Definition at line 165 of file btGImpactShape.h.
References btCollisionShape, getChildShape(), getNumChildShapes(), m_collisionMargin, and m_needs_update.
|
inlinevirtual |
Reimplemented in btGImpactMeshShape, and btGImpactMeshShapePart.
Definition at line 221 of file btGImpactShape.h.
Referenced by calcLocalAABB(), btGImpactCompoundShape::calculateLocalInertia(), btGImpactCollisionAlgorithm::gimpact_vs_gimpact(), and btGImpactCollisionAlgorithm::gimpact_vs_shape().
|
inline |
performs refit operation
Updates the entire Box set of this shape.
Definition at line 115 of file btGImpactShape.h.
References calcLocalAABB(), and m_needs_update.
Referenced by btCollisionWorldImporter::convertCollisionShape(), RB_shape_new_gimpact_mesh(), and RB_shape_trimesh_update().
|
protected |
Definition at line 78 of file btGImpactShape.h.
Referenced by btGImpactShapeInterface(), getLocalScaling(), btGImpactMeshShape::serialize(), setLocalScaling(), and btGImpactMeshShape::setLocalScaling().
|
protected |
Definition at line 79 of file btGImpactShape.h.
Referenced by btGImpactCompoundShape::btGImpactCompoundShape(), btGImpactMeshShapePart::btGImpactMeshShapePart(), calcLocalAABB(), getBoxSet(), hasBoxSet(), btGImpactMeshShapePart::lockChildShapes(), btGImpactMeshShapePart::processAllTriangles(), btGImpactMeshShapePart::processAllTrianglesRay(), and btGImpactMeshShapePart::unlockChildShapes().
|
protected |
Definition at line 76 of file btGImpactShape.h.
Referenced by btGImpactShapeInterface(), calcLocalAABB(), btGImpactMeshShape::calcLocalAABB(), btGImpactCompoundShape::calculateLocalInertia(), btGImpactMeshShapePart::calculateLocalInertia(), btGImpactMeshShape::calculateLocalInertia(), getAabb(), and getLocalBox().
|
protected |
Definition at line 77 of file btGImpactShape.h.
Referenced by btGImpactShapeInterface(), postUpdate(), btGImpactMeshShape::postUpdate(), btGImpactMeshShape::setLocalScaling(), setMargin(), btGImpactMeshShape::setMargin(), and updateBound().