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-2010 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 
69  virtual IParticleEmitter* getEmitter() =0;
70 
72 
78  virtual void setEmitter(IParticleEmitter* emitter) = 0;
79 
81 
92  virtual void addAffector(IParticleAffector* affector) = 0;
93 
95  virtual void removeAllAffectors() = 0;
96 
98 
142  scene::IAnimatedMeshSceneNode* node, bool useNormalDirection = true,
143  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
144  f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1,
145  bool everyMeshVertex = false,
146  u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,
147  const video::SColor& minStartColor = video::SColor(255,0,0,0),
148  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
149  u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000,
150  s32 maxAngleDegrees = 0,
151  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
152  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
153 
155 
182  const core::aabbox3df& box = core::aabbox3df(-10,28,-10,10,30,10),
183  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
184  u32 minParticlesPerSecond = 5,
185  u32 maxParticlesPerSecond = 10,
186  const video::SColor& minStartColor = video::SColor(255,0,0,0),
187  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
188  u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
189  s32 maxAngleDegrees=0,
190  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
191  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
192 
194 
226  const core::vector3df& center, f32 radius,
227  const core::vector3df& normal, f32 length,
228  bool outlineOnly = false,
229  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
230  u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,
231  const video::SColor& minStartColor = video::SColor(255,0,0,0),
232  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
233  u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000,
234  s32 maxAngleDegrees = 0,
235  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
236  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
237 
239 
282  scene::IMesh* mesh, bool useNormalDirection = true,
283  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
284  f32 normalDirectionModifier = 100.0f, s32 mbNumber = -1,
285  bool everyMeshVertex = false,
286  u32 minParticlesPerSecond = 5, u32 maxParticlesPerSecond = 10,
287  const video::SColor& minStartColor = video::SColor(255,0,0,0),
288  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
289  u32 lifeTimeMin = 2000, u32 lifeTimeMax = 4000,
290  s32 maxAngleDegrees = 0,
291  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
292  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
293 
295 
321  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
322  u32 minParticlesPerSecond = 5,
323  u32 maxParticlesPerSecond = 10,
324  const video::SColor& minStartColor = video::SColor(255,0,0,0),
325  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
326  u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
327  s32 maxAngleDegrees=0,
328  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
329  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
330 
332 
363  const core::vector3df& center, f32 radius, f32 ringThickness,
364  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
365  u32 minParticlesPerSecond = 5,
366  u32 maxParticlesPerSecond = 10,
367  const video::SColor& minStartColor = video::SColor(255,0,0,0),
368  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
369  u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
370  s32 maxAngleDegrees=0,
371  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
372  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
373 
375 
403  const core::vector3df& center, f32 radius,
404  const core::vector3df& direction = core::vector3df(0.0f,0.03f,0.0f),
405  u32 minParticlesPerSecond = 5,
406  u32 maxParticlesPerSecond = 10,
407  const video::SColor& minStartColor = video::SColor(255,0,0,0),
408  const video::SColor& maxStartColor = video::SColor(255,255,255,255),
409  u32 lifeTimeMin=2000, u32 lifeTimeMax=4000,
410  s32 maxAngleDegrees=0,
411  const core::dimension2df& minStartSize = core::dimension2df(5.0f,5.0f),
412  const core::dimension2df& maxStartSize = core::dimension2df(5.0f,5.0f) ) = 0;
413 
415 
433  const core::vector3df& point, f32 speed = 1.0f, bool attract = true,
434  bool affectX = true, bool affectY = true, bool affectZ = true) = 0;
435 
437 
445  virtual IParticleAffector* createScaleParticleAffector(const core::dimension2df& scaleTo = core::dimension2df(1.0f, 1.0f)) = 0;
446 
448 
461  const video::SColor& targetColor = video::SColor(0,0,0,0),
462  u32 timeNeededToFadeOut = 1000) = 0;
463 
465 
478  const core::vector3df& gravity = core::vector3df(0.0f,-0.03f,0.0f),
479  u32 timeForceLost = 1000) = 0;
480 
482 
491  const core::vector3df& speed = core::vector3df(5.0f,5.0f,5.0f),
492  const core::vector3df& pivotPoint = core::vector3df(0.0f,0.0f,0.0f) ) = 0;
493 };
494 
495 } // end namespace scene
496 } // end namespace irr
497 
498 
499 #endif
500 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Fri Mar 21 2014 04:40:16 by Doxygen (1.8.1.2)