#include <PxGeometryHelpers.h>
Public Member Functions | |
PX_FORCE_INLINE PxGeometryType::Enum | getType () const |
PX_FORCE_INLINE PxGeometry & | any () |
PX_FORCE_INLINE const PxGeometry & | any () const |
PX_FORCE_INLINE PxSphereGeometry & | sphere () |
PX_FORCE_INLINE const PxSphereGeometry & | sphere () const |
PX_FORCE_INLINE PxPlaneGeometry & | plane () |
PX_FORCE_INLINE const PxPlaneGeometry & | plane () const |
PX_FORCE_INLINE PxCapsuleGeometry & | capsule () |
PX_FORCE_INLINE const PxCapsuleGeometry & | capsule () const |
PX_FORCE_INLINE PxBoxGeometry & | box () |
PX_FORCE_INLINE const PxBoxGeometry & | box () const |
PX_FORCE_INLINE PxConvexMeshGeometry & | convexMesh () |
PX_FORCE_INLINE const PxConvexMeshGeometry & | convexMesh () const |
PX_FORCE_INLINE PxTriangleMeshGeometry & | triangleMesh () |
PX_FORCE_INLINE const PxTriangleMeshGeometry & | triangleMesh () const |
PX_FORCE_INLINE PxHeightFieldGeometry & | heightField () |
PX_FORCE_INLINE const PxHeightFieldGeometry & | heightField () const |
PX_FORCE_INLINE void | storeAny (const PxGeometry &geometry) |
PX_FORCE_INLINE | PxGeometryHolder () |
PX_FORCE_INLINE | PxGeometryHolder (const PxGeometry &geometry) |
Private Member Functions | |
template<typename T > | |
void | put (const PxGeometry &geometry) |
template<typename T , PxGeometryType::Enum type> | |
T & | get () |
template<typename T , PxGeometryType::Enum type> | |
T & | get () const |
Private Attributes | |
union { | |
PxU8 geometry [sizeof(PxGeometry)] | |
PxU8 box [sizeof(PxBoxGeometry)] | |
PxU8 sphere [sizeof(PxSphereGeometry)] | |
PxU8 capsule [sizeof(PxCapsuleGeometry)] | |
PxU8 plane [sizeof(PxPlaneGeometry)] | |
PxU8 convex [sizeof(PxConvexMeshGeometry)] | |
PxU8 mesh [sizeof(PxTriangleMeshGeometry)] | |
PxU8 heightfield [sizeof(PxHeightFieldGeometry)] | |
} | bytes |
This class contains enough space to hold a value of any PxGeometry subtype.
Its principal use is as a convenience class to allow geometries to be returned polymorphically from functions. See PxShape::getGeometry();
PX_FORCE_INLINE PxGeometryHolder::PxGeometryHolder | ( | ) | [inline] |
PX_FORCE_INLINE PxGeometryHolder::PxGeometryHolder | ( | const PxGeometry & | geometry | ) | [inline] |
PX_FORCE_INLINE const PxGeometry& PxGeometryHolder::any | ( | ) | const [inline] |
PX_FORCE_INLINE PxGeometry& PxGeometryHolder::any | ( | ) | [inline] |
Referenced by PxShapeExt::getWorldBounds(), PxShapeExt::overlap(), PxShapeExt::raycast(), and PxShapeExt::sweep().
PX_FORCE_INLINE const PxBoxGeometry& PxGeometryHolder::box | ( | ) | const [inline] |
PX_FORCE_INLINE PxBoxGeometry& PxGeometryHolder::box | ( | ) | [inline] |
PX_FORCE_INLINE const PxCapsuleGeometry& PxGeometryHolder::capsule | ( | ) | const [inline] |
PX_FORCE_INLINE PxCapsuleGeometry& PxGeometryHolder::capsule | ( | ) | [inline] |
PX_FORCE_INLINE const PxConvexMeshGeometry& PxGeometryHolder::convexMesh | ( | ) | const [inline] |
PX_FORCE_INLINE PxConvexMeshGeometry& PxGeometryHolder::convexMesh | ( | ) | [inline] |
T& PxGeometryHolder::get | ( | ) | const [inline, private] |
References PX_ASSERT.
T& PxGeometryHolder::get | ( | ) | [inline, private] |
References PX_ASSERT.
PX_FORCE_INLINE PxGeometryType::Enum PxGeometryHolder::getType | ( | ) | const [inline] |
PX_FORCE_INLINE const PxHeightFieldGeometry& PxGeometryHolder::heightField | ( | ) | const [inline] |
PX_FORCE_INLINE PxHeightFieldGeometry& PxGeometryHolder::heightField | ( | ) | [inline] |
PX_FORCE_INLINE const PxPlaneGeometry& PxGeometryHolder::plane | ( | ) | const [inline] |
PX_FORCE_INLINE PxPlaneGeometry& PxGeometryHolder::plane | ( | ) | [inline] |
void PxGeometryHolder::put | ( | const PxGeometry & | geometry | ) | [inline, private] |
PX_FORCE_INLINE const PxSphereGeometry& PxGeometryHolder::sphere | ( | ) | const [inline] |
PX_FORCE_INLINE PxSphereGeometry& PxGeometryHolder::sphere | ( | ) | [inline] |
PX_FORCE_INLINE void PxGeometryHolder::storeAny | ( | const PxGeometry & | geometry | ) | [inline] |
References PxGeometryType::eBOX, PxGeometryType::eCAPSULE, PxGeometryType::eCONVEXMESH, PxGeometryType::eGEOMETRY_COUNT, PxGeometryType::eHEIGHTFIELD, PxGeometryType::eINVALID, PxGeometryType::ePLANE, PxGeometryType::eSPHERE, PxGeometryType::eTRIANGLEMESH, PxGeometry::getType(), and PX_ASSERT_WITH_MESSAGE.
PX_FORCE_INLINE const PxTriangleMeshGeometry& PxGeometryHolder::triangleMesh | ( | ) | const [inline] |
PX_FORCE_INLINE PxTriangleMeshGeometry& PxGeometryHolder::triangleMesh | ( | ) | [inline] |
PxU8 PxGeometryHolder::box[sizeof(PxBoxGeometry)] |
union { ... } PxGeometryHolder::bytes [private] |
PxU8 PxGeometryHolder::capsule[sizeof(PxCapsuleGeometry)] |
PxU8 PxGeometryHolder::convex[sizeof(PxConvexMeshGeometry)] |
PxU8 PxGeometryHolder::geometry[sizeof(PxGeometry)] |
PxU8 PxGeometryHolder::heightfield[sizeof(PxHeightFieldGeometry)] |
PxU8 PxGeometryHolder::mesh[sizeof(PxTriangleMeshGeometry)] |
PxU8 PxGeometryHolder::plane[sizeof(PxPlaneGeometry)] |
PxU8 PxGeometryHolder::sphere[sizeof(PxSphereGeometry)] |