PxStrideIterator
Defined in include/foundation/PxStrideIterator.h
-
template<typename T>
class PxStrideIterator 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.:
or iteration by increment, e.g.:PxStrideIterator<PxVec3> strideArray(...); for (unsigned i = 0; i < 10; ++i) { PxVec3& vec = strideArray[i]; ... }
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.
Public Functions
-
inline explicit PxStrideIterator(T *ptr = NULL, PxU32 stride = sizeof(T))
Constructor.
Optionally takes a pointer to an element and a stride.
- Parameters
ptr – [in] pointer to element, defaults to NULL.
stride – [in] stride for accessing consecutive elements, defaults to the size of one element.
-
inline PxStrideIterator(const PxStrideIterator<typename StripConst<T>::Type> &strideIterator)
Copy constructor.
- Parameters
strideIterator – [in] PxStrideIterator to be copied.
-
inline PxStrideIterator &operator++()
Pre-increment operator.
-
inline PxStrideIterator operator++(int)
Post-increment operator.
-
inline PxStrideIterator &operator--()
Pre-decrement operator.
-
inline PxStrideIterator operator--(int)
Post-decrement operator.
-
inline PxStrideIterator operator+(unsigned int i) const
Addition operator.
-
inline PxStrideIterator operator-(unsigned int i) const
Subtraction operator.
-
inline PxStrideIterator &operator+=(unsigned int i)
Addition compound assignment operator.
-
inline PxStrideIterator &operator-=(unsigned int i)
Subtraction compound assignment operator.
-
inline int operator-(const PxStrideIterator &other) const
Iterator difference.
-
inline bool operator==(const PxStrideIterator &other) const
Equality operator.
-
inline bool operator!=(const PxStrideIterator &other) const
Inequality operator.
-
inline bool operator<(const PxStrideIterator &other) const
Less than operator.
-
inline bool operator>(const PxStrideIterator &other) const
Greater than operator.
-
inline bool operator<=(const PxStrideIterator &other) const
Less or equal than operator.
-
inline bool operator>=(const PxStrideIterator &other) const
Greater or equal than operator.