[╯°□°]╯︵┻━┻
Goldberg Simulator 20000
|
00001 #ifndef PRJ_SPECIAL_H 00002 #define PRJ_SPECIAL_H 00003 00004 #include "Obj.h" 00005 #include "Force.h" 00006 #include "Ball.h" 00007 00008 class System; 00009 00010 00011 class Obstacle:public Obj, public Force{ 00012 protected: 00013 Vect dim;//x= , y= , z= , w= , ... 00014 set<Obj*> * tabObj; 00015 public: 00016 Obstacle(set<Obj*>& tabObj, Vect const& pos, Vect const& dim, double mass, Vect const& ang=Vect(3) ); 00017 void setDim(Vect const& dim); 00018 Vect getDim(); 00019 void disp(vector<bool> options); 00020 ostream& cdisp(ostream& out); 00021 void force(); 00022 }; 00023 00024 class Ventillateur:public Ball, public Force{ 00025 public: 00026 Ventillateur(set<Obj*>&,Vect const& position,double mass, double rayon,double forceStrength); 00027 00028 void force(); 00029 void disp(vector<bool> options); 00030 ostream& cdisp(ostream& out); 00031 protected: 00032 set<Obj*>* tabObj; 00033 double forceStrength; 00034 }; 00035 00036 /*class Lifetime{ 00037 public: 00038 Lifetime(double); 00039 void setTimeLeft(double ); 00040 double getTimeLeft(); 00041 protected: 00042 double timeleft; 00043 };*/ 00044 00045 00046 /*class BallLife:public Ball{ 00047 public: 00048 BallLife(System* parent,double timeleft,Vect const& pos,double const& mass,double const& rayon, Vect const& dx=Vect(3)); 00049 virtual void disp(vector<bool>); 00050 virtual void update(); 00051 virtual ostream& cdisp(ostream& out){return Ball::cdisp(out);} 00052 Ball::supportPoint; 00053 protected: 00054 System* parent; 00055 double actualR; 00056 public: 00057 void setTimeLeft(double ); 00058 double getTimeLeft(); 00059 protected: 00060 double timeleft; 00061 };*/ 00062 00063 class BallLife:public Ball{ 00064 public: 00065 BallLife(System& myparent, double mytimeleft, Vect const& pos,double mass, double rayon,Vect const& dx); 00066 virtual void disp(vector<bool>); 00067 virtual void update(); 00068 ostream& cdisp(ostream& out); 00069 Ball::supportPoint; 00070 void setTimeLeft(double ); 00071 double getTimeLeft(); 00072 protected: 00073 double timeleft; 00074 System* parent; 00075 double actualR; 00076 }; 00077 00078 00079 class Parallelepiped:public Obj{ 00080 protected: 00081 Vect dim;//x= , y= , z= , w= , ... 00082 public: 00083 void setDim(Vect const& dim); 00084 Vect getDim(); 00085 virtual void disp(vector<bool> options); 00086 virtual ostream& cdisp(ostream& out); 00087 }; 00088 00089 class ParallelepipedCG:public ObjCG{ 00090 00091 }; 00092 00093 00094 class Minigun:public Obj{ 00095 //tire des balles electriques ou non 00096 //paricules dure de vie 00097 }; 00098 00099 class Rocket:public Obj{ 00100 //objet qui se dsintgre en petites paricules 00101 //qui peut ventuellement arrter de se dgrader 00102 //ou exploser 00103 }; 00104 00105 class Bomb:public Obj{ 00106 //explose en plein de balles avec une gtrande temperature 00107 //particules dure de vie, qui peuvent aussi tre des bombes 00108 //avant d'exploser aussi en plus petites bombes 00109 00110 //on peut faire des feux d'artifie avec (vitesse != 0) 00111 }; 00112 00113 00114 00115 00116 class Button:public Obj{ 00117 public: 00118 00119 }; 00120 00121 class Tube{ 00122 //une entree, les objets qui passent dedans suivent un parcours particulier 00123 }; 00124 00125 class Portal:public Obj{ 00126 private: 00127 Portal* link; 00128 double size;//le portal est une petite surface que l'on peut traverser, norme de ang = taille du portal 00129 // la collision entraine un dplacement dans l'autre portal 00130 set<Obj*> tabObj; 00131 public: 00132 Portal(Portal&,Vect const& pos, Vect const& ang, double size); 00133 00134 00135 }; 00136 00137 #endif