PxGeometryHolder Class Reference
[Geomutils]

Geometry holder class. More...

#include <PxGeometryHelpers.h>

List of all members.

Public Member Functions

PX_FORCE_INLINE
PxGeometryType::Enum 
getType () const
PX_FORCE_INLINE PxGeometryany ()
PX_FORCE_INLINE const PxGeometryany () const
PX_FORCE_INLINE PxSphereGeometrysphere ()
PX_FORCE_INLINE const
PxSphereGeometry
sphere () const
PX_FORCE_INLINE PxPlaneGeometryplane ()
PX_FORCE_INLINE const
PxPlaneGeometry
plane () const
PX_FORCE_INLINE PxCapsuleGeometrycapsule ()
PX_FORCE_INLINE const
PxCapsuleGeometry
capsule () const
PX_FORCE_INLINE PxBoxGeometrybox ()
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


Detailed Description

Geometry holder class.

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();


Constructor & Destructor Documentation

PX_FORCE_INLINE PxGeometryHolder::PxGeometryHolder (  )  [inline]

PX_FORCE_INLINE PxGeometryHolder::PxGeometryHolder ( const PxGeometry geometry  )  [inline]


Member Function Documentation

PX_FORCE_INLINE const PxGeometry& PxGeometryHolder::any (  )  const [inline]

PX_FORCE_INLINE PxGeometry& PxGeometryHolder::any (  )  [inline]

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]

template<typename T , PxGeometryType::Enum type>
T& PxGeometryHolder::get (  )  const [inline, private]

References PX_ASSERT.

template<typename T , PxGeometryType::Enum type>
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]

template<typename T >
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]

PX_FORCE_INLINE const PxTriangleMeshGeometry& PxGeometryHolder::triangleMesh (  )  const [inline]

PX_FORCE_INLINE PxTriangleMeshGeometry& PxGeometryHolder::triangleMesh (  )  [inline]


Member Data Documentation

union { ... } PxGeometryHolder::bytes [private]


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


Copyright © 2008-2018 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. www.nvidia.com