NAVIÉ
Documentation : Effex : Developer API : Classes : Iterators

### FXParticleIterator

FXParticleIterator

The particle iterator allows you to browse particles of a specific particle group's subgroup type.
It natively supports multiple processors so you don't have to worry about it yourself.

#### FXParticle* GetParticle (void);

Returns
The current particle.
Parameters
const int cpu:
the current cpu thread.

#### FXParticle* GetFirstParticle (void);

Returns
The first particle for the given cpu.
Parameters
const int cpu:
the current cpu thread.

#### FXParticle* GetLastParticle (void);

Returns
The last particle for the given cpu.
Parameters
const int cpu:
the current cpu thread.

#### bool Init (FXParticleGroup* group, const ParticleFactoryTypes m_factory);

Returns
true if the iterator was initialised successfully.
Parameters
FXParticleGroup* group:
Pass the particle group containing the particles to iterate.
const ParticleFactoryTypes m_factory:
The particle subgroup type.
const int cpus:
Pass the amount of cpu threads you will be using for iterating particles.

#### void Restart (void);

This will reset the iterator for the given cpu.
Parameters
const int cpu:
the cpu thread to reset the iterator for.

#### bool SetNext (void);

Steps the iterator to get the next iterator. Use for forward stepping.
Returns
true if the iterator has been incremented.
Parameters
const int cpu:
the current cpu thread to increment the iterator for.

#### bool SetPrev (void);

Steps the iterator to get the previous iterator. Use for backward stepping.
Returns
true if the iterator has been decremented.
Parameters
const int cpu:
the current cpu thread to decrement the iterator for.

#### void Offset (long offset);

Offsets the iterator to a user defined position. This is currently private.
Parameters
const long offset:
the iterator offset.
const int cpu:
the current cpu thread to offset the iterator for.

#### bool OffsetSafe (long offset);

Offsets the iterator to a user defined position.
Returns
true if the offset operation was successful and the resulting iterator is valid.
Parameters
const long offset:
the iterator offset.
const int cpu:
the current cpu thread to offset the iterator for.

#### bool IsValid (void) const;

Returns
true if the current iterator is valid.

#### static FXParticleIterator* Alloc (void);

Allocates the iterator. You can use AutoAlloc for a scope based allocation.
Returns
the FXParticleIterator. The user owns the pointed object.

#### static void Free (FXParticleIterator*& p);

Frees a previously allocated FXParticleIterator.
Parameters
FXParticleIterator*&:
Pass the FXParticleIterator to free.