Blender
V3.3
|
This class manages a sub part of a mesh supplied by the btStridingMeshInterface interface. More...
#include <btGImpactShape.h>
Classes | |
class | TrimeshPrimitiveManager |
Trimesh primitive manager. More... | |
Public Member Functions | |
btGImpactMeshShapePart () | |
btGImpactMeshShapePart (btStridingMeshInterface *meshInterface, int part) | |
virtual | ~btGImpactMeshShapePart () |
virtual bool | childrenHasTransform () const |
if true, then its children must get transforms. More... | |
virtual void | lockChildShapes () const |
call when reading child shapes More... | |
virtual void | unlockChildShapes () const |
virtual int | getNumChildShapes () const |
Gets the number of children. 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 const btPrimitiveManagerBase * | getPrimitiveManager () const |
Obtains the primitive manager. More... | |
SIMD_FORCE_INLINE TrimeshPrimitiveManager * | getTrimeshPrimitiveManager () |
virtual void | calculateLocalInertia (btScalar mass, btVector3 &inertia) const |
virtual const char * | getName () const |
virtual eGIMPACT_SHAPE_TYPE | getGImpactShapeType () const |
Base method for determinig which kind of GIMPACT shape we get. 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 |
SIMD_FORCE_INLINE int | getVertexCount () const |
SIMD_FORCE_INLINE void | getVertex (int vertex_index, btVector3 &vertex) const |
SIMD_FORCE_INLINE void | setMargin (btScalar margin) |
SIMD_FORCE_INLINE btScalar | getMargin () const |
virtual void | setLocalScaling (const btVector3 &scaling) |
virtual const btVector3 & | getLocalScaling () const |
SIMD_FORCE_INLINE int | getPart () const |
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... | |
![]() | |
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 | rayTest (const btVector3 &rayFrom, const btVector3 &rayTo, btCollisionWorld::RayResultCallback &resultCallback) const |
virtual method for ray collision 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... | |
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... | |
Protected Attributes | |
TrimeshPrimitiveManager | m_primitive_manager |
![]() | |
btAABB | m_localAABB |
bool | m_needs_update |
btVector3 | localScaling |
btGImpactBoxSet | m_box_set |
Additional Inherited Members | |
![]() | |
virtual void | calcLocalAABB () |
This class manages a sub part of a mesh supplied by the btStridingMeshInterface interface.
Definition at line 502 of file btGImpactShape.h.
|
inline |
Definition at line 695 of file btGImpactShape.h.
References btGImpactShapeInterface::m_box_set, m_primitive_manager, and btGImpactQuantizedBvh::setPrimitiveManager().
btGImpactMeshShapePart::btGImpactMeshShapePart | ( | btStridingMeshInterface * | meshInterface, |
int | part | ||
) |
Definition at line 24 of file btGImpactShape.cpp.
References btGImpactMeshShapePart::TrimeshPrimitiveManager::lock(), btGImpactShapeInterface::m_box_set, btGImpactMeshShapePart::TrimeshPrimitiveManager::m_meshInterface, btGImpactMeshShapePart::TrimeshPrimitiveManager::m_part, m_primitive_manager, and btGImpactQuantizedBvh::setPrimitiveManager().
|
virtual |
Definition at line 46 of file btGImpactShape.cpp.
References m_primitive_manager, and btGImpactMeshShapePart::TrimeshPrimitiveManager::unlock().
|
virtual |
Definition at line 119 of file btGImpactShape.cpp.
References btVector3, getVertex(), getVertexCount(), gim_get_point_inertia(), lockChildShapes(), btGImpactShapeInterface::m_localAABB, unlockChildShapes(), and x2.
Referenced by btGImpactMeshShape::calculateLocalInertia().
|
inlinevirtual |
if true, then its children must get transforms.
Implements btGImpactShapeInterface.
Definition at line 704 of file btGImpactShape.h.
|
inlinevirtual |
Implements btGImpactShapeInterface.
Definition at line 794 of file btGImpactShape.h.
|
inlinevirtual |
Implements btGImpactShapeInterface.
Definition at line 789 of file btGImpactShape.h.
References btGImpactMeshShapePart::TrimeshPrimitiveManager::get_bullet_triangle(), and m_primitive_manager.
Referenced by btGImpactCollisionAlgorithm::collide_gjk_triangles().
|
inlinevirtual |
Gets the children.
Implements btGImpactShapeInterface.
Definition at line 720 of file btGImpactShape.h.
|
inlinevirtual |
Gets the child.
Implements btGImpactShapeInterface.
Definition at line 728 of file btGImpactShape.h.
|
inlinevirtual |
Gets the children transform.
Implements btGImpactShapeInterface.
Definition at line 736 of file btGImpactShape.h.
References btAssert, btTransform, and void.
|
inlinevirtual |
Base method for determinig which kind of GIMPACT shape we get.
Subshape member functions
Implements btGImpactShapeInterface.
Definition at line 772 of file btGImpactShape.h.
References CONST_GIMPACT_TRIMESH_SHAPE_PART.
|
inlinevirtual |
Reimplemented from btGImpactShapeInterface.
Definition at line 828 of file btGImpactShape.h.
References m_primitive_manager, and btGImpactMeshShapePart::TrimeshPrimitiveManager::m_scale.
|
inline |
Definition at line 817 of file btGImpactShape.h.
References btGImpactMeshShapePart::TrimeshPrimitiveManager::m_margin, and m_primitive_manager.
Referenced by btGImpactCollisionAlgorithm::gimpacttrimeshpart_vs_plane_collision().
|
inlinevirtual |
Definition at line 767 of file btGImpactShape.h.
|
inlinevirtual |
Gets the number of children.
Implements btGImpactShapeInterface.
Definition at line 714 of file btGImpactShape.h.
References btGImpactMeshShapePart::TrimeshPrimitiveManager::get_primitive_count(), and m_primitive_manager.
|
inline |
Definition at line 833 of file btGImpactShape.h.
References btGImpactMeshShapePart::TrimeshPrimitiveManager::m_part, and m_primitive_manager.
Referenced by processAllTriangles(), and processAllTrianglesRay().
|
inlinevirtual |
Obtains the primitive manager.
Implements btGImpactShapeInterface.
Definition at line 755 of file btGImpactShape.h.
References m_primitive_manager.
|
inline |
Definition at line 760 of file btGImpactShape.h.
References m_primitive_manager.
|
inline |
Definition at line 806 of file btGImpactShape.h.
References btGImpactMeshShapePart::TrimeshPrimitiveManager::get_vertex(), and m_primitive_manager.
Referenced by calculateLocalInertia(), and btGImpactCollisionAlgorithm::gimpacttrimeshpart_vs_plane_collision().
|
inline |
Definition at line 801 of file btGImpactShape.h.
References btGImpactMeshShapePart::TrimeshPrimitiveManager::get_vertex_count(), and m_primitive_manager.
Referenced by calculateLocalInertia(), and btGImpactCollisionAlgorithm::gimpacttrimeshpart_vs_plane_collision().
|
virtual |
call when reading child shapes
Reimplemented from btGImpactShapeInterface.
Definition at line 54 of file btGImpactShape.cpp.
References btGImpactQuantizedBvh::getPrimitiveManager(), btGImpactMeshShapePart::TrimeshPrimitiveManager::lock(), and btGImpactShapeInterface::m_box_set.
Referenced by calculateLocalInertia(), btGImpactCollisionAlgorithm::collide_gjk_triangles(), btGImpactCollisionAlgorithm::collide_sat_triangles(), btGImpactCollisionAlgorithm::gimpacttrimeshpart_vs_plane_collision(), processAllTriangles(), and processAllTrianglesRay().
|
inlinevirtual |
Determines if this shape has tetrahedrons.
Implements btGImpactShapeInterface.
Definition at line 784 of file btGImpactShape.h.
|
inlinevirtual |
Determines if this shape has triangles.
Implements btGImpactShapeInterface.
Definition at line 778 of file btGImpactShape.h.
|
virtual |
Function for retrieve triangles.
It gives the triangles in local space
Reimplemented from btGImpactShapeInterface.
Definition at line 218 of file btGImpactShape.cpp.
References btGImpactQuantizedBvh::boxQuery(), btAABB, callback, getPart(), btGImpactShapeInterface::getPrimitiveTriangle(), lockChildShapes(), btGImpactShapeInterface::m_box_set, btPrimitiveTriangle::m_vertices, btAlignedObjectArray< T >::size(), and unlockChildShapes().
|
virtual |
Function for retrieve triangles.
It gives the triangles in local space
Reimplemented from btGImpactShapeInterface.
Definition at line 192 of file btGImpactShape.cpp.
References btVector3, callback, getPart(), btGImpactShapeInterface::getPrimitiveTriangle(), lockChildShapes(), btGImpactShapeInterface::m_box_set, btPrimitiveTriangle::m_vertices, btGImpactQuantizedBvh::rayQuery(), btAlignedObjectArray< T >::size(), and unlockChildShapes().
|
inlinevirtual |
Sets the children transform.
Implements btGImpactShapeInterface.
Definition at line 747 of file btGImpactShape.h.
References btAssert, transform(), and void.
Reimplemented from btGImpactShapeInterface.
Definition at line 822 of file btGImpactShape.h.
References m_primitive_manager, btGImpactMeshShapePart::TrimeshPrimitiveManager::m_scale, and btGImpactShapeInterface::postUpdate().
Referenced by btGImpactMeshShape::setLocalScaling().
|
inlinevirtual |
Reimplemented from btGImpactShapeInterface.
Definition at line 811 of file btGImpactShape.h.
References btGImpactMeshShapePart::TrimeshPrimitiveManager::m_margin, m_primitive_manager, and btGImpactShapeInterface::postUpdate().
Referenced by btGImpactMeshShape::setMargin().
|
virtual |
Reimplemented from btGImpactShapeInterface.
Definition at line 65 of file btGImpactShape.cpp.
References btGImpactQuantizedBvh::getPrimitiveManager(), btGImpactShapeInterface::m_box_set, and btGImpactMeshShapePart::TrimeshPrimitiveManager::unlock().
Referenced by calculateLocalInertia(), btGImpactCollisionAlgorithm::collide_gjk_triangles(), btGImpactCollisionAlgorithm::collide_sat_triangles(), btGImpactCollisionAlgorithm::gimpacttrimeshpart_vs_plane_collision(), processAllTriangles(), and processAllTrianglesRay().
|
protected |
Definition at line 692 of file btGImpactShape.h.
Referenced by btGImpactMeshShapePart(), getBulletTriangle(), getLocalScaling(), getMargin(), getNumChildShapes(), getPart(), getPrimitiveManager(), getTrimeshPrimitiveManager(), getVertex(), getVertexCount(), setLocalScaling(), setMargin(), and ~btGImpactMeshShapePart().