00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_VisibilityPatchQuadh_INCLUDE__)
00022 #define __INCLUDE_VisibilityPatchQuadh_INCLUDE__
00023
00024 #include <land/VisibilityPatchInfo.h>
00025 #include <common/Vector.h>
00026
00027 class VisibilityPatchGrid;
00028 class VisibilityPatchQuad
00029 {
00030 public:
00031 VisibilityPatchQuad();
00032 ~VisibilityPatchQuad();
00033
00034 void setLocation(VisibilityPatchGrid *patchGrid, int x, int y, int size,
00035 int mapwidth, int mapheight);
00036 void calculateVisibility(VisibilityPatchInfo &patchInfo, Vector &cameraPos);
00037
00038 protected:
00039 int x_, y_;
00040 int size_;
00041 Vector position_;
00042
00043 WaterVisibilityPatch *waterVisibilityPatch_;
00044 LandVisibilityPatch *landVisibilityPatch_;
00045 TargetVisibilityPatch *targetVisibilityPatch_;
00046 VisibilityPatchQuad *topLeft_, *topRight_;
00047 VisibilityPatchQuad *botLeft_, *botRight_;
00048
00049 void setNotVisible(VisibilityPatchInfo &patchInfo, Vector &cameraPos);
00050 void setVisible(VisibilityPatchInfo &patchInfo, Vector &cameraPos);
00051
00052 };
00053
00054 #endif // __INCLUDE_VisibilityPatchQuadh_INCLUDE__