Main Page | Class Hierarchy | Compound List | File List | Compound Members

DParticleSystem.h

00001 /*
00002   Debris - A 3D-Space-Shooter Game based on OpenGL
00003   Copyright (C) 2002  Daniel Wagner <daniel@kwaxi.org> and
00004   Sebastian Zambal <e9826978@student.tuwien.ac.at>
00005 
00006   file: DObject3D.h
00007 */
00008 
00009 #pragma once
00010 
00011 #include "debris.h"
00012 
00013 typedef float* DParticleVector;
00014 
00016 
00019 class DParticleSystem: public DObject3D {
00020 private:
00022         DParticleVector *vertex1;
00024         DParticleVector *particleVelocity;
00026         float *lifeTime;
00028         GLuint particleCount;
00029 public:
00031         bool active;
00033         virtual void Draw(void);
00035         virtual void Move(void);
00037         virtual void Init(void);
00039         DParticleSystem(DSystem *system);
00041         ~DParticleSystem(void);
00042 };
00043 
00044 typedef DParticleSystem *DParticleSystemPtr;
00045 
00047 
00050 class DExplosion: public DParticleSystem {
00051 private:
00053         DParticleVector *vertex1;
00054         DParticleVector *vertex2;
00055         DParticleVector *vertex3;
00057         DParticleVector *particleVelocity;
00059         float *lifeTime;
00061         float centerLifeTime;
00063         GLuint particleCount;
00064 public:
00066         GLuint particleTex1, particleTex2, particleTex3;
00068         bool active;
00070         virtual void Draw(void);
00072         virtual void DrawWireFrame(void);
00074         virtual void Move(void);
00076         virtual void Init(void);
00078         DExplosion(DSystem *system);
00080         ~DExplosion(void);
00081 };
00082 
00083 typedef DExplosion *DExplosionPtr;
00084 
00086 
00089 class DVaporTrail : public DParticleSystem {
00090 private:
00092         DParticleVector *planes;
00094         float *lifeTime;
00096         int particleCount;
00098         DObject3D *source;
00100         float intensity;
00102         float intensityCounter;
00104         float *dist;
00105         int   *index;
00107         float *matrix;
00108 public:
00110         int current;
00112         GLuint particleTex1;
00114         bool active;
00116         virtual void Draw(void);
00118         virtual void DrawWireFrame(void);
00120         virtual void Move(void);
00122         virtual void Init(DObject3D *obj, float intensity);
00124         DVaporTrail(DSystem *system);
00126         ~DVaporTrail(void);
00127 };
00128 
00129 typedef DVaporTrail *DVaporTrailPtr;

Generated on Thu Jun 19 21:55:40 2003 for Debris by doxygen 1.3.2