[╯°□°]╯︵┻━┻
Goldberg Simulator 20000
 All Classes Functions Variables
Special.h
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