00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_WaterVisibilityPatchh_INCLUDE__)
00022 #define __INCLUDE_WaterVisibilityPatchh_INCLUDE__
00023
00024 #include <common/Vector.h>
00025
00026 class MipMapPatchIndexs;
00027 class MipMapPatchIndex;
00028
00029 class WaterVisibilityPatch
00030 {
00031 public:
00032 WaterVisibilityPatch();
00033 ~WaterVisibilityPatch();
00034
00035 void setLocation(int x, int y,
00036 int patchX, int patchY,
00037 WaterVisibilityPatch *leftPatch,
00038 WaterVisibilityPatch *rightPatch,
00039 WaterVisibilityPatch *topPatch,
00040 WaterVisibilityPatch *bottomPatch);
00041 bool setVisible(Vector &cameraPos);
00042 void setNotVisible();
00043
00044 int getVisibilityIndex() { return visible_?visibilityIndex_:-1; }
00045 int getPatchX() { return patchX_; }
00046 int getPatchY() { return patchY_; }
00047 int getPatchIndex() { return patchIndex_; }
00048 Vector &getOffset() { return offset_; }
00049 Vector &getPosition() { return position_; }
00050
00051 WaterVisibilityPatch *getLeftPatch() { return leftPatch_; }
00052 WaterVisibilityPatch *getRightPatch() { return rightPatch_; }
00053 WaterVisibilityPatch *getTopPatch() { return topPatch_; }
00054 WaterVisibilityPatch *getBottomPatch() { return bottomPatch_; }
00055
00056 protected:
00057 int x_, y_;
00058 int patchX_, patchY_, patchIndex_;
00059 int visibilityIndex_;
00060 bool visible_;
00061 Vector offset_, position_;
00062 WaterVisibilityPatch *leftPatch_;
00063 WaterVisibilityPatch *rightPatch_;
00064 WaterVisibilityPatch *topPatch_;
00065 WaterVisibilityPatch *bottomPatch_;
00066 };
00067
00068 #endif // __INCLUDE_WaterVisibilityPatchh_INCLUDE__