Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/FICN/src/orxonox/particle/ParticleInterface.h @ 716

Last change on this file since 716 was 716, checked in by rgrieder, 16 years ago
  • merged all Vector3, etc. (incl. ColourValue) to misc/Math.h
File size: 2.0 KB
Line 
1#ifndef _ParticleInterface_H__
2#define _ParticleInterface_H__
3
4#include <string>
5
6// #include "ParticleInterface.h"
7// #include <Ogre.h>
8// #include <OIS/OIS.h>
9// #include <CEGUI/CEGUI.h>
10// #include <CEGUIRenderer.h>
11#include <OgreParticleSystem.h>
12#include <OgreParticleEmitter.h>
13#include <OgreSceneManager.h>
14
15#include "../OrxonoxPrereqs.h"
16
17#include "misc/Math.h"
18
19
20namespace orxonox
21{
22
23  class ParticleInterface
24  {
25  public:
26
27    ParticleInterface( Ogre::SceneManager *sceneManager, std::string name, std::string templateName );
28    ~ParticleInterface( void );
29
30    void inline addToSceneNode( Ogre::SceneNode* sceneNode ) { sceneNode_ = sceneNode; sceneNode_->attachObject(particleSystem_);};
31    void inline detachFromSceneNode( void ) { sceneNode_->detachObject(particleSystem_); sceneNode_ = NULL;};
32
33    Ogre::ParticleEmitter* getEmitter ( int emitterNr );
34    void newEmitter ( void );
35
36    Vector3 getPositionOfEmitter ( int emitterNr );
37    inline void setPositionOfEmitter ( int emitterNr, Vector3 position ) { particleSystem_->getEmitter(emitterNr)->setPosition(position); };
38
39    inline Vector3 getDirection ( void ) { return particleSystem_->getEmitter(0)->getDirection(); };
40    void setDirection ( Vector3 direction );
41
42    inline Real getVelocity() {return velocity_; };
43    void setVelocity( Real v );
44
45    inline int getRate() { return rate_; };
46    void setRate( int r );
47
48    inline Real getDistance() { return distance_; };
49    void setDistance( Real d );
50
51    inline ColourValue getColour( void ) {return colour_;};
52    void setColour( ColourValue colour );
53
54    void switchEnable();
55
56    inline Ogre::ParticleSystem* getParticleSystem() { return this->particleSystem_; };
57
58  private:
59    Ogre::SceneNode *sceneNode_;
60    Ogre::SceneManager *sceneManager_;
61    Ogre::ParticleSystem *particleSystem_;
62    Real distance_;
63    Real velocity_;
64    int rate_;
65    ColourValue colour_;
66    int numberOfEmitters_;
67
68    void standardizeEmitters();
69  };
70
71}
72
73#endif /* _ParticleInterface_H__ */
Note: See TracBrowser for help on using the repository browser.