00001 #ifndef rigid_H
00002 #define rigid_H
00003
00004 #include <vector>
00005 #include <string>
00006
00007 #include "movable.hpp"
00008 #include "objloader.hpp"
00009 #include "misc.hpp"
00010 #include "light.hpp"
00011
00012
00013
00015
00020 class rigid:public movable
00021 {
00022 public:
00023 rigid();
00024 rigid(string objFile, float STEP = 0.0, objloader::coordSystem COORD_SYSTEM = objloader::CARTESIAN);
00025 ~rigid();
00026
00028 void draw(void);
00030 void drawDim(vector<light*> lights);
00032 void update(int updateTimeMs);
00033
00035 void makeList(void);
00036
00038 void getBoundingBox(void);
00039
00041 int counter;
00042
00043 bool drawSurface;
00044 bool drawInteriorPoints;
00045 bool drawInteriorSpheres;
00046
00047 std::vector<vector3f> iStack;
00048
00049 private:
00051
00052
00054 std::vector<vector3f> vertices;
00056 std::vector<vector3f> normals;
00058 std::vector<material*> mtls;
00059
00061 vector3f centerOfMass;
00062
00064
00065
00067 int listNum;
00068
00070
00072 bool translucent;
00073 };
00074 #endif //rigid_h