00001 #ifndef __POSITIONDIR_H 00002 #define __POSITIONDIR_H 00003 00004 #include "position.h" 00005 00006 //#ifndef __DIRTREE_H 00007 class DirTree; 00008 //#endif 00009 00011 // Macros 00013 00014 #define siblingDirs (relatives[0]) 00015 #define childDirs (relatives[1]) 00016 #define numSiblingDirs (numRelatives[0]) 00017 #define numChildDirs (numRelatives[1]) 00018 00020 // Type Definitions 00022 00024 00030 class PositionDir: public Position 00031 { 00032 public: 00033 PositionDir(); 00034 PositionDir(DirTree *owner); 00035 virtual ~PositionDir(); 00036 virtual void calculatePosition(); 00037 virtual void updateRelations(); 00038 virtual float getTrueX(); 00039 virtual float getTrueY(); 00040 virtual float getTrueZ(); 00041 void initFilePosInfo(); 00042 int getFileDirection(); 00043 void updateFilePosInfo(int i, int x, int y, int z); 00044 virtual int getTrueSizeX(); 00045 virtual int getTrueSizeY(); 00046 virtual int getTrueSizeZ(); 00047 int getMaxSiblingSizeX(); 00048 int getMaxSiblingSizeY(); 00049 int getMaxChildSizeX(); 00050 int getMaxChildSizeY(); 00051 void addChildDir(PositionDir *newChild); 00052 void setCollapsed(); 00053 void clearCollapsed(); 00054 virtual int getMinTrueSizeX(); 00055 virtual int getMinTrueSizeY(); 00056 virtual int getMinTrueSizeZ(); 00057 virtual int getMaxTrueSizeX(); 00058 virtual int getMaxTrueSizeY(); 00059 virtual int getMaxTrueSizeZ(); 00060 void sizeTouched(int init); 00061 00062 00063 private: 00064 00065 PositionDir *parentLoc; 00066 DirTree *myOwner; 00067 int numToLeft; 00068 00069 int direction; 00070 int up1Count; 00071 int rightCount; 00072 int leftCount; 00073 int downCount; 00074 int up2Count; 00075 00076 int fileDirection; 00077 int fileUp1Count; 00078 int fileRightCount; 00079 int fileLeftCount; 00080 int fileDownCount; 00081 int fileUp2Count; 00082 00083 int trueSizeX; 00084 int trueSizeY; 00085 int trueSizeZ; 00086 00087 char trueSizeXFlags; 00088 char trueSizeYFlags; 00089 char trueSizeZFlags; 00090 00091 char collapsed; 00092 }; 00093 00094 #endif
1.3.6