/* ZParticleUpdateStrategy.h Author: James Russell Purpose: TODO Changelog 2011/08/28 - creation (jcrussell) */ #pragma once #ifndef _ZPARTICLEUPDATESTRATEGY_H #define _ZPARTICLEUPDATESTRATEGY_H #include //Forward Declarations class ZParticleEffect; class ZParticleEmitter; class ZParticleStorageAllocator; class ZParticleUpdateStrategy { public: //Virtual Destructor ~ZParticleUpdateStrategy() { } /* virtual public ZParticleUpdateStrategy::CheckParticleFormat Checks to see if this update strategy can update the provided particle format. @param _format - string description of the particle format @return (bool) - true if this udpate strategy can handle it, false otherwise @context (all) */ virtual bool CheckParticleFormat(const ZString& _format) = 0; /* virtual public ZParticleUpdateStrategy::UpdateParticles Updates the particle data present in particle storage. @param _particleEffect - the emitter's parent particle effect @param _particleEmitter - the parent emitter @param _storageAllocator - the particle data storage @param _dt - the time (in millisecond) since last update @return (void) @context (all) */ virtual void UpdateParticles(ZParticleEffect* _particleEffect, ZParticleEmitter* _particleEmitter, ZParticleStorageAllocator* _storageAllocator, size_t _dt ) = 0; }; #endif