![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2006 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: terrainGdbDrawer.h,v $ $Revision: 1.5 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef TERRAINGDBDRAWER_H 00013 #define TERRAINGDBDRAWER_H 00014 00015 #include "drawertdb/drawertdbDefines.h" 00016 #include "drawertdb/terrainCollectionDrawer.h" 00017 00018 class DtTerrainPolygonDrawer; 00019 class DtTerrainPaperMapDrawer; 00020 class DtTerrainFeatureDrawer; 00021 class DtTerrainWireframeDrawer; 00022 class DtTerrainContourLinesDrawer; 00023 class DtTerrainGridLineDrawer; 00024 class DtTdbDrawerOptions; 00025 class DtCoordinateSystem; 00026 class DtPaperMapDatabase; 00027 00032 class DT_DLL_drawertdb DtTerrainGdbDrawer : public DtCollectionTerrainDrawer 00033 { 00034 public: 00035 DtTerrainGdbDrawer(); 00036 virtual ~DtTerrainGdbDrawer(); 00037 00039 virtual void init(); 00040 00044 virtual void draw(const DtTerrainDatabase*, const DtViewportExtents*, DtPrimitiveDrawer* painter); 00045 00047 virtual void setTerrainDrawerOptions(DtTdbDrawerOptions*); 00048 virtual DtTdbDrawerOptions* terrainDrawerOptions(); 00049 00050 virtual void setCoordinateSystem(const DtCoordinateSystem*); 00051 virtual const DtCoordinateSystem* coordinateSystem() const; 00052 00053 virtual void setPaperMapDatabase(const DtPaperMapDatabase*); 00054 const DtPaperMapDatabase* paperMapDatabase() const; 00055 00056 virtual int coordinateSystemDrawerType() const; 00057 00058 public: 00059 DtTerrainPolygonDrawer* polygonDrawer() const; 00060 DtTerrainPaperMapDrawer* paperMapDrawer() const; 00061 DtTerrainFeatureDrawer* featureDrawer() const; 00062 DtTerrainWireframeDrawer* wireframeDrawer() const; 00063 DtTerrainPolygonDrawer* boundingVolumesDrawer() const; 00064 DtTerrainContourLinesDrawer* contourLinesDrawer() const; 00065 DtTerrainGridLineDrawer* gridLineDrawer() const; 00066 00067 protected: 00070 virtual void createTerrainDrawers(); 00071 00072 virtual DtTerrainPolygonDrawer* createPolygonDrawer() const; 00073 virtual DtTerrainPaperMapDrawer* createPaperMapDrawer() const; 00074 virtual DtTerrainFeatureDrawer* createFeatureDrawer() const; 00075 virtual DtTerrainWireframeDrawer* createWireframeDrawer() const; 00076 virtual DtTerrainPolygonDrawer* createBoundingVolumesDrawer() const; 00077 virtual DtTerrainContourLinesDrawer* createContourLinesDrawer() const; 00078 virtual DtTerrainGridLineDrawer* createGridLineDrawer() const; 00079 00080 virtual DtTdbDrawerOptions* createTerrainDrawerOptions() const; 00081 00082 protected: 00084 virtual void updateDrawersFromOptions(); 00085 00086 virtual void updatePolygonDrawer(); 00087 virtual void updatePaperMapDrawer(); 00088 virtual void updateFeatureDrawer(); 00089 virtual void updateWireframeDrawer(); 00090 virtual void updateBoundingVolumesDrawer(); 00091 virtual void updateContourLinesDrawer(); 00092 virtual void updateGridLineDrawer(); 00093 00094 protected: 00095 DtTerrainPolygonDrawer* myPolygonDrawer; 00096 DtTerrainPaperMapDrawer* myPaperMapDrawer; 00097 DtTerrainFeatureDrawer* myFeatureDrawer; 00098 DtTerrainWireframeDrawer* myWireframeDrawer; 00099 DtTerrainPolygonDrawer* myBoundingVolumesDrawer; 00100 DtTerrainContourLinesDrawer* myContourLinesDrawer; 00101 DtTerrainGridLineDrawer* myGridLineDrawer; 00102 00103 DtTdbDrawerOptions* myTerrainDrawerOptions; 00104 bool myOwnsTerrainDrawerOptions; 00105 00108 const DtCoordinateSystem* myCoordinateSystem; 00109 00111 const DtPaperMapDatabase* myPaperMapDatabase; 00112 }; 00113 00114 inline const DtPaperMapDatabase* DtTerrainGdbDrawer::paperMapDatabase() const 00115 { 00116 return myPaperMapDatabase; 00117 } 00118 00119 inline DtTerrainPolygonDrawer* DtTerrainGdbDrawer::polygonDrawer() const 00120 { 00121 return myPolygonDrawer; 00122 } 00123 00124 inline DtTerrainPaperMapDrawer* DtTerrainGdbDrawer::paperMapDrawer() const 00125 { 00126 return myPaperMapDrawer; 00127 } 00128 00129 inline DtTerrainFeatureDrawer* DtTerrainGdbDrawer::featureDrawer() const 00130 { 00131 return myFeatureDrawer; 00132 } 00133 00134 inline DtTerrainWireframeDrawer* DtTerrainGdbDrawer::wireframeDrawer() const 00135 { 00136 return myWireframeDrawer; 00137 } 00138 00139 inline DtTerrainPolygonDrawer* DtTerrainGdbDrawer::boundingVolumesDrawer() const 00140 { 00141 return myBoundingVolumesDrawer; 00142 } 00143 00144 inline DtTerrainContourLinesDrawer* DtTerrainGdbDrawer::contourLinesDrawer() const 00145 { 00146 return myContourLinesDrawer; 00147 } 00148 00149 inline DtTerrainGridLineDrawer* DtTerrainGdbDrawer::gridLineDrawer() const 00150 { 00151 return myGridLineDrawer; 00152 } 00153 00154 #endif