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>
18 #include <boost/scoped_ptr.hpp>
20 
21 namespace makVrv
22 {
23  class DtCoordinateSystem;
24 }
25 
26 class Coordinate_System;
27 
28 namespace MAKVRinTerra
29 {
30  class DtFeatureDatabase;
31 }
32 
33 namespace makVrf
34 {
35 
38  {
39  public:
41  DtVrfTerrain(makVrv::DtDe& de, makVrv::DtAgentManagerInterface& sceneManagerInterface);
42 
44  virtual ~DtVrfTerrain();
45 
47  boost::signals2::signal<void (const makArchives::DtTerrainRecord&)> signal_terrainRecordSet;
48  boost::signals2::signal<void ()> signal_navigationAreasCleared;
49 
51  boost::signals2::signal<void (const DtFilename&)> signal_simTerrainLoaded;
52 
53  virtual void setFromRecord(const makArchives::DtTerrainRecord& r, bool clearFirst) override;
54 
55  virtual const makArchives::DtTerrainRecord::GenericRecords& navigationAreas() const;
56 
58  virtual MAKVRinTerra::DtFeatureDatabase& featureDatabase();
59  virtual const MAKVRinTerra::DtFeatureDatabase& featureDatabase() const;
60 
61  virtual void removeNavigationArea(const std::string&);
62  virtual void addNavigationArea(const std::string& area);
63  virtual void addNavigationArea(const makArchives::DtGenericTerrainRecord& record);
64  virtual void changeNavigationAreaPath(const std::string& from, const std::string& to);
65  virtual bool hasNavigationArea(const DtFilename&) const;
66 
67  bool navigationAreasModified() const { return myNavigationAreasModified; };
68  virtual void clearNavigationAreasModified() { myNavigationAreasModified = false; };
69  virtual void clearNavigationAreas();
70 
72  virtual Coordinate_System* createCoordinateSystemRef( const makVrv::DtCoordinateSystem& coodSysIn ) const;
73 
74  virtual void getRecord(makArchives::DtTerrainRecord& rec) const override;
75 
77  virtual makVrv::DtFeatureLayer* findFeatureLayerNoPath(const std::string& featureLayerFilename);
78 
79  virtual const DtFilename& simulationTerrain() const
80  {
81  return mySimulationTerrain;
82  }
83 
85  {
86  return myNavigationAreasAreOnSimulationTerrain;
87  }
88 
90  virtual std::string navigationAreaTerrainFilename() const;
91 
92  virtual void getSimulationTerrainRecord(makArchives::DtTerrainRecord&) const;
93 
97  virtual bool loadSimulationTerrain(const DtFilename&);
98 
100  virtual void clearSimTerrain();
101 
103  virtual void clearGuiTerrain();
104 
108  virtual void setSignalNewNavigationAreas(bool);
110  {
111  return mySignalNewNavigationAreas;
112  }
113 
115  virtual makVrv::DtCoordinateSystem& navigationAreasCoordinateSystem() const;
116 
117  virtual void setTerrainConfigurationFilename(const std::string&);
118 
120  virtual void signalNavigationAreasUpdated();
121 
122  DtTerrainInterfaceConfig& configurationOptions();
123 
124  protected:
125  virtual void setNavigationAreasFromTerrainRecord(const makArchives::DtTerrainRecord& r,
127 
130  virtual void setGenericRecords(makArchives::DtTerrainRecord& rec,
132  const makArchives::DtTerrainRecord::GenericRecords& navigationAreas) const;
133 
135  virtual bool loadAerodromeFeatures(const std::string&);
136 
137  protected:
142 
144 
149 
151 
153  boost::scoped_ptr<MAKVRinTerra::DtFeatureDatabase> myFeatureDatabase;
154 
157  };
158 
161  {
162  public:
164  makVrv::DtAgentManagerInterface& agentManager )
165  {
166  return new DtVrfTerrain(de, agentManager);
167  }
168  };
169 
172  {
173  public:
176  const std::string& instanceName );
177 
179  virtual ~DtVrfInputDriver();
180 
182  virtual void setChangeCurrentChannelOnMouseMove(bool);
184  {
185  return myChangeCurrentChannelOnMouseMove;
186  }
187 
188  virtual bool processMouseEvent( const makVrv::DtMouseEvent& mouseEvent,
189  makVrv::DtChannel* channel );
190 
191  protected:
193  };
194 
196  {
197  public:
200 
202  virtual ~DtVrfInputDriverCreator();
203 
205  virtual makVrv::DtInputDriver* create(makVrv::DtAgentManager& sm);
206  };
207 }
DtTerrainInterfaceConfig myConfig
Definition: vrfTerrain.h:155
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:171
Creator class for the DtInputDriver.
Definition: DtInputDriver.h:467
Class DtTerrainInterfaceConfig is a readable-writable class holding terrain interface configuration o...
Definition: terrainInterfaceConfig.h:32
bool changeCurrentChannelOnMouseMove() const
Definition: vrfTerrain.h:183
DtGenericTerrainRecords allow the VR-Forces terrainInterface library to instantiate and configure the...
Definition: DtGenericTerrainRecord.h:34
makArchives::DtTerrainRecord::GenericRecords myGenericGuiRecords
Definition: vrfTerrain.h:140
makVrv::DtSignalConnectionManager myConnections
Definition: vrfTerrain.h:152
makArchives::DtTerrainRecord mySimulationTerrainRecord
Definition: vrfTerrain.h:143
makArchives::DtTerrainRecord::GenericRecords myGenericSimRecords
Definition: vrfTerrain.h:141
Creator.
Definition: vrfTerrain.h:160
bool mySignalNewNavigationAreas
Definition: vrfTerrain.h:150
Extension of DtVrvTerrain that sends a signal when the terrain is set from record.
Definition: vrfTerrain.h:37
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Definition: vrfTerrain.h:195
Contains makVrv::DtTerrain class.
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:19
std::string myTerrainOptionsFilename
Definition: vrfTerrain.h:156
The abstract Channel Class.
Definition: DtChannel.h:35
std::list< DtGenericTerrainRecord > GenericRecords
Definition: DtTerrainRecord.h:36
virtual void clearNavigationAreasModified()
Definition: vrfTerrain.h:68
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:145
virtual makVrv::DtTerrain * create(makVrv::DtDe &de, makVrv::DtAgentManagerInterface &agentManager)
Create a DtTerrain.
Definition: vrfTerrain.h:163
boost::signals2::signal< void(const makArchives::DtTerrainRecord &)> signal_terrainRecordSet
Signal sent.
Definition: vrfTerrain.h:47
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:484
makArchives::DtTerrainRecord::GenericRecords mySimNavigationAreas
Definition: vrfTerrain.h:139
boost::signals2::signal< void()> signal_navigationAreasCleared
Definition: vrfTerrain.h:48
boost::signals2::signal< void(const DtFilename &)> signal_simTerrainLoaded
Signal sent when a sim terrain is loaded.
Definition: vrfTerrain.h:51
Contains makVrv::DtInputDriver class.
Definition: featureContext.h:51
The DtAgentManager manages the distributed scene object framework. This includes the objects and upda...
Definition: DtAgentManager.h:38
bool myNavigationAreasAreOnSimulationTerrain
Definition: vrfTerrain.h:146
bool signalNewNavigationAreas() const
Definition: vrfTerrain.h:109
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
bool myNavigationAreasModified
Definition: vrfTerrain.h:147
Base class to provide boost signal/slot management.
virtual bool navigationAreasAreOnSimulationTerrain() const
Definition: vrfTerrain.h:84
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:72
bool myChangeCurrentChannelOnMouseMove
Definition: vrfTerrain.h:192
makVrv::DtCoordinateSystem * mySimulationNavigationCoordinateSystem
Definition: vrfTerrain.h:148
makArchives::DtTerrainRecord::GenericRecords myGuiNavigationAreas
Definition: vrfTerrain.h:138
boost::scoped_ptr< MAKVRinTerra::DtFeatureDatabase > myFeatureDatabase
Definition: vrfTerrain.h:153
DtTerrain is a facade around terrain functionality.
Definition: DtTerrain.h:58
bool navigationAreasModified() const
Definition: vrfTerrain.h:67
virtual const DtFilename & simulationTerrain() const
Definition: vrfTerrain.h:79

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)