Public Types | Public Member Functions | Private Attributes | Friends | List of all members
PxFlags< enumtype, storagetype > Class Template Reference

Container for bitfield flag variables associated with a specific enum type. More...

#include <PxFlags.h>

Inheritance diagram for PxFlags< enumtype, storagetype >:
Inheritance graph
[legend]
Collaboration diagram for PxFlags< enumtype, storagetype >:
Collaboration graph
[legend]

Public Types

typedef storagetype InternalType
 

Public Member Functions

PX_INLINE PxFlags (const PxEMPTY &)
 
PX_INLINE PxFlags (void)
 
PX_INLINE PxFlags (enumtype e)
 
PX_INLINE PxFlags (const PxFlags< enumtype, storagetype > &f)
 
PX_INLINE PxFlags (storagetype b)
 
PX_INLINE bool isSet (enumtype e) const
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
set (enumtype e)
 
PX_INLINE bool operator== (enumtype e) const
 
PX_INLINE bool operator== (const PxFlags< enumtype, storagetype > &f) const
 
PX_INLINE bool operator== (bool b) const
 
PX_INLINE bool operator!= (enumtype e) const
 
PX_INLINE bool operator!= (const PxFlags< enumtype, storagetype > &f) const
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
operator= (enumtype e)
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
operator= (const PxFlags< enumtype, storagetype > &f)
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
operator|= (enumtype e)
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
operator|= (const PxFlags< enumtype, storagetype > &f)
 
PX_INLINE PxFlags< enumtype,
storagetype > 
operator| (enumtype e) const
 
PX_INLINE PxFlags< enumtype,
storagetype > 
operator| (const PxFlags< enumtype, storagetype > &f) const
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
operator&= (enumtype e)
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
operator&= (const PxFlags< enumtype, storagetype > &f)
 
PX_INLINE PxFlags< enumtype,
storagetype > 
operator& (enumtype e) const
 
PX_INLINE PxFlags< enumtype,
storagetype > 
operator& (const PxFlags< enumtype, storagetype > &f) const
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
operator^= (enumtype e)
 
PX_INLINE PxFlags< enumtype,
storagetype > & 
operator^= (const PxFlags< enumtype, storagetype > &f)
 
PX_INLINE PxFlags< enumtype,
storagetype > 
operator^ (enumtype e) const
 
PX_INLINE PxFlags< enumtype,
storagetype > 
operator^ (const PxFlags< enumtype, storagetype > &f) const
 
PX_INLINE PxFlags< enumtype,
storagetype > 
operator~ (void) const
 
PX_INLINE operator bool (void) const
 
PX_INLINE operator PxU8 (void) const
 
PX_INLINE operator PxU16 (void) const
 
PX_INLINE operator PxU32 (void) const
 
PX_INLINE void clear (enumtype e)
 

Private Attributes

storagetype mBits
 

Friends

PX_INLINE PxFlags< enumtype,
storagetype > 
operator& (enumtype a, PxFlags< enumtype, storagetype > &b)
 

Detailed Description

template<typename enumtype, typename storagetype = PxU32>
class PxFlags< enumtype, storagetype >

Container for bitfield flag variables associated with a specific enum type.

This allows for type safe manipulation for bitfields.

<h3>Example</h3>

enum that defines each bit... struct MyEnum { enum Enum { eMAN = 1, eBEAR = 2, ePIG = 4, }; };

implements some convenient global operators. PX_FLAGS_OPERATORS(MyEnum::Enum, PxU8);

PxFlags<MyEnum::Enum, PxU8> myFlags; myFlags |= MyEnum::eMAN; myFlags |= MyEnum::eBEAR | MyEnum::ePIG; if(myFlags & MyEnum::eBEAR) { doSomething(); }

Member Typedef Documentation

template<typename enumtype, typename storagetype = PxU32>
typedef storagetype PxFlags< enumtype, storagetype >::InternalType

Constructor & Destructor Documentation

template<typename enumtype, typename storagetype = PxU32>
PX_INLINE PxFlags< enumtype, storagetype >::PxFlags ( const PxEMPTY )
inlineexplicit

Friends And Related Function Documentation

template<typename enumtype, typename storagetype = PxU32>
PX_INLINE PxFlags<enumtype,storagetype> operator& ( enumtype  a,
PxFlags< enumtype, storagetype > &  b 
)
friend

Member Data Documentation

template<typename enumtype, typename storagetype = PxU32>
storagetype PxFlags< enumtype, storagetype >::mBits
private

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