//the numbers are the dimensions of the bounding box //of the ellipsoids corresponding to each body part #define TORSO_WIDTH 2.0 #define TORSO_HEIGHT 3.0 #define TORSO_DEPTH 0.8 #define UPPER_ARM_WIDTH 0.6 #define UPPER_ARM_HEIGHT 1.5 #define UPPER_ARM_DEPTH 0.6 #define LOWER_ARM_WIDTH 0.5 #define LOWER_ARM_HEIGHT 1.5 #define LOWER_ARM_DEPTH 0.5 #define HEAD_WIDTH 1.2 #define HEAD_HEIGHT 1.5 #define HEAD_DEPTH 1 #define NECK_WIDTH 0.5 #define NECK_HEIGHT 0.5 #define NECK_DEPTH 0.5 #define SHOULDER_WIDTH 0.5 #define SHOULDER_HEIGHT 0.5 #define SHOULDER_DEPTH 0.5 #define HIP_WIDTH 2.0 #define HIP_HEIGHT 1.0 #define HIP_DEPTH 0.8 #define UPPER_LEG_WIDTH 0.8 #define UPPER_LEG_HEIGHT 2.5 #define UPPER_LEG_DEPTH 0.6 #define LOWER_LEG_WIDTH 0.7 #define LOWER_LEG_HEIGHT 2.0 #define LOWER_LEG_DEPTH 0.4 #include #include #include using namespace std; class animation_handler { vector data; public: typedef vector::iterator iterator; animation_handler(char *filename) { ifstream inf(filename); if(!inf) { cerr<<"Error loading file: "<>a>>b>>c>>d>>e>>f>>g>>h>>i>>j>>k>>l>>m; float *angles; while(inf) { angles=new float[13]; angles[0]=a; angles[1]=b; angles[2]=c; angles[3]=d; angles[4]=e; angles[5]=f; angles[6]=g; angles[7]=h; angles[8]=i; angles[9]=j; angles[10]=k; angles[11]=l; angles[12]=m; data.push_back(angles); //cerr<>a>>b>>c>>d>>e>>f>>g>>h>>i>>j>>k>>l>>m; } } iterator begin() { return data.begin(); } iterator end() { return data.end(); } };