Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials
IParticleSystemSceneNode.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_PARTICLE_SYSTEM_SCENE_NODE_H_INCLUDED__
6 #define __I_PARTICLE_SYSTEM_SCENE_NODE_H_INCLUDED__
7 
8 #include "ISceneNode.h"
10 #include "IParticleBoxEmitter.h"
12 #include "IParticleMeshEmitter.h"
13 #include "IParticleRingEmitter.h"
14 #include "IParticleSphereEmitter.h"
19 #include "dimension2d.h"
20 
21 namespace irr
22 {
23 namespace scene
24 {
25 
27 
47 {
48 public:
49 
52  const core::vector3df& position = core::vector3df(0,0,0),
53  const core::vector3df& rotation = core::vector3df(0,0,0),
54  const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f))
55  : ISceneNode(parent, mgr, id, position, rotation, scale) {}
56 
58  virtual void setParticleSize(
59  const core::dimension2d<f32> &size = core::dimension2d<f32>(5.0f, 5.0f)) = 0;
60 
62 
65  virtual void setParticlesAreGlobal(bool global=true) = 0;
66 
68  virtual void clearParticles() = 0;
69 
73  virtual void doParticleSystem(u32 time) = 0;
74 
76 
77  virtual IParticleEmitter* getEmitter() =0;
78 
80 
86  virtual void setEmitter(IParticleEmitter* emitter) = 0;
87 
89 
100  virtual void addAffector(IParticleAffector* affector) = 0;
101 
103 
104  virtual const core::list<IParticleAffector*>& getAffectors() const = 0;
105 
107  virtual void removeAllAffectors() = 0;
108 
110 
154  scene::IAnimatedMeshSceneNode* node, bool useNormalDirection = true,
155  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
156  f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1,
157  bool everyMeshVertex = false,
158  u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,
159  const video::SColor& minStartColor = video::SColor(255,0,0,0),
160  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
161  u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000,
162  s32 maxAngleDegrees = 0,
163  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
164  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
165 
167 
194  const core::aabbox3df& box = core::aabbox3df(-10,28,-10,10,30,10),
195  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
196  u32 minParticlesPerSecond = 5,
197  u32 maxParticlesPerSecond = 10,
198  const video::SColor& minStartColor = video::SColor(255,0,0,0),
199  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
200  u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
201  s32 maxAngleDegrees=0,
202  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
203  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
204 
206 
238  const core::vector3df& center, f32 radius,
239  const core::vector3df& normal, f32 length,
240  bool outlineOnly = false,
241  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
242  u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,
243  const video::SColor& minStartColor = video::SColor(255,0,0,0),
244  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
245  u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000,
246  s32 maxAngleDegrees = 0,
247  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
248  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
249 
251 
294  scene::IMesh* mesh, bool useNormalDirection = true,
295  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
296  f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1,
297  bool everyMeshVertex = false,
298  u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,
299  const video::SColor& minStartColor = video::SColor(255,0,0,0),
300  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
301  u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000,
302  s32 maxAngleDegrees = 0,
303  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
304  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
305 
307 
333  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
334  u32 minParticlesPerSecond = 5,
335  u32 maxParticlesPerSecond = 10,
336  const video::SColor& minStartColor = video::SColor(255,0,0,0),
337  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
338  u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
339  s32 maxAngleDegrees=0,
340  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
341  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
342 
344 
375  const core::vector3df& center, f32 radius, f32 ringThickness,
376  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
377  u32 minParticlesPerSecond = 5,
378  u32 maxParticlesPerSecond = 10,
379  const video::SColor& minStartColor = video::SColor(255,0,0,0),
380  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
381  u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
382  s32 maxAngleDegrees=0,
383  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
384  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
385 
387 
415  const core::vector3df& center, f32 radius,
416  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
417  u32 minParticlesPerSecond = 5,
418  u32 maxParticlesPerSecond = 10,
419  const video::SColor& minStartColor = video::SColor(255,0,0,0),
420  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
421  u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
422  s32 maxAngleDegrees=0,
423  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
424  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
425 
427 
445  const core::vector3df& point, f32 speed = 1.0f, bool attract = true,
446  bool affectX = true, bool affectY = true, bool affectZ = true) = 0;
447 
449 
457  virtual IParticleAffector* createScaleParticleAffector(const core::dimension2df& scaleTo = core::dimension2df(1.0f, 1.0f)) = 0;
458 
460 
473  const video::SColor& targetColor = video::SColor(0,0,0,0),
474  u32 timeNeededToFadeOut = 1000) = 0;
475 
477 
490  const core::vector3df& gravity = core::vector3df(0.0f,-0.03f,0.0f),
491  u32 timeForceLost = 1000) = 0;
492 
494 
503  const core::vector3df& speed = core::vector3df(5.0f,5.0f,5.0f),
504  const core::vector3df& pivotPoint = core::vector3df(0.0f,0.0f,0.0f) ) = 0;
505 };
506 
507 } // end namespace scene
508 } // end namespace irr
509 
510 
511 #endif
512 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Mon May 6 2013 07:45:59 by Doxygen (1.8.1.2)