35#ifndef _PartioParticleIterator_h_ 
   36#define _PartioParticleIterator_h_ 
   46struct ParticleAccessor;
 
   53template<
class T,
int d>
 
   77template<
bool constant>
 
  106    template<
class TDATA,
class TITERATOR> TDATA* 
raw(
const TITERATOR& it)
 
 
  109    template<
class TDATA,
class TITERATOR> 
const TDATA* 
raw(
const TITERATOR& it)
 const 
 
  112    template<
class TDATA,
class TITERATOR> TDATA& 
data(
const TITERATOR& it)
 
 
  115    template<
class TDATA,
class TITERATOR> 
const TDATA& 
data(
const TITERATOR& it)
 const 
 
 
  123template<
bool constant=false>
 
  208        else return !(*
this==other);
 
 
 
  223template<
class T,
int d>
 
  227    for(
int i=1;i<d;i++) output<< 
" " << v[i];
 
 
Particle Collection Interface.
Definition PartioAttribute.h:97
Definition PartioIterator.h:125
bool operator==(const ParticleIterator &other)
Iterator comparison equals.
Definition PartioIterator.h:196
bool valid() const
Whether the iterator is valid.
Definition PartioIterator.h:175
PROVIDER< constant >::TYPE PROVIDER
Definition PartioIterator.h:128
ParticleIterator operator++(int)
Increment the iterator (postfix). Prefer the prefix form below to this one.
Definition PartioIterator.h:179
PROVIDER * particles
Delegate, null if the iterator is false.
Definition PartioIterator.h:131
void addAccessor(ParticleAccessor &newAccessor)
Definition PartioIterator.h:211
size_t indexEnd
End of non-interleaved index of contiguous block.
Definition PartioIterator.h:139
ParticleIterator(const ParticleIterator &other)
Copy constructor. NOTE: Invalidates any accessors that have been registered with it.
Definition PartioIterator.h:151
ParticleIterator & operator++()
Increment the iterator (prefix).
Definition PartioIterator.h:187
ParticleIterator & operator=(const ParticleIterator &other)
Assignment operator. NOTE: Invalidates any accessors that have been registered with it.
Definition PartioIterator.h:156
ParticleIterator(PROVIDER *particles, size_t index, size_t indexEnd)
Definition PartioIterator.h:170
bool operator!=(const ParticleIterator &other)
Iterator comparison not-equals.
Definition PartioIterator.h:204
size_t index
Start of non-interleaved index of contiguous block.
Definition PartioIterator.h:135
ParticleIterator()
Construct an invalid iterator.
Definition PartioIterator.h:146
ParticleAccessor * accessors
This is used for both non-interleaved and interleaved particle attributes.
Definition PartioIterator.h:142
Data< int, 1 > DataI
Definition PartioIterator.h:61
Data< float, 3 > DataV
Definition PartioIterator.h:63
ParticleAttributeType
Definition PartioAttribute.h:47
Data< float, 1 > DataF
Definition PartioIterator.h:62
std::ostream & operator<<(std::ostream &output, const Data< T, d > &v)
Definition PartioIterator.h:224
Data.
Definition PartioIterator.h:55
T & operator[](const int i)
Definition PartioIterator.h:59
const T & operator[](const int i) const
Definition PartioIterator.h:58
T x[d]
Definition PartioIterator.h:56
const Provider TYPE
Definition PartioIterator.h:85
Definition PartioIterator.h:79
Provider TYPE
Definition PartioIterator.h:80
Definition PartioIterator.h:90
ParticleAttributeType type
Definition PartioIterator.h:96
char * basePointer
Definition PartioIterator.h:92
TDATA & data(const TITERATOR &it)
Definition PartioIterator.h:112
int count
Definition PartioIterator.h:94
const TDATA & data(const TITERATOR &it) const
Definition PartioIterator.h:115
int attributeIndex
Definition PartioIterator.h:93
ParticleAccessor(const ParticleAttribute &attr)
Definition PartioIterator.h:101
TDATA * raw(const TITERATOR &it)
Definition PartioIterator.h:106
const TDATA * raw(const TITERATOR &it) const
Definition PartioIterator.h:109
ParticleAccessor * next
Definition PartioIterator.h:98
int stride
Definition PartioIterator.h:91
Definition PartioIterator.h:69
virtual ~Provider()
Definition PartioIterator.h:74
virtual void setupAccessor(ParticleIterator< false > &iterator, ParticleAccessor &accessor)=0
virtual void setupIteratorNextBlock(ParticleIterator< true > &iterator) const =0
virtual void setupIteratorNextBlock(ParticleIterator< false > &iterator)=0
virtual void setupAccessor(ParticleIterator< true > &iterator, ParticleAccessor &accessor) const =0