RavEngine
Loading...
Searching...
No Matches
physx::PxStrideIterator< T > Class Template Reference

Iterator class for iterating over arrays of data that may be interleaved with other data. More...

#include <PxStrideIterator.h>

Public Member Functions

PX_INLINE PxStrideIterator (T *ptr=NULL, PxU32 stride=sizeof(T))
 Constructor.
 
PX_INLINE PxStrideIterator (const PxStrideIterator< typename StripConst< T >::Type > &strideIterator)
 Copy constructor.
 
PX_INLINE T * ptr () const
 Get pointer to element.
 
PX_INLINE PxU32 stride () const
 Get stride.
 
PX_INLINE T & operator* () const
 Indirection operator.
 
PX_INLINE T * operator-> () const
 Dereferencing operator.
 
PX_INLINE T & operator[] (unsigned int i) const
 Indexing operator.
 
PX_INLINE PxStrideIterator & operator++ ()
 Pre-increment operator.
 
PX_INLINE PxStrideIterator operator++ (int)
 Post-increment operator.
 
PX_INLINE PxStrideIterator & operator-- ()
 Pre-decrement operator.
 
PX_INLINE PxStrideIterator operator-- (int)
 Post-decrement operator.
 
PX_INLINE PxStrideIterator operator+ (unsigned int i) const
 Addition operator.
 
PX_INLINE PxStrideIterator operator- (unsigned int i) const
 Subtraction operator.
 
PX_INLINE PxStrideIterator & operator+= (unsigned int i)
 Addition compound assignment operator.
 
PX_INLINE PxStrideIterator & operator-= (unsigned int i)
 Subtraction compound assignment operator.
 
PX_INLINE int operator- (const PxStrideIterator &other) const
 Iterator difference.
 
PX_INLINE bool operator== (const PxStrideIterator &other) const
 Equality operator.
 
PX_INLINE bool operator!= (const PxStrideIterator &other) const
 Inequality operator.
 
PX_INLINE bool operator< (const PxStrideIterator &other) const
 Less than operator.
 
PX_INLINE bool operator> (const PxStrideIterator &other) const
 Greater than operator.
 
PX_INLINE bool operator<= (const PxStrideIterator &other) const
 Less or equal than operator.
 
PX_INLINE bool operator>= (const PxStrideIterator &other) const
 Greater or equal than operator.
 
PX_INLINE PxStrideIterator (T *ptr=NULL, PxU32 stride=sizeof(T))
 Constructor.
 
PX_INLINE PxStrideIterator (const PxStrideIterator< typename StripConst< T >::Type > &strideIterator)
 Copy constructor.
 
PX_INLINE T * ptr () const
 Get pointer to element.
 
PX_INLINE PxU32 stride () const
 Get stride.
 
PX_INLINE T & operator* () const
 Indirection operator.
 
PX_INLINE T * operator-> () const
 Dereferencing operator.
 
PX_INLINE T & operator[] (unsigned int i) const
 Indexing operator.
 
PX_INLINE PxStrideIterator & operator++ ()
 Pre-increment operator.
 
PX_INLINE PxStrideIterator operator++ (int)
 Post-increment operator.
 
PX_INLINE PxStrideIterator & operator-- ()
 Pre-decrement operator.
 
PX_INLINE PxStrideIterator operator-- (int)
 Post-decrement operator.
 
PX_INLINE PxStrideIterator operator+ (unsigned int i) const
 Addition operator.
 
PX_INLINE PxStrideIterator operator- (unsigned int i) const
 Subtraction operator.
 
PX_INLINE PxStrideIterator & operator+= (unsigned int i)
 Addition compound assignment operator.
 
PX_INLINE PxStrideIterator & operator-= (unsigned int i)
 Subtraction compound assignment operator.
 
PX_INLINE int operator- (const PxStrideIterator &other) const
 Iterator difference.
 
PX_INLINE bool operator== (const PxStrideIterator &other) const
 Equality operator.
 
PX_INLINE bool operator!= (const PxStrideIterator &other) const
 Inequality operator.
 
PX_INLINE bool operator< (const PxStrideIterator &other) const
 Less than operator.
 
PX_INLINE bool operator> (const PxStrideIterator &other) const
 Greater than operator.
 
PX_INLINE bool operator<= (const PxStrideIterator &other) const
 Less or equal than operator.
 
PX_INLINE bool operator>= (const PxStrideIterator &other) const
 Greater or equal than operator.
 

Detailed Description

template<typename T>
class physx::PxStrideIterator< T >

Iterator class for iterating over arrays of data that may be interleaved with other data.

This class is used for iterating over arrays of elements that may have a larger element to element offset, called the stride, than the size of the element itself (non-contiguous).

The template parameter T denotes the type of the element accessed. The stride itself is stored as a member field so multiple instances of a PxStrideIterator class can have different strides. This is useful for cases were the stride depends on runtime configuration.

The stride iterator can be used for index based access, e.g.:

PxStrideIterator<PxVec3> strideArray(...);
for (unsigned i = 0; i < 10; ++i)
{
PxVec3& vec = strideArray[i];
...
}
Iterator class for iterating over arrays of data that may be interleaved with other data.
Definition PxStrideIterator.h:81
3 Element vector class.
Definition PxVec3.h:50

or iteration by increment, e.g.:

PxStrideIterator<PxVec3> strideBegin(...);
PxStrideIterator<PxVec3> strideEnd(strideBegin + 10);
for (PxStrideIterator<PxVec3> it = strideBegin; it < strideEnd; ++it)
{
PxVec3& vec = *it;
...
}

Two special cases:

  • A stride of sizeof(T) represents a regular c array of type T.
  • A stride of 0 can be used to describe re-occurrence of the same element multiple times.

Constructor & Destructor Documentation

◆ PxStrideIterator() [1/4]

template<typename T >
PX_INLINE physx::PxStrideIterator< T >::PxStrideIterator ( T *  ptr = NULL,
PxU32  stride = sizeof(T) 
)
inlineexplicit

Constructor.

Optionally takes a pointer to an element and a stride.

Parameters
[in]ptrpointer to element, defaults to NULL.
[in]stridestride for accessing consecutive elements, defaults to the size of one element.

◆ PxStrideIterator() [2/4]

template<typename T >
PX_INLINE physx::PxStrideIterator< T >::PxStrideIterator ( const PxStrideIterator< typename StripConst< T >::Type > &  strideIterator)
inline

Copy constructor.

Parameters
[in]strideIteratorPxStrideIterator to be copied.

◆ PxStrideIterator() [3/4]

template<typename T >
PX_INLINE physx::PxStrideIterator< T >::PxStrideIterator ( T *  ptr = NULL,
PxU32  stride = sizeof(T) 
)
inlineexplicit

Constructor.

Optionally takes a pointer to an element and a stride.

Parameters
[in]ptrpointer to element, defaults to NULL.
[in]stridestride for accessing consecutive elements, defaults to the size of one element.

◆ PxStrideIterator() [4/4]

template<typename T >
PX_INLINE physx::PxStrideIterator< T >::PxStrideIterator ( const PxStrideIterator< typename StripConst< T >::Type > &  strideIterator)
inline

Copy constructor.

Parameters
[in]strideIteratorPxStrideIterator to be copied.

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