00001 #ifndef __POSITION_H 00002 #define __POSITION_H 00003 00004 #include <GL/gl.h> 00005 00007 00014 class Position 00015 { 00016 public: 00018 00021 Position(); 00023 00026 virtual ~Position(); 00028 00033 virtual void calculatePosition() = 0; 00035 00040 virtual void updateRelations() = 0; 00042 00047 int getX(); 00049 00054 int getY(); 00056 00061 int getZ(); 00063 00068 virtual GLfloat getTrueX() = 0; 00070 00075 virtual GLfloat getTrueY() = 0; 00077 00082 virtual GLfloat getTrueZ() = 0; 00084 00088 int getSizeX(); 00090 00094 int getSizeY(); 00096 00100 int getSizeZ(); 00101 virtual int getTrueSizeX() = 0; 00102 virtual int getTrueSizeY() = 0; 00103 virtual int getTrueSizeZ() = 0; 00104 int getMinSizeX(); 00105 int getMinSizeY(); 00106 int getMinSizeZ(); 00107 virtual int getMinTrueSizeX() = 0; 00108 virtual int getMinTrueSizeY() = 0; 00109 virtual int getMinTrueSizeZ() = 0; 00110 int getMaxSizeX(); 00111 int getMaxSizeY(); 00112 int getMaxSizeZ(); 00113 virtual int getMaxTrueSizeX() = 0; 00114 virtual int getMaxTrueSizeY() = 0; 00115 virtual int getMaxTrueSizeZ() = 0; 00116 00117 protected: 00118 GLfloat location[3]; 00119 Position *parentLoc; 00120 Position ***relatives; 00121 int *numRelatives; 00122 int size[3][3]; 00123 }; 00124 00125 enum 00126 { 00127 Xcoord = 0, 00128 Ycoord = 1, 00129 Zcoord = 2 00130 }; 00131 00132 enum 00133 { 00134 Up = 1, 00135 Right = 2, 00136 Down = 3, 00137 Left = 4 00138 }; 00139 00140 #endif
1.3.6