![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2006 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: terrainGridLineDrawer.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef TERRAINGRIDLINEDRAWER_H 00013 #define TERRAINGRIDLINEDRAWER_H 00014 00015 #include "drawertdb/drawertdbDefines.h" 00016 #include "drawertdb/terrainDrawer.h" 00017 #include "drawerNative/gridLineDrawer.h" 00018 #include <QtGui/QColor> 00019 00020 class DtPrimitiveDrawer; 00021 class DtViewportExtents; 00022 class DtTerrainDatabase; 00023 class DtExtent; 00024 class DtHomogeneousTransfMatrix; 00025 class DtPoint; 00026 class DtCoordinateSystem; 00027 00029 class DT_DLL_drawertdb DtTerrainGridLineDrawer : public DtTerrainDrawer 00030 { 00031 public: 00032 DtTerrainGridLineDrawer(); 00033 DtTerrainGridLineDrawer(const DtTerrainGridLineDrawer&); 00034 00035 virtual ~DtTerrainGridLineDrawer(); 00036 00041 DtTerrainGridLineDrawer& operator=(const DtTerrainGridLineDrawer&); 00042 00043 void setManualGridLineFrequency(double d); 00044 double manualGridLineFrequency() const; 00045 00047 void setManualMode(bool); 00048 bool manualMode() const; 00049 00050 void setGridLineColor(const QColor&); 00051 const QColor& gridLineColor() const; 00052 00053 void setGridLineLabelColor(const QColor&); 00054 const QColor& gridLineLabelColor() const; 00055 00058 void setCoordinateSystem(const DtCoordinateSystem*); 00059 const DtCoordinateSystem* coordinateSystem() const; 00060 00061 void setAutoGridLineFrequency(int); 00062 int autoGridLineFrequency() const; 00063 00064 static DtTerrainGridLineDrawer* create(); 00065 00067 virtual void drawGridLines(const DtTerrainDatabase*, const DtViewportExtents*, DtPrimitiveDrawer* painter); 00068 00070 void setDrawScale(DtGridLineDrawer::DtScaleType); 00071 DtGridLineDrawer::DtScaleType drawScale() const; 00072 00073 virtual double autoGridLineIncrement(const DtViewportExtents* v, const DtTerrainDatabase* db) const; 00074 virtual int coordinateSystemDrawerType() const; 00075 00076 protected: 00077 virtual void internalDraw(const DtTerrainDatabase*, const DtViewportExtents*, DtPrimitiveDrawer* painter); 00078 00079 virtual void drawManualGridLines(const DtTerrainDatabase* db, const DtViewportExtents* v, DtPrimitiveDrawer* painter); 00080 virtual void drawAutoGridLines(const DtTerrainDatabase* db, const DtViewportExtents* v, DtPrimitiveDrawer* painter); 00081 00082 protected: 00084 virtual void drawGridLines(const DtPoint &vp_min_WC, const DtPoint &vp_max_WC, 00085 double increment, const DtTerrainDatabase* db, const DtViewportExtents* v, DtPrimitiveDrawer* painter); 00086 00088 virtual void createCoordinateSystem(const DtTerrainDatabase*); 00089 00090 virtual void cleanupCoordinateSystem(); 00091 00092 protected: 00093 double myManualGridLineFrequency; 00094 bool myManualMode; 00095 00096 QColor myGridLineColor; 00097 QColor myGridLineLabelColor; 00098 00099 int myAutoGridLineFrequency; 00100 00104 const DtCoordinateSystem* myCoordinateSystem; 00105 bool myOwnsCoordinateSystem; 00106 00107 DtGridLineDrawer::DtScaleType myScaleLine; 00108 }; 00109 00110 inline void DtTerrainGridLineDrawer::setManualGridLineFrequency(double d) 00111 { 00112 myManualGridLineFrequency = d; 00113 } 00114 00115 inline double DtTerrainGridLineDrawer::manualGridLineFrequency() const 00116 { 00117 return myManualGridLineFrequency; 00118 } 00119 00120 inline void DtTerrainGridLineDrawer::setManualMode(bool b) 00121 { 00122 myManualMode = b; 00123 } 00124 00125 inline bool DtTerrainGridLineDrawer::manualMode() const 00126 { 00127 return myManualMode; 00128 } 00129 00130 inline void DtTerrainGridLineDrawer::setGridLineColor(const QColor& c) 00131 { 00132 myGridLineColor = c; 00133 } 00134 00135 inline const QColor& DtTerrainGridLineDrawer::gridLineColor() const 00136 { 00137 return myGridLineColor; 00138 } 00139 00140 inline void DtTerrainGridLineDrawer::setGridLineLabelColor(const QColor& c) 00141 { 00142 myGridLineLabelColor = c; 00143 } 00144 00145 inline const QColor& DtTerrainGridLineDrawer::gridLineLabelColor() const 00146 { 00147 return myGridLineLabelColor; 00148 } 00149 00150 inline void DtTerrainGridLineDrawer::setAutoGridLineFrequency(int c) 00151 { 00152 myAutoGridLineFrequency = c; 00153 } 00154 00155 inline int DtTerrainGridLineDrawer::autoGridLineFrequency() const 00156 { 00157 return myAutoGridLineFrequency; 00158 } 00159 00160 inline const DtCoordinateSystem* DtTerrainGridLineDrawer::coordinateSystem() const 00161 { 00162 return myCoordinateSystem; 00163 } 00164 00165 inline void DtTerrainGridLineDrawer::setDrawScale(DtGridLineDrawer::DtScaleType s) 00166 { 00167 myScaleLine = s; 00168 } 00169 00170 inline DtGridLineDrawer::DtScaleType DtTerrainGridLineDrawer::drawScale() const 00171 { 00172 return myScaleLine; 00173 } 00174 00175 #endif