00001 00006 #ifndef __VECTORDS_H__ 00007 #define __VECTORDS_H__ 00008 00009 #include <vector> 00010 #include <iostream> 00011 00012 #ifdef __APPLE__ 00013 #include <GraphicsLib/Point3.h> 00014 #include <GraphicsLib/ThreadTimer.h> 00015 #else 00016 #include "ThreadTimer.h"; 00017 #include "Point3.h" 00018 #endif 00019 00020 #include "DataStructure.h" 00021 #include "Particle.h" 00022 #include "CollisionObject.h" 00023 00024 #include "Debugger.h" 00025 00026 00027 namespace ParticleSystems { 00029 typedef std::vector<Particle *> allP; 00030 00032 typedef std::vector<Particle *>::iterator pAllItt; 00033 00035 typedef std::vector<Particle *> dead; 00036 00038 typedef std::vector<Particle *>::iterator allDeadItt; 00039 00041 typedef std::vector<CollisionObject *> cObjects; 00042 00044 typedef std::vector<CollisionObject *>::iterator allcObjects; 00045 00047 00053 class VectorDS : public DataStructure { 00054 00055 public: 00056 00058 00061 VectorDS(); 00062 00064 00067 virtual ~VectorDS(); 00068 00070 00074 virtual void addParticles(Particle *particle); 00075 00077 00080 virtual void killParticles(); 00081 00083 00086 virtual void evolve(); 00087 00089 00095 virtual bool positionCheck(GraphicsLib::Point3 pos); 00096 00098 00102 virtual void draw(); 00103 00105 00110 virtual int numParticles(); 00111 00113 00118 virtual bool hasDead(); 00119 00121 00127 virtual Particle* getDead(); 00128 00130 00134 virtual void addCollisionObject(CollisionObject *co); 00135 00137 00141 virtual void deleteCollisionObject(CollisionObject *co); 00142 00144 00147 allP particles; 00148 00150 00153 dead deadParticles; 00154 00156 00159 cObjects collisionObjects; 00160 00161 }; 00162 } 00163 #endif 00164 00165