Public Member Functions | Private Member Functions | Private Attributes | List of all members
PxGeometryHolder Class Reference

Geometry holder class. More...

#include <PxGeometryHelpers.h>

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)
 

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

Member Function Documentation

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

References bytes.

PX_FORCE_INLINE PxBoxGeometry& PxGeometryHolder::box ( )
inline
PX_FORCE_INLINE const PxBoxGeometry& PxGeometryHolder::box ( ) const
inline
PX_FORCE_INLINE PxCapsuleGeometry& PxGeometryHolder::capsule ( )
inline
PX_FORCE_INLINE const PxCapsuleGeometry& PxGeometryHolder::capsule ( ) const
inline
PX_FORCE_INLINE PxConvexMeshGeometry& PxGeometryHolder::convexMesh ( )
inline
PX_FORCE_INLINE const PxConvexMeshGeometry& PxGeometryHolder::convexMesh ( ) const
inline
template<typename T , PxGeometryType::Enum type>
T& PxGeometryHolder::get ( )
inlineprivate

References any(), getType(), and PX_ASSERT.

template<typename T , PxGeometryType::Enum type>
T& PxGeometryHolder::get ( ) const
inlineprivate

References any(), getType(), and PX_ASSERT.

PX_FORCE_INLINE PxGeometryType::Enum PxGeometryHolder::getType ( ) const
inline

References any(), and PxGeometry::getType().

PX_FORCE_INLINE PxHeightFieldGeometry& PxGeometryHolder::heightField ( )
inline
PX_FORCE_INLINE const PxHeightFieldGeometry& PxGeometryHolder::heightField ( ) const
inline
PX_FORCE_INLINE PxPlaneGeometry& PxGeometryHolder::plane ( )
inline
PX_FORCE_INLINE const PxPlaneGeometry& PxGeometryHolder::plane ( ) const
inline
template<typename T >
void PxGeometryHolder::put ( const PxGeometry geometry)
inlineprivate

References any().

PX_FORCE_INLINE PxSphereGeometry& PxGeometryHolder::sphere ( )
inline
PX_FORCE_INLINE const PxSphereGeometry& PxGeometryHolder::sphere ( ) const
inline
PX_FORCE_INLINE void PxGeometryHolder::storeAny ( const PxGeometry geometry)
inline
PX_FORCE_INLINE PxTriangleMeshGeometry& PxGeometryHolder::triangleMesh ( )
inline
PX_FORCE_INLINE const PxTriangleMeshGeometry& PxGeometryHolder::triangleMesh ( ) const
inline

Member Data Documentation

PxU8 PxGeometryHolder::box[sizeof(PxBoxGeometry)]
union { ... } PxGeometryHolder::bytes
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)]

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


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