VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfTerrain.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include <vrfGuiCore/vrfGuiCore.h>
15 #include <vrvCore/DtTerrain.h>
16 #include <vrvCore/DtInputDriver.h>
19 
20 namespace makVrv
21 {
22  class DtCoordinateSystem;
23 }
24 
25 class Coordinate_System;
26 
27 namespace MAKVRinTerra
28 {
29  class DtFeatureDatabase;
30 }
31 
32 namespace makVrf
33 {
34 
37  {
38  public:
40  DtVrfTerrain(makVrv::DtDe& de, makVrv::DtAgentManagerInterface& sceneManagerInterface);
41 
43  virtual ~DtVrfTerrain() override;
44 
46  boost::signals2::signal<void (const makArchives::DtTerrainRecord&)> signal_terrainRecordSet;
47  boost::signals2::signal<void ()> signal_navigationAreasCleared;
48 
50  boost::signals2::signal<void (const DtFilename&)> signal_simTerrainLoaded;
51 
52  virtual void setFromRecord(const makArchives::DtTerrainRecord& r, bool clearFirst) override;
53 
54  virtual const makArchives::DtTerrainRecord::GenericRecords& navigationAreas() const;
55 
57  virtual MAKVRinTerra::DtFeatureDatabase& featureDatabase();
58  virtual const MAKVRinTerra::DtFeatureDatabase& featureDatabase() const;
59 
60  virtual void removeNavigationArea(const std::string&);
61  virtual void addNavigationArea(const std::string& area);
62  virtual void addNavigationArea(const makArchives::DtGenericTerrainRecord& record);
63  virtual void changeNavigationAreaPath(const std::string& from, const std::string& to);
64  virtual bool hasNavigationArea(const DtFilename&) const;
65 
66  bool navigationAreasModified() const { return myNavigationAreasModified; };
67  virtual void clearNavigationAreasModified() { myNavigationAreasModified = false; };
68  virtual void clearNavigationAreas();
69 
71  static Coordinate_System* createCoordinateSystemRef( const makVrv::DtCoordinateSystem& coodSysIn );
72 
73  virtual void getRecord(makArchives::DtTerrainRecord& rec) const override;
74 
76  virtual makVrv::DtFeatureLayer* findFeatureLayerNoPath(const std::string& featureLayerFilename);
77 
78  virtual const DtFilename& simulationTerrain() const
79  {
80  return mySimulationTerrain;
81  }
82 
84  {
85  return myNavigationAreasAreOnSimulationTerrain;
86  }
87 
89  virtual std::string navigationAreaTerrainFilename() const;
90 
91  virtual void getSimulationTerrainRecord(makArchives::DtTerrainRecord&) const;
92 
96  virtual bool loadSimulationTerrain(const DtFilename&);
97 
99  virtual void clearSimTerrain();
100 
102  virtual void clearGuiTerrain();
103 
107  virtual void setSignalNewNavigationAreas(bool);
109  {
110  return mySignalNewNavigationAreas;
111  }
112 
114  virtual makVrv::DtCoordinateSystem& navigationAreasCoordinateSystem() const;
115 
116  virtual void setTerrainConfigurationFilename(const std::string&);
117 
119  virtual void signalNavigationAreasUpdated();
120 
121  DtTerrainInterfaceConfig& configurationOptions();
122 
123  protected:
124  virtual void setNavigationAreasFromTerrainRecord(const makArchives::DtTerrainRecord& r,
126 
129  virtual void setGenericRecords(makArchives::DtTerrainRecord& rec,
131  const makArchives::DtTerrainRecord::GenericRecords& navigationAreas) const;
132 
134  virtual bool loadAerodromeFeatures(const std::string&);
135 
136  protected:
141 
143 
148 
150 
152  std::unique_ptr<MAKVRinTerra::DtFeatureDatabase> myFeatureDatabase;
153 
156  };
157 
160  {
161  public:
163  {
164  return new DtVrfTerrain(de, agentManager);
165  }
166  };
167 
170  {
171  public:
174  const std::string& instanceName );
175 
177  virtual ~DtVrfInputDriver() override;
178 
180  virtual void setChangeCurrentChannelOnMouseMove(bool);
182  {
183  return myChangeCurrentChannelOnMouseMove;
184  }
185 
186  virtual bool processMouseEvent(const makVrv::DtMouseEvent& mouseEvent, makVrv::DtChannel* channel) override;
187 
188  protected:
190  };
191 
193  {
194  public:
197 
199  virtual ~DtVrfInputDriverCreator() override;
200 
202  virtual makVrv::DtInputDriver* create(makVrv::DtAgentManager& sm) override;
203  };
204 }
DtTerrainInterfaceConfig myConfig
Definition: vrfTerrain.h:154
The feature layer is a type of terrain layer which contains features, such as points, lines, areas, and props created from them.
Definition: DtFeatureLayer.h:25
Subclass to allow the channel to change on mouse movement.
Definition: vrfTerrain.h:169
Creator class for the DtInputDriver.
Definition: DtInputDriver.h:467
Class DtTerrainInterfaceConfig is a readable-writable class holding terrain interface configuration o...
Definition: terrainInterfaceConfig.h:33
bool changeCurrentChannelOnMouseMove() const
Definition: vrfTerrain.h:181
std::unique_ptr< MAKVRinTerra::DtFeatureDatabase > myFeatureDatabase
Definition: vrfTerrain.h:152
DtGenericTerrainRecords allow the VR-Forces terrainInterface library to instantiate and configure the...
Definition: DtGenericTerrainRecord.h:34
makArchives::DtTerrainRecord::GenericRecords myGenericGuiRecords
Definition: vrfTerrain.h:139
makVrv::DtSignalConnectionManager myConnections
Definition: vrfTerrain.h:151
makArchives::DtTerrainRecord mySimulationTerrainRecord
Definition: vrfTerrain.h:142
makArchives::DtTerrainRecord::GenericRecords myGenericSimRecords
Definition: vrfTerrain.h:140
Creator.
Definition: vrfTerrain.h:159
bool mySignalNewNavigationAreas
Definition: vrfTerrain.h:149
Extension of DtVrvTerrain that sends a signal when the terrain is set from record.
Definition: vrfTerrain.h:36
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Definition: vrfTerrain.h:192
Contains makVrv::DtTerrain class.
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:19
std::string myTerrainOptionsFilename
Definition: vrfTerrain.h:155
The abstract Channel Class.
Definition: DtChannel.h:35
std::list< DtGenericTerrainRecord > GenericRecords
Definition: DtTerrainRecord.h:36
virtual void clearNavigationAreasModified()
Definition: vrfTerrain.h:67
Definition: coordSystem.h:54
Record of a VR-Vantage terrain Contains: Terrain coordinate system Terrain patches Feature layers Ter...
Definition: DtTerrainRecord.h:29
DtFilename mySimulationTerrain
Definition: vrfTerrain.h:144
boost::signals2::signal< void(const makArchives::DtTerrainRecord &)> signal_terrainRecordSet
Signal sent.
Definition: vrfTerrain.h:46
This class&#39;s main responsibility is to handle keyboard and mouse events from OSG (Qt events are route...
Definition: DtInputDriver.h:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The terrain creator for the DtTerrain class.
Definition: DtTerrain.h:486
makArchives::DtTerrainRecord::GenericRecords mySimNavigationAreas
Definition: vrfTerrain.h:138
boost::signals2::signal< void()> signal_navigationAreasCleared
Definition: vrfTerrain.h:47
boost::signals2::signal< void(const DtFilename &)> signal_simTerrainLoaded
Signal sent when a sim terrain is loaded.
Definition: vrfTerrain.h:50
Contains makVrv::DtInputDriver class.
Definition: featureContext.h:50
The DtAgentManager manages the distributed scene object framework. This includes the objects and upda...
Definition: DtAgentManager.h:38
bool myNavigationAreasAreOnSimulationTerrain
Definition: vrfTerrain.h:145
virtual makVrv::DtTerrain * create(makVrv::DtDe &de, makVrv::DtAgentManagerInterface &agentManager) override
Create a DtTerrain.
Definition: vrfTerrain.h:162
bool signalNewNavigationAreas() const
Definition: vrfTerrain.h:108
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
bool myNavigationAreasModified
Definition: vrfTerrain.h:146
Base class to provide boost signal/slot management.
virtual bool navigationAreasAreOnSimulationTerrain() const
Definition: vrfTerrain.h:83
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:33
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:76
bool myChangeCurrentChannelOnMouseMove
Definition: vrfTerrain.h:189
makVrv::DtCoordinateSystem * mySimulationNavigationCoordinateSystem
Definition: vrfTerrain.h:147
makArchives::DtTerrainRecord::GenericRecords myGuiNavigationAreas
Definition: vrfTerrain.h:137
DtTerrain is a facade around terrain functionality.
Definition: DtTerrain.h:57
bool navigationAreasModified() const
Definition: vrfTerrain.h:66
virtual const DtFilename & simulationTerrain() const
Definition: vrfTerrain.h:78

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)