VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTerrainPatchObject.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtUniqueID.h>
14 #include <vrvCore/DtTreeRecord.h>
16 
18 
19 #include <matrix/vlVector.h>
20 
21 #include <vrvUtil/signalslib.h>
22 
23 #include <string>
24 
25 namespace makVrv
26 {
27  class DtDe;
28  class DtForestObject;
29  class DtTerrainOverlayOperation;
30  class DtSceneObject;
31  class DtModel;
32 
38  {
39 
40  public:
41 
44  static const double TheEarthRadius;
45 
48 
50  virtual ~DtTerrainPatchObject();
51 
52  //@ name Driver-bound methods:
54 
56  virtual void setTerrainDefinition(const std::string& modelDefinitionName);
57 
59  const std::string& terrainDefinitionName() const;
60 
62  virtual void enableOverlay(int type, const std::string& definition) = 0;
63 
65  virtual void disableOverlay(int type) = 0;
66 
68  virtual void disableAllOverlays() = 0;
69 
71  virtual void setOverlayScale(int type, double x, double y) = 0;
72 
74  virtual void setOverlayOffset(int type, double x, double y) = 0;
75 
77  virtual void setWrapMode(int type, int clamp) = 0;
78 
80  virtual void setBlendMode(int type, int clamp) = 0;
81 
83  virtual void setRasterLayerPosition(int type, int pos) = 0;
84 
86  virtual void setLayerEnabled(const std::string& rule, bool status) = 0;
87 
89  virtual void extractNodes(const std::string& rule, bool isRegEx) = 0;
90 
92  virtual void extractOceanNodes(const std::string& rule, bool isRegEx) = 0;
93 
95  virtual void extractSpeedTreeNodes(const std::string& rule, bool isRegEx, const std::string& modelDefinition) = 0;
96 
98  virtual void realizeExtractedSpeedTrees(const DtVectorTreeRecords& trees) = 0;
99 
101  virtual void setTerrainTreeScaleRandomization(bool isRandomized) = 0;
102 
104  virtual void setTerrainTreeMinScale(double minScale) = 0;
105 
107  virtual void setTerrainTreeMaxScale(double maxScale) = 0;
108 
110  virtual void setTerrainTreeOrientationRandomization(bool isRandomized) = 0;
111 
113  virtual void setIsMinimapOnly(bool isForMinimap) = 0;
114  virtual bool isMinimapOnly() const = 0;
116 
118  virtual std::string overlayDefinition(int type) = 0;
120  virtual std::vector<double> overlayScale(int type) = 0;
121  virtual std::vector<double> overlayOffset(int type) = 0;
122  virtual DtTerrainOverlayOperation defaultOverlay(int type) = 0;
123  virtual DtTerrainOverlayOperation currentOverlay(int type) = 0;
124 
126  virtual void getTerrainExtents(DtVector& nw, DtVector& ne, DtVector& sw, DtVector& se) const = 0;
127 
129  virtual void getBoundingBoxMinMax(DtVector& min, DtVector& max) const = 0;
130 
132  virtual DtVector getDatabaseOrigin() const = 0;
133 
136  virtual int countNodes(const std::string& rule) const = 0;
137 
140  virtual bool getExtractedNodePosition(const std::string& rule, unsigned int index,
141  double& x, double& y, double& z) const = 0;
142 
145  virtual bool getExtractedNodeOrientation(const std::string& rule, unsigned int index,
146  double& x, double& y, double& z, double& w) const = 0;
147 
148  virtual void moveNode(DtSceneObject* object,
149  DtModel* model, const std::string& rule, unsigned int index) = 0;
150 
152  virtual DtUniqueID uniqueID() const;
154 
156  virtual bool isGlobalScaleTerrain() const = 0;
157 
159  virtual bool getTerrainIntersection(double x, double y, double z,
160  double vx, double vy, double vz, double& retX, double& retY, double& retZ) = 0;
161 
165  virtual void clearElevationCache() = 0;
166 
167  virtual void useICO(bool enable) = 0;
168 
169  virtual void setMaxPagedLODs(unsigned int maxPagedLODs) = 0;
170 
172  virtual void postExtractionProcessing() = 0;
173 
176  virtual void toggleVisibility(bool visibility) = 0;
177 
178  protected:
179 
183 
184  };
185 
189  {
190  public:
191 
193  static DtTerrainPatchObjectSignaler& instance(DtDe&);
194 
196  virtual ~DtTerrainPatchObjectSignaler();
197 
200  boost::signalslib::signal<void(DtTerrainPatchObject&)> signal_terrainPatchCreated;
201 
204  boost::signalslib::signal<void(DtTerrainPatchObject&)> signal_terrainDataChanged;
205 
207  boost::signalslib::signal<void(DtTerrainPatchObject&)> signal_terrainPatchAboutToBeDeleted;
208 
210  boost::signalslib::signal<void(DtTerrainPatchObject&, const std::string& rule, std::vector<std::string>)> signal_nodesExtracted;
211 
213  boost::signalslib::signal<void(DtTerrainPatchObject&, bool extracted)> signal_oceanNodesExtracted;
214 
216  boost::signalslib::signal<void(DtTerrainPatchObject&)> signal_osgEarthMapNodeFound;
217 
219  boost::signalslib::signal<void(const DtVectorTreeRecords&, DtTerrainPatchObject&)> signal_realizeSpeedTreesFromRecords;
220 
221  protected:
223  };
224 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::string myTerrainDefinitionName
Definition: DtTerrainPatchObject.h:182
Contains makVrv::DtLightPointManager class.
static const double TheEarthRadius
The Radius of the earth, used to calculate if a terrain has global scale.
Definition: DtTerrainPatchObject.h:44
boost::signalslib::signal< void(DtTerrainPatchObject &)> signal_terrainDataChanged
Emitted when ever the terrain data (Nodes) changes. This happens when terrain is loaded, or when nodes move.
Definition: DtTerrainPatchObject.h:204
boost::signalslib::signal< void(DtTerrainPatchObject &)> signal_terrainPatchAboutToBeDeleted
Emitted when the terrain geometry about to be destroyed.
Definition: DtTerrainPatchObject.h:207
std::vector< DtTreeRecord * > DtVectorTreeRecords
Definition: DtTreeRecord.h:137
A DtTerrainPatchObject contains the methods for loading a file as a terrain. When loading a file as a...
Definition: DtTerrainPatchObject.h:37
boost::signalslib::signal< void(const DtVectorTreeRecords &, DtTerrainPatchObject &)> signal_realizeSpeedTreesFromRecords
Signal when tree nodes are moved from a terrain patch.
Definition: DtTerrainPatchObject.h:219
Contains makVrv::DtVirtualBaseClass class.
boost::signalslib::signal< void(DtTerrainPatchObject &)> signal_terrainPatchCreated
Emitted when the terrain geometry is created. This is NOT emitted when geometry is paged in...
Definition: DtTerrainPatchObject.h:200
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtUniqueID myUniqueID
Definition: DtTerrainPatchObject.h:181
A class specifying a single overlay operation.
Definition: DtTerrainOverlayOperation.h:22
boost::signalslib::signal< void(DtTerrainPatchObject &, bool extracted)> signal_oceanNodesExtracted
Signal when ocean nodes are moved from a terrain patch.
Definition: DtTerrainPatchObject.h:213
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:42
A model which owns a single model instance. A DtModel is a managing container for a single DtModelIns...
Definition: DtModel.h:55
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
The signaler object for the makVrv::DtTerrainPatchObject class.
Definition: DtTerrainPatchObject.h:188
Contains makVrv::DtTreeRecord class.
boost::signalslib::signal< void(DtTerrainPatchObject &)> signal_osgEarthMapNodeFound
Signal when map node is found for a terrain patch.
Definition: DtTerrainPatchObject.h:216
DtDe & myDe
Definition: DtTerrainPatchObject.h:180
Contains DLL export macros.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)