![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtTerrainPatchObject.h,v $ $Revision: 1.45 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtTerrainPatchObject_H_ 00014 #define DtTerrainPatchObject_H_ 00015 00016 #include <vrvCore/vrvCore.h> 00017 #include <vrvUtil/DtVirtualBaseClass.h> 00018 #include <vrvCore/DtUniqueID.h> 00019 00020 #include <matrix/vlVector.h> 00021 #include <boost/signals.hpp> 00022 #include <string> 00023 00024 00025 00026 namespace makVrv 00027 { 00028 class DtDe; 00029 class DtForestObject; 00030 class DtTerrainOverlayOperation; 00031 class DtSceneObject; 00032 class DtModel; 00033 00038 class DT_DLL_VRVCORE DtTerrainPatchObject 00039 { 00040 00041 public: 00042 00045 static const double TheEarthRadius; 00046 00048 DtTerrainPatchObject(DtDe& de, DtUniqueID id); 00049 00051 virtual ~DtTerrainPatchObject(); 00052 00053 //@ name Driver-bound methods: 00055 00057 virtual void setTerrainDefinition(const std::string& modelDefinitionName); 00058 00060 const std::string& terrainDefinitionName() const; 00061 00063 virtual void enableOverlay(int type, const std::string& definition) = 0; 00064 00066 virtual void disableOverlay(int type) = 0; 00067 00069 virtual void disableAllOverlays() = 0; 00070 00072 virtual void setOverlayScale(int type, double x, double y) = 0; 00073 00075 virtual void setOverlayOffset(int type, double x, double y) = 0; 00076 00078 virtual void setWrapMode(int type, int clamp) = 0; 00079 00081 virtual void setBlendMode(int type, int clamp) = 0; 00082 00084 virtual void setRasterLayerPosition(int type, int pos) = 0; 00085 00087 virtual void setLayerEnabled(const std::string& rule, bool status) = 0; 00088 00090 virtual void extractNodes(const std::string& rule, bool isRegEx) = 0; 00091 00093 00095 00096 virtual std::string overlayDefinition(int type) = 0; 00097 virtual std::vector<double> overlayScale(int type) = 0; 00098 virtual std::vector<double> overlayOffset(int type) = 0; 00099 virtual DtTerrainOverlayOperation defaultOverlay(int type) = 0; 00100 virtual DtTerrainOverlayOperation currentOverlay(int type) = 0; 00101 00103 virtual void getTerrainExtents(DtVector& nw, DtVector& ne, DtVector& sw, DtVector& se) const = 0; 00104 00106 virtual DtVector getDatabaseOrigin() const = 0; 00107 00110 virtual int countNodes(const std::string& rule) const = 0; 00111 00114 virtual bool getExtractedNodePosition(const std::string& rule, unsigned int index, 00115 double& x, double& y, double& z) const = 0; 00116 00119 virtual bool getExtractedNodeOrientation(const std::string& rule, unsigned int index, 00120 double& x, double& y, double& z, double& w) const = 0; 00121 00122 virtual void moveNode(DtSceneObject* object, 00123 DtModel* model,const std::string& rule, unsigned int index) = 0; 00124 00126 virtual DtUniqueID uniqueID() const; 00128 00130 virtual bool isGlobalScaleTerrain() const = 0; 00131 00133 virtual bool getTerrainIntersection(double x, double y, double z, 00134 double vx, double vy, double vz, double& retX, double& retY, double& retZ ) = 0; 00135 00139 virtual void clearElevationCache() = 0; 00140 00141 protected: 00142 00143 DtDe& myDe; 00144 DtUniqueID myUniqueID; 00145 std::string myTerrainDefinitionName; 00146 00147 }; 00148 00151 class DT_DLL_VRVCORE DtTerrainPatchObjectSignaler : public DtVirtualBaseClass 00152 { 00153 public: 00154 00156 static DtTerrainPatchObjectSignaler& instance(DtDe&); 00157 00159 virtual ~DtTerrainPatchObjectSignaler(); 00160 00163 boost::signal<void (DtTerrainPatchObject&)> signal_terrainDataChanged; 00164 00166 boost::signal<void (DtTerrainPatchObject&,const std::string& rule, std::vector<std::string>)> signal_nodesExtracted; 00167 00168 protected: 00169 DtTerrainPatchObjectSignaler(); 00170 }; 00171 } 00172 00173 #endif 00174