Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 6652 in orxonox.OLD for trunk/src/lib/particles


Ignore:
Timestamp:
Jan 22, 2006, 4:33:43 PM (19 years ago)
Author:
bensch
Message:

trunk: dot-particles

Location:
trunk/src/lib/particles
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/particles/Makefile.am

    r6629 r6652  
    1111                        spark_particles.cc \
    1212                        model_particles.cc \
     13                        dot_particles.cc \
    1314                        \
    1415                        quick_animation.cc
     
    2223                        spark_particles.h \
    2324                        model_particles.h \
     25                        dot_particles.h \
    2426                        \
    2527                        quick_animation.h
  • trunk/src/lib/particles/dot_particles.cc

    r6651 r6652  
    1616#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GRAPHICS
    1717
    18 #include "sprite_particles.h"
     18#include "dot_particles.h"
    1919
    2020#include "load_param.h"
     
    2828
    2929
    30 CREATE_FACTORY(SpriteParticles, CL_SPRITE_PARTICLES);
     30CREATE_FACTORY(DotParticles, CL_SPRITE_PARTICLES);
    3131
    32 SHELL_COMMAND(texture, SpriteParticles, setMaterialTexture)
     32SHELL_COMMAND(texture, DotParticles, setMaterialTexture)
    3333    ->defaultValues(1, "maps/evil-flower.png");
    3434
     
    3838 *  standard constructor
    3939 * @param maxCount the Count of particles in the System
    40  * @param type The Type of the SpriteParticles
     40 * @param type The Type of the DotParticles
    4141*/
    42 SpriteParticles::SpriteParticles (unsigned int maxCount)
     42DotParticles::DotParticles (unsigned int maxCount)
    4343  : ParticleSystem(maxCount)
    4444{
     
    5050 * @param root: the XML-element to load from
    5151 */
    52 SpriteParticles::SpriteParticles(const TiXmlElement* root)
     52DotParticles::DotParticles(const TiXmlElement* root)
    5353{
    5454  this->init();
     
    6060 *  standard deconstructor
    6161*/
    62 SpriteParticles::~SpriteParticles()
     62DotParticles::~DotParticles()
    6363{
    6464  // deleting all the living Particles
     
    8080
    8181/**
    82  * @brief initializes the SpriteParticles with default values
     82 * @brief initializes the DotParticles with default values
    8383*/
    84 void SpriteParticles::init()
     84void DotParticles::init()
    8585{
    86   this->setClassID(CL_SPRITE_PARTICLES, "SpriteParticles");
     86  this->setClassID(CL_SPRITE_PARTICLES, "DotParticles");
    8787
    8888  this->material.setDiffuseMap("maps/radial-trans-noise.png");
     
    9494 * @param root the XML-element to load from.
    9595 */
    96 void SpriteParticles::loadParams(const TiXmlElement* root)
     96void DotParticles::loadParams(const TiXmlElement* root)
    9797{
    9898  ParticleSystem::loadParams(root);
    9999
    100   LoadParam(root, "texture", this, SpriteParticles, setMaterialTexture);
     100  LoadParam(root, "texture", this, DotParticles, setMaterialTexture);
    101101}
    102102
    103103/**
    104104 * @brief sets the Texutre that is placed onto the particles
    105  * @param textureFile the Texture to load onto these SpriteParticles
     105 * @param textureFile the Texture to load onto these DotParticles
    106106 */
    107 void SpriteParticles::setMaterialTexture(const char* textureFile)
     107void DotParticles::setMaterialTexture(const char* textureFile)
    108108{
    109109  this->material.setDiffuseMap(textureFile);
     
    117117 * This is just the fastest Way to do this, but will most likely be changed in the future.
    118118 */
    119 void SpriteParticles::draw() const
     119void DotParticles::draw() const
    120120{
    121121  glPushAttrib(GL_ENABLE_BIT);
    122122
    123   Particle* drawPart = particles;
    124123
    125124  GLboolean checkLight = false;
     
    133132  glBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);
    134133
     134  Particle* drawPart = particles;
    135135  //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_ENV_MODE, GL_MODULATE);
    136136
    137 
     137  glBegin(GL_POINTS);
    138138  while (likely(drawPart != NULL))
    139139  {
    140140    glColor4fv(drawPart->color);
    141     //! @todo implement a faster code for the look-at Camera algorithm.
    142 
    143     const PNode* camera = State::getCamera();  //!< @todo MUST be different
    144     Vector cameraPos = camera->getAbsCoor();
    145     Vector cameraTargetPos = State::getCameraTarget()->getAbsCoor();
    146     Vector view = cameraTargetPos - cameraPos;
    147     Vector up = Vector(0, 1, 0);
    148     up = camera->getAbsDir().apply(up);
    149     Vector h = up.cross(view);
    150     Vector v = h.cross(view);
    151     h.normalize();
    152     v.normalize();
    153     v *= .5 * drawPart->radius;
    154     h *= .5 * drawPart->radius;
    155 
    156     glBegin(GL_TRIANGLE_STRIP);
    157     glTexCoord2i(1, 1);
    158     glVertex3f(drawPart->position.x - h.x - v.x,
    159                drawPart->position.y - h.y - v.y,
    160                drawPart->position.z - h.z - v.z);
    161     glTexCoord2i(0, 1);
    162     glVertex3f(drawPart->position.x - h.x + v.x,
    163                drawPart->position.y - h.y + v.y,
    164                drawPart->position.z - h.z + v.z);
    165     glTexCoord2i(1, 0);
    166     glVertex3f(drawPart->position.x + h.x - v.x,
    167                drawPart->position.y + h.y - v.y,
    168                drawPart->position.z + h.z - v.z);
    169     glTexCoord2i(0, 0);
    170     glVertex3f(drawPart->position.x + h.x + v.x,
    171                drawPart->position.y + h.y + v.y,
    172                drawPart->position.z + h.z + v.z);
    173 
    174     glEnd();
     141    glVertex3f(drawPart->position.x, drawPart->position.y, drawPart->position.z);
    175142
    176143    drawPart = drawPart->next;
    177144  }
     145  glEnd();
    178146  glDepthMask(GL_TRUE);
    179147  glPopAttrib();
  • trunk/src/lib/particles/dot_particles.h

    r6651 r6652  
    11/*!
    2  * @file sprite_particles.h
     2 * @file dot_particles.h
    33
    44*/
    55
    6 #ifndef _SPRITE_PARTICLE_SYSTEM_H
    7 #define _SPRITE_PARTICLE_SYSTEM_H
     6#ifndef _DOT_PARTICLE_SYSTEM_H
     7#define _DOT_PARTICLE_SYSTEM_H
    88
    99#include "particle_system.h"
     
    1111
    1212//! A class to handle ParticleSystems
    13 class SpriteParticles : public ParticleSystem
     13class DotParticles : public ParticleSystem
    1414{
    1515
    1616public:
    17   SpriteParticles(unsigned int maxCount = PARTICLE_DEFAULT_MAX_COUNT);
    18   SpriteParticles(const TiXmlElement* root);
    19   virtual ~SpriteParticles();
     17  DotParticles(unsigned int maxCount = PARTICLE_DEFAULT_MAX_COUNT);
     18  DotParticles(const TiXmlElement* root);
     19  virtual ~DotParticles();
    2020
    2121  virtual void loadParams(const TiXmlElement* root);
     
    3535};
    3636
    37 #endif /* _SPRITE_PARTICLE_SYSTEM_H */
     37#endif /* _DOT_PARTICLE_SYSTEM_H */
Note: See TracChangeset for help on using the changeset viewer.