/********************************************************************
*
* File: fsCParticleParticle.h
*
* Purpose: A particle that contains a particle.
*
*********************************************************************/
#ifndef fsCParticleParticlehdr
#define fsCParticleParticlehdr
#include <memory>
#include <fsCore/fsRect.h>
#include "fsIParticle.h"
class fsIAnimatingSprite;
class fsCParticleEmitter;
class fsCParticleData;
class fsCBrush;
class fsCParticleDataInstance;
class fsCParticleParticle : public fsIParticle
{
friend class fsCParticleData;
public:
void initialise();
fsS32 photoScoreGet(const fsRect& pScreenRect) const;
virtual ~fsCParticleParticle();<--- Destructor in derived class
fsCParticleParticle(const fsCParticleDataInstance& pParticleData, std::shared_ptr<fsCBrush> pSprite,
std::shared_ptr<fsIAnimationData> pAnimData,
const sCreateParmas& pParams);
protected:
fsCParticleParticle(fsCParticleData* pParticleData, std::shared_ptr<fsCBrush> pSprite,
std::shared_ptr<fsIAnimationData> pAnimData,
const sCreateParmas& pParams);
std::shared_ptr<fsCBrush> brushGetDo() const override;
fsBool hitTestDo(const fsPoint& pLocalPos) const override;
void updateDo(fsS32 pDeltaTime) override;
void renderDo() override;
void colourGraphUpdate() override;
void matrixApplyDo(const fsAffineMtx2d& pMatrix) override;
std::shared_ptr<fsIAnimatingSprite> mAnimatingSprite;
fsCParticleEmitter* mEmmiter;
fsCSprite* const mRootSprite;
private:
};
#endif