00001 #ifndef GD_OBJET_H 00002 #include "GD_Objet.h" 00003 #endif 00004 00005 #ifndef CONTAINER_H 00006 #define CONTAINER_H 00007 00012 #define IS_CONTAINER(gdobjet) (CONTAINER==(gdobjet->getType()/TYPERANGE)*TYPERANGE) 00013 00019 class Container : public GD_Objet { 00020 00021 protected: 00022 /*********************************************************/ 00024 list<GD_Objet*> gdobjets; 00025 00027 dWorldID monde; 00029 dSpaceID espace; 00032 dJointGroupID contactjointgroup; 00033 00034 public: 00035 /*********************************************************/ 00037 00038 00044 Container ( Container* container=0 ); 00045 00050 virtual ~Container ( void ); 00051 00053 /*********************************************************/ 00055 00056 00058 00059 dSpaceID getSpaceID ( void ); 00060 00062 00063 dWorldID getWorldID ( void ); 00064 00069 typedef list<GD_Objet *>::iterator Container::iterator; 00070 00081 Container::iterator begin(void); 00082 00087 Container::iterator end(void); 00088 00095 void getListOfPropertyOfObjetsIn ( list<property_t> *properties, frustum_t *frustum=0); 00096 00103 void getListOfObjetsIn ( list<GD_Objet*> *_gdobjets, frustum_t *frustum=0); 00104 00110 void addGDObjet ( GD_Objet *gdobjet ); 00111 00117 void remGDObjet ( GD_Objet *gdobjet ); 00118 00120 /*********************************************************/ 00125 00126 void setPosition ( double *position ) ; 00127 void getPosition ( double *position ) ; 00128 00129 void setRotation ( double *rotation ) ; 00130 void getRotation ( double *rotation ) ; 00131 00132 void setEchelle (double* echelle) ; 00133 void getEchelle (double* echelle) ; 00134 00135 void getAABB ( double *aabb ); 00136 00138 /*********************************************************/ 00139 }; 00140 00141 #endif