Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 17, 2007, 8:59:31 PM (16 years ago)
Author:
nicolasc
Message:

added engineglow particle effect - based of treibwerk
other various changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/FICN/src/orxonox/particle/ParticleInterface.cc

    r544 r592  
    3737namespace particle {
    3838
    39         ParticleInterface::~ParticleInterface(void)
    40         {
    41                 sceneManager_->destroyParticleSystem(particleSystem_);
     39  ParticleInterface::~ParticleInterface(void)
     40  {
     41    sceneManager_->destroyParticleSystem(particleSystem_);
    4242
    43                 delete sceneNode_;
    44                 delete particleSystem_;
    45                 delete sceneManager_;
    46         }
     43    delete sceneNode_;
     44    delete particleSystem_;
     45    delete sceneManager_;
     46  }
    4747
    48         ParticleInterface::ParticleInterface( SceneManager *sceneManager, String name, String templateName )
    49         {
    50                 sceneManager_ = sceneManager;
    51                 particleSystem_ = sceneManager->createParticleSystem(name, templateName);
     48  ParticleInterface::ParticleInterface( SceneManager *sceneManager, String name, String templateName )
     49  {
     50    sceneManager_ = sceneManager;
     51    particleSystem_ = sceneManager->createParticleSystem(name, templateName);
    5252
    53                 //Variabeln einlesen, Emitter1_ ist Referenz-Emitter
    54                 velocity_ = particleSystem_->getSpeedFactor();
    55                 colour_ = particleSystem_->getEmitter(0)->getColour();
    56                 rate_ = particleSystem_->getEmitter(0)->getEmissionRate();
    57                 distance_ = particleSystem_->getEmitter(0)->getTimeToLive();
     53    //Variabeln einlesen, Emitter1_ ist Referenz-Emitter
     54    velocity_ = particleSystem_->getSpeedFactor();
     55    colour_ = particleSystem_->getEmitter(0)->getColour();
     56    rate_ = particleSystem_->getEmitter(0)->getEmissionRate();
     57    distance_ = particleSystem_->getEmitter(0)->getTimeToLive();
    5858
    59                 //Anzahl der Emitter
    60                 numberOfEmitters_ = particleSystem_->getNumEmitters();
    61                 standardizeEmitters();
    62         }
     59    //Anzahl der Emitter
     60    numberOfEmitters_ = particleSystem_->getNumEmitters();
     61    standardizeEmitters();
     62  }
    6363
    64         void ParticleInterface::standardizeEmitters(void)
    65         {
    66                 //Abgleichen der anderen Emitter an die Variabeln
    67                 for (int i=1; i<numberOfEmitters_; i++) {
    68                         particleSystem_->getEmitter(i)->setColour( colour_ );
    69                         particleSystem_->getEmitter(i)->setTimeToLive( distance_ );
    70                         particleSystem_->getEmitter(i)->setEmissionRate( rate_ );
    71                 }
     64  void ParticleInterface::standardizeEmitters(void)
     65  {
     66    //Abgleichen der anderen Emitter an die Variabeln
     67    for (int i=1; i<numberOfEmitters_; i++) {
     68      particleSystem_->getEmitter(i)->setColour( colour_ );
     69      particleSystem_->getEmitter(i)->setTimeToLive( distance_ );
     70      particleSystem_->getEmitter(i)->setEmissionRate( rate_ );
     71    }
    7272
    73         }
     73  }
    7474
    75         void ParticleInterface::addToSceneNode( SceneNode* sceneNode )
    76         {
    77                 sceneNode_ = sceneNode;
    78                 sceneNode_->attachObject(particleSystem_);
    79         }
     75  void ParticleInterface::addToSceneNode( SceneNode* sceneNode )
     76  {
     77    sceneNode_ = sceneNode;
     78    sceneNode_->attachObject(particleSystem_);
     79  }
    8080
    81         void ParticleInterface::dettachFromSceneNode ( void )
    82         {
    83                 sceneNode_->detachObject(particleSystem_);
    84                 sceneNode_ = NULL;
    85         }
     81  void ParticleInterface::dettachFromSceneNode ( void )
     82  {
     83    sceneNode_->detachObject(particleSystem_);
     84    sceneNode_ = NULL;
     85  }
    8686
    87         Real ParticleInterface::getVelocity()
    88         {
    89                 return velocity_;
    90         }
     87  Real ParticleInterface::getVelocity()
     88  {
     89    return velocity_;
     90  }
    9191
    92         void ParticleInterface::setVelocity(Real v)
    93         {
    94                 velocity_ = v;
    95                 //partikel anpassen
    96                 particleSystem_->setSpeedFactor(v);
    97         }
     92  void ParticleInterface::setVelocity(Real v)
     93  {
     94    velocity_ = v;
     95    //partikel anpassen
     96    particleSystem_->setSpeedFactor(v);
     97  }
    9898
    99         int ParticleInterface::getRate()
    100         {
    101                 return rate_;
    102         }
    103         void ParticleInterface::setRate(int r)
    104         {
    105                 rate_ = r;
    106                 //partikel anpassen
    107                 for (int i=0; i<numberOfEmitters_; i++) {
    108                         particleSystem_->getEmitter(i)->setEmissionRate(rate_);
    109                 }
    110         }
     99  int ParticleInterface::getRate()
     100  {
     101    return rate_;
     102  }
     103  void ParticleInterface::setRate(int r)
     104  {
     105    rate_ = r;
     106    //partikel anpassen
     107    for (int i=0; i<numberOfEmitters_; i++) {
     108      particleSystem_->getEmitter(i)->setEmissionRate(rate_);
     109    }
     110  }
    111111
    112         Real ParticleInterface::getDistance()
    113         {
    114                 return distance_;
    115         }
     112  Real ParticleInterface::getDistance()
     113  {
     114    return distance_;
     115  }
    116116
    117         void ParticleInterface::setDistance(Real d)
    118         {
    119                 distance_ = d;
    120                 //partikel anpassen
    121                 for (int i=0; i<numberOfEmitters_; i++) {
    122                         particleSystem_->getEmitter(i)->setTimeToLive(distance_);
    123                 }
    124         }
    125         ColourValue ParticleInterface::getColour()
    126         {
    127                 return colour_;
    128         }
     117  void ParticleInterface::setDistance(Real d)
     118  {
     119    distance_ = d;
     120    //partikel anpassen
     121    for (int i=0; i<numberOfEmitters_; i++) {
     122      particleSystem_->getEmitter(i)->setTimeToLive(distance_);
     123    }
     124  }
     125  ColourValue ParticleInterface::getColour()
     126  {
     127    return colour_;
     128  }
    129129
    130         void ParticleInterface::setColour(ColourValue colour)
    131         {
    132                 colour_ = colour;
    133                 //partikel anpassen
    134                 for (int i=0; i<numberOfEmitters_; i++) {
    135                         particleSystem_->getEmitter(i)->setColour(colour_);
    136                 }
    137         }
     130  void ParticleInterface::setColour(ColourValue colour)
     131  {
     132    colour_ = colour;
     133    //partikel anpassen
     134    for (int i=0; i<numberOfEmitters_; i++) {
     135      particleSystem_->getEmitter(i)->setColour(colour_);
     136    }
     137  }
    138138
    139         ParticleEmitter* ParticleInterface::getEmitter( int emitterNr )
    140         {
    141                 if (!(emitterNr<numberOfEmitters_)) return NULL;
    142                 return particleSystem_->getEmitter(emitterNr);
    143         }
     139  ParticleEmitter* ParticleInterface::getEmitter( int emitterNr )
     140  {
     141    if (!(emitterNr<numberOfEmitters_)) return NULL;
     142    return particleSystem_->getEmitter(emitterNr);
     143  }
    144144
    145         void ParticleInterface::newEmitter ( void )
    146         {
    147                 particleSystem_->addEmitter(particleSystem_->getEmitter(0)->getType());
    148                 numberOfEmitters_=numberOfEmitters_+1;
    149                 particleSystem_->getEmitter(0)->copyParametersTo( particleSystem_->getEmitter(numberOfEmitters_-1) );
    150         }
     145  void ParticleInterface::newEmitter ( void )
     146  {
     147    particleSystem_->addEmitter(particleSystem_->getEmitter(0)->getType());
     148    numberOfEmitters_=numberOfEmitters_+1;
     149    particleSystem_->getEmitter(0)->copyParametersTo( particleSystem_->getEmitter(numberOfEmitters_-1) );
     150  }
    151151
    152         void ParticleInterface::setPositionOfEmitter ( int emitterNr, Vector3 position )
    153         {
    154                 particleSystem_->getEmitter(emitterNr)->setPosition(position);
    155         }
     152  void ParticleInterface::setPositionOfEmitter ( int emitterNr, Vector3 position )
     153  {
     154    particleSystem_->getEmitter(emitterNr)->setPosition(position);
     155  }
    156156
    157         Vector3 ParticleInterface::getPositionOfEmitter ( int emitterNr )
    158         {
    159                 return particleSystem_->getEmitter(0)->getPosition();
    160         }
     157  Vector3 ParticleInterface::getPositionOfEmitter ( int emitterNr )
     158  {
     159    return particleSystem_->getEmitter(0)->getPosition();
     160  }
    161161
    162         void ParticleInterface::setDirection ( Vector3 direction )
    163         {
    164                 for(int i=0; i<numberOfEmitters_; i++) {
    165                         particleSystem_->getEmitter(i)->setDirection(direction);
    166                 }
    167         }
     162  void ParticleInterface::setDirection ( Vector3 direction )
     163  {
     164    for(int i=0; i<numberOfEmitters_; i++) {
     165      particleSystem_->getEmitter(i)->setDirection(direction);
     166    }
     167  }
    168168
    169169
    170         Vector3 ParticleInterface::getDirection ( void )
    171         {
    172                 return particleSystem_->getEmitter(0)->getDirection();
    173         }
     170  Vector3 ParticleInterface::getDirection ( void )
     171  {
     172    return particleSystem_->getEmitter(0)->getDirection();
     173  }
    174174
    175         void ParticleInterface::switchEnable(){
    176                 bool enable=(!(particleSystem_->getEmitter(0)->getEnabled()));
    177                 for(int i=0; i<numberOfEmitters_; i++) {
    178                         particleSystem_->getEmitter(i)->setEnabled(enable);
    179                 }
    180         }
     175  void ParticleInterface::switchEnable(){
     176    bool enable=(!(particleSystem_->getEmitter(0)->getEnabled()));
     177    for(int i=0; i<numberOfEmitters_; i++) {
     178      particleSystem_->getEmitter(i)->setEnabled(enable);
     179    }
     180  }
    181181
    182182}
Note: See TracChangeset for help on using the changeset viewer.