Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/orxonox/particle/ParticleInterface.h @ 1047

Last change on this file since 1047 was 1039, checked in by rgrieder, 17 years ago
  • train riding doesn't have to be boring
  • added some license notes
  • removed certain header dependencies in audio
  • changed order of header file inclusion in orxonox and audio (coding style guide will be updated)
File size: 3.1 KB
RevLine 
[1039]1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *
4 *
5 *   License notice:
6 *
7 *   This program is free software; you can redistribute it and/or
8 *   modify it under the terms of the GNU General Public License
9 *   as published by the Free Software Foundation; either version 2
10 *   of the License, or (at your option) any later version.
11 *
12 *   This program is distributed in the hope that it will be useful,
13 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 *   GNU General Public License for more details.
16 *
17 *   You should have received a copy of the GNU General Public License
18 *   along with this program; if not, write to the Free Software
19 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20 *
21 *   Author:
22 *      Fabian 'x3n' Landau
23 *   Co-authors:
24 *      ...
25 *
26 */
27
[673]28#ifndef _ParticleInterface_H__
29#define _ParticleInterface_H__
[535]30
[1039]31#include "OrxonoxPrereqs.h"
32
[715]33#include <string>
34
[535]35// #include "ParticleInterface.h"
[618]36// #include <Ogre.h>
37// #include <OIS/OIS.h>
[535]38// #include <CEGUI/CEGUI.h>
39// #include <CEGUIRenderer.h>
[618]40#include <OgreParticleSystem.h>
41#include <OgreParticleEmitter.h>
42#include <OgreSceneManager.h>
[535]43
[742]44#include "util/Math.h"
[535]45
[708]46
47namespace orxonox
[535]48{
49
[729]50  class _OrxonoxExport ParticleInterface
[708]51  {
52  public:
[658]53
[715]54    ParticleInterface( Ogre::SceneManager *sceneManager, std::string name, std::string templateName );
[708]55    ~ParticleInterface( void );
[658]56
[728]57    inline void addToSceneNode( Ogre::SceneNode* sceneNode )
58        { sceneNode_ = sceneNode; sceneNode_->attachObject(particleSystem_);};
59    inline void detachFromSceneNode( void )
60        { sceneNode_->detachObject(particleSystem_); sceneNode_ = NULL;};
[658]61
[708]62    Ogre::ParticleEmitter* getEmitter ( int emitterNr );
63    void newEmitter ( void );
[658]64
[708]65    Vector3 getPositionOfEmitter ( int emitterNr );
[728]66    inline void setPositionOfEmitter ( int emitterNr, Vector3 position )
67        { particleSystem_->getEmitter(emitterNr)->setPosition(position); };
[658]68
[728]69    inline Vector3 getDirection ( void )
70        { return particleSystem_->getEmitter(0)->getDirection(); };
[708]71    void setDirection ( Vector3 direction );
[658]72
[728]73    inline Real getVelocity()
74        {return velocity_; };
[708]75    void setVelocity( Real v );
[658]76
[1037]77    inline float getRate()
[728]78      { return rate_; };
[1037]79    void setRate( float r );
[658]80
[728]81    inline Real getDistance()
82        { return distance_; };
[708]83    void setDistance( Real d );
[658]84
[728]85    inline ColourValue getColour( void )
86        {return colour_;};
[708]87    void setColour( ColourValue colour );
[535]88
[708]89    void switchEnable();
[621]90
[728]91    inline Ogre::ParticleSystem* getParticleSystem()
92        { return this->particleSystem_; };
[535]93
[708]94  private:
95    Ogre::SceneNode *sceneNode_;
96    Ogre::SceneManager *sceneManager_;
97    Ogre::ParticleSystem *particleSystem_;
98    Real distance_;
99    Real velocity_;
[1037]100    float rate_;
[708]101    ColourValue colour_;
102    int numberOfEmitters_;
[535]103
[708]104    void standardizeEmitters();
105  };
106
[535]107}
[708]108
[673]109#endif /* _ParticleInterface_H__ */
Note: See TracBrowser for help on using the repository browser.