28#ifndef HPL_PARTICLE_EMITTER_3D_H
29#define HPL_PARTICLE_EMITTER_3D_H
31#include "hpl1/engine/graphics/ParticleEmitter.h"
32#include "hpl1/engine/graphics/Renderable.h"
33#include "hpl1/engine/scene/Entity3D.h"
40class cParticleSystem3D;
53enum eParticleEmitter3DType {
54 eParticleEmitter3DType_FixedPoint,
55 eParticleEmitter3DType_DynamicPoint,
56 eParticleEmitter3DType_Line,
57 eParticleEmitter3DType_Axis,
58 eParticleEmitter3DType_LastEnum,
61enum eParticleEmitter3DCoordSystem {
62 eParticleEmitter3DCoordSystem_World,
63 eParticleEmitter3DCoordSystem_Local,
64 eParticleEmitter3DCoordSystem_LastEnum,
69kSaveData_ChildClass(iRenderable, iParticleEmitter3D) {
70 kSaveData_ClassInit(iParticleEmitter3D) public : tString msDataName;
77 virtual iSaveObject *CreateSaveObject(cSaveObjectHandler * apSaveObjectHandler, cGame * apGame);
78 virtual int GetSaveCreatePrio();
100 void UpdateLogic(
float afTimeStep);
104 eParticleEmitterType GetType() {
return eParticleEmitterType_3D; }
106 void SetSubDivUV(
const cVector2l &avSubDiv);
108 void SetWorld(
cWorld3D *apWorld) { mpWorld = apWorld; }
113 tString GetEntityType() {
return "ParticleEmitter3D"; }
115 void SetVisible(
bool abVisible) { SetRendered(abVisible); }
123 bool IsShadowCaster() {
return false; }
130 eRenderableType GetRenderType() {
return eRenderableType_Normal; }
140 float mfTimeStepAccum;
147 int mlDirectionUpdateCount;
151 int mlAxisDrawUpdateCount;
159 eParticleEmitter3DType mDrawType;
161 eParticleEmitter3DCoordSystem mCoordSystem;
165 bool mbUsesDirection;
169 bool mbUseRevolution;
Definition: BoundingVolume.h:71
Definition: Camera3D.h:53
Definition: Graphics.h:46
Definition: ParticleEmitter3D.h:83
Definition: ParticleSystem3D.h:90
Definition: RenderList.h:145
Definition: Resources.h:160
Definition: SaveGame.h:183
Definition: World3D.h:179
Definition: Material.h:203
Definition: ParticleEmitter3D.h:94
virtual void LoadFromSaveData(iSaveData *apSaveData)
virtual void SaveDataSetup(cSaveObjectHandler *apSaveObjectHandler, cGame *apGame)
virtual iSaveData * CreateSaveData()
virtual void SaveToSaveData(iSaveData *apSaveData)
int GetMatrixUpdateCount()
Definition: ParticleEmitter3D.h:129
Definition: ParticleEmitter.h:133
Definition: Renderable.h:70
Definition: SaveGame.h:111
Definition: VertexBuffer.h:90