VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
navigationAreasManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
10 #include <vrfGuiCore/vrfGuiCore.h>
12 #include <vrfutil/rwNavGenConfig.h>
14 #include <vrfutil/rwUUID.h>
15 #include <vrfutil/rwTemplatedMap.h>
16 #include <vlutil/vlFilename.h>
18 #include <vrvCore/DtStateView.h>
19 #include <vrvCore/DtUniqueID.h>
20 #include <vrvCore/DtEntityState.h>
22 #include <vrvUtil/DtUnicode.h>
23 #include <vlutil/vlPerformanceStats.h>
25 
26 namespace makVrv
27 {
28  class DtDe;
29 }
30 
31 class QProcess;
32 class DtSimMessage;
33 
34 #define DtDebugPortExtendedDataKey "DtDebugPortExtendedDataKey"
35 
36 namespace makVrf
37 {
38  class DtEnvironmentalFacadeCollection;
39 
41  {
42  public:
43  enum Status
44  {
45  Unknown = -1,
49  ScheduledForGeneration
50  };
51 
52  typedef std::map<std::string, DtNavSectorIndices> DtNavSectorIndicesByBackEnd;
53 
55  {
68  };
69 
70  typedef std::map<makVrv::DtUniqueID, NavigationArea> NavigationAreas;
71 
73  {
74  std::map<int, int> debugPorts;
75  std::list<std::string> profiles;
76  std::string status;
77  };
78 
79  typedef std::map<DtUUID, SimObjectNavigationArea> SimObjectNavigationAreas;
80 
81  public:
84 
86  virtual ~DtNavigationAreasManager();
87 
89  static DtNavigationAreasManager& instance(makVrv::DtDe& de);
90 
92  static void registerInstance(makVrv::DtDe&, DtNavigationAreasManager*);
93 
96  virtual bool addNavigationArea(const DtFilename&, makVrv::DtUniqueID* resID = 0);
97 
99  virtual int profilesToGenerate(makVrv::DtUniqueID) const;
100 
102  virtual DtEnvironmentalFacadeCollection* createNavigationArea(const NavigationArea&) const;
103 
105  virtual void selectNavigationAreas(const std::set<makVrv::DtUniqueID>&, bool selectOnMap = true);
106  const std::set<makVrv::DtUniqueID>& selectedNavigationAreas() const;
107 
109  virtual Status status(makVrv::DtUniqueID);
110 
112  virtual const DtNavSectorIndicesByBackEnd& sectorsBeingRegenerated(makVrv::DtUniqueID) const;
113 
115  virtual const DtNavSectorIndicesByBackEnd& sectorsQueuedForRegeneration(makVrv::DtUniqueID) const;
116 
119  virtual void revertNavigationArea(makVrv::DtUniqueID);
120 
122  virtual bool isModified(makVrv::DtUniqueID) const;
123 
128  virtual Status navDataGenerated(const NavigationArea&) const;
129 
131  virtual void generateNavigationArea(makVrv::DtUniqueID);
132 
134  virtual void regenerateAllUngeneratedAreas();
135 
137  virtual void saveConfigurations();
138 
140  virtual makVrv::DtUniqueID generatingNavigationArea() const;
141 
143  virtual void generateAllNavigationAreas();
144 
146  virtual bool generatingAnyNavigationArea();
147 
149  virtual void removeCurrentFromGeneration();
150 
152  virtual void removeAllFromGeneration();
153 
155  virtual void removeNavigationAreaForGeneration(makVrv::DtUniqueID);
156 
158  virtual bool scheduledForGeneration(makVrv::DtUniqueID) const;
159 
161  virtual bool isNavigationArea(makVrv::DtUniqueID) const;
162 
164  virtual makVrv::DtUniqueID navigationAreaForConfigurationFile(const DtFilename&) const;
165 
167  virtual void setShowNavigationAreas(bool);
168  virtual bool showNavigationAreas() const;
169 
171  virtual void setShowProgressOnGenerationStart(bool b);
172  virtual bool showProgressOnGenerationStart() const;
173 
176  virtual void removeNavigationArea(makVrv::DtUniqueID, bool ask = false);
177 
179  virtual void setGenerationCheckDelta(double);
180  double generationCheckDelta() const;
181 
183  virtual std::map<DtString, DtFilename> profilesAndOutputDirectoriesFor(makVrv::DtUniqueID id) const;
184 
185  const NavigationAreas& navigationAreas() const { return myNavigationAreas; };
186 
188  virtual void setMaximumNavigationAreaCellSize(double length, double width);
189  virtual void getMaximumNavigationAreaCellSize(double& length, double& width);
190 
192  virtual bool needsRegeneration() const;
193 
196  virtual bool startGenerationProcess(makVrv::DtUniqueID, makVrv::DtUnicode& error);
197 
199  virtual std::vector<DtVector> convertRuntimeExtentToLocations(const DtRwNavRuntimeConfig&,
200  bool& valid) const;
201 
203  virtual DtFilename navDataRuntimeDirectory(const NavigationArea&) const;
204  virtual DtFilename navDataRuntimeDirectory(makVrv::DtUniqueID) const;
205 
208  virtual bool checkValidExtent(const std::vector<DtVector>&) const;
209 
211  virtual DtVector convertToLocalNavigationArea(const DtVector& geocentric) const;
212 
213  bool generationHadErrors() const
214  {
215  return myGenerationHadErrors;
216  }
217 
218  SimObjectNavigationAreas& simObjectNavAreas() { return mySimObjectNavAreas; };
219 
220  //
221  boost::signals2::signal<void (bool)> signal_showNavigationAreasChanged;
222  boost::signals2::signal<void ()> signal_areasCleared;
223  boost::signals2::signal<void (makVrv::DtUniqueID, NavigationArea, bool)> signal_navigationAreaAdded;
224  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_navigationAreaRemoved;
225  boost::signals2::signal<void (makVrv::DtUniqueID, NavigationArea)> signal_navigationAreaUpdated;
226  boost::signals2::signal<void (makVrv::DtUniqueID, makVrv::DtUnicode)> signal_generationError;
227  boost::signals2::signal<void (makVrv::DtUniqueID, makVrv::DtUnicode)> signal_startingGeneration;
228  boost::signals2::signal<void ()> signal_generationComplete;
229  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_generationRequested;
230  boost::signals2::signal<void (makVrv::DtUniqueID, const DtFilename&)> signal_profileGenerated;
231  boost::signals2::signal<void ()> signal_navigationAreaGenerationProcessStarted;
232  boost::signals2::signal<void (QProcess*)> signal_generatorProcessStarted;
233  boost::signals2::signal<void ()> signal_generatorProcessCompleted;
234  boost::signals2::signal<void (makVrv::DtUniqueID, int)> signal_removedFromGeneration;
235 
236  protected:
237  virtual void initExistingNavigationAreas();
238  virtual void slot_navigationAreasCleared();
239  virtual void showNavigationArea(const NavigationArea&);
240  virtual void initialize();
241 
242  virtual void navigationAreaUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
243  virtual void navigationAreaAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
244 
245  virtual void tick();
246 
248  virtual void navAreaDebugPortsReceived(DtSimMessage*);
249  virtual void simObjectNavareaDebugPortsReceived(DtSimMessage*);
250 
251  virtual void detachIfAttachedToNavigationArea(makVrv::DtUniqueID);
252 
253  virtual void slot_onCurrentSelectionChanged(const makVrv::DtSelectionManager::IdSet& selected,
254  const makVrv::DtSelectionManager::IdSet& deselected);
255 
258  virtual void setTerrainClearing(bool);
259 
260  protected:
264 
266 
267  std::set<makVrv::DtUniqueID> mySelectedNavigationAreas;
268 
269  typedef std::vector<makVrv::DtUniqueID> NavigationAreasToGenerate;
271 
273 
275 
276  std::vector<std::string> myProfilesToGenerate;
281 
283 
285  };
286 }
NavigationAreas myNavigationAreas
Definition: navigationAreasManager.h:265
DtEnvironmentalFacadeCollection * area
Definition: navigationAreasManager.h:60
class DtEnvironmentalFacadeCollection
Definition: environmentalFacadeCollection.h:74
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
double myGenerationCheckDelta
Definition: navigationAreasManager.h:279
DtNavSectorIndicesByBackEnd sectorsBeingRegenerated
Definition: navigationAreasManager.h:65
bool hasRuntimeConfig
Definition: navigationAreasManager.h:67
bool generationHadErrors() const
Definition: navigationAreasManager.h:213
Definition: navigationAreasManager.h:54
makVrv::DtDe & myDe
Definition: navigationAreasManager.h:261
DtRwNavGenConfig configuration
Definition: navigationAreasManager.h:56
std::map< makVrv::DtUniqueID, NavigationArea > NavigationAreas
Definition: navigationAreasManager.h:70
Definition: navigationAreasManager.h:47
boost::signals2::signal< void(makVrv::DtUniqueID, NavigationArea)> signal_navigationAreaUpdated
Definition: navigationAreasManager.h:225
DtRwNavRuntimeConfig originalRuntimeConfiguration
Definition: navigationAreasManager.h:59
Contains makVrv:DtSelectionManager class.
Contains makVrv::DtStateView class.
Status status
Definition: navigationAreasManager.h:61
const NavigationAreas & navigationAreas() const
Definition: navigationAreasManager.h:185
Contains the DtUUID class declaration.
std::map< DtUUID, SimObjectNavigationArea > SimObjectNavigationAreas
Definition: navigationAreasManager.h:79
bool myTerrainClearing
Definition: navigationAreasManager.h:284
boost::signals2::signal< void(makVrv::DtUniqueID, int)> signal_removedFromGeneration
Definition: navigationAreasManager.h:234
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::string status
Definition: navigationAreasManager.h:76
std::list< std::string > profiles
Definition: navigationAreasManager.h:75
boost::signals2::signal< void(makVrv::DtUniqueID, NavigationArea, bool)> signal_navigationAreaAdded
Definition: navigationAreasManager.h:223
boost::signals2::signal< void()> signal_generationComplete
Definition: navigationAreasManager.h:228
std::vector< std::string > myProfilesToGenerate
Definition: navigationAreasManager.h:276
Status
Definition: navigationAreasManager.h:43
Configuration data for a set of navigation data that is loaded by the sim engine and used at runtime...
Definition: rwNavRuntimeConfig.h:60
Contains makVrv::DtVirtualBaseClass class.
bool myGenerationHadErrors
Definition: navigationAreasManager.h:280
Definition: navigationAreasManager.h:72
makVrv::DtUniqueID myGeneratingNavigationArea
Definition: navigationAreasManager.h:274
File: simMsg.h.
Definition: simMessage.h:35
boost::signals2::signal< void(makVrv::DtUniqueID, const DtFilename &)> signal_profileGenerated
Definition: navigationAreasManager.h:230
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_generationRequested
Definition: navigationAreasManager.h:229
Definition: rwNavGenConfig.h:26
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtSignalConnectionManager myConnectionManager
Definition: navigationAreasManager.h:262
Definition: navigationAreasManager.h:40
Contains makVrv::DtVrlinkSimulatedEntityState class.
boost::signals2::signal< void(QProcess *)> signal_generatorProcessStarted
Definition: navigationAreasManager.h:232
SimObjectNavigationAreas mySimObjectNavAreas
Definition: navigationAreasManager.h:282
Definition: asyncJobServer.h:39
Definition: navigationAreasManager.h:48
boost::signals2::signal< void()> signal_generatorProcessCompleted
Definition: navigationAreasManager.h:233
Definition: navigationAreasManager.h:46
boost::signals2::signal< void(makVrv::DtUniqueID, makVrv::DtUnicode)> signal_generationError
Definition: navigationAreasManager.h:226
Base class to provide boost signal/slot management.
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_navigationAreaRemoved
Definition: navigationAreasManager.h:224
makVrv::DtSignalConnectionManager myInitializeConnectionManager
Definition: navigationAreasManager.h:263
std::string originalRuntimeConfigurationFilename
Definition: navigationAreasManager.h:63
boost::signals2::signal< void()> signal_areasCleared
Definition: navigationAreasManager.h:222
double myTimeSinceLastCheck
Definition: navigationAreasManager.h:278
DtTimedSection myTimedSection
Definition: navigationAreasManager.h:277
SimObjectNavigationAreas & simObjectNavAreas()
Definition: navigationAreasManager.h:218
Contains makVrv::DtUniqueID type.
std::map< std::string, DtNavSectorIndices > DtNavSectorIndicesByBackEnd
Definition: navigationAreasManager.h:52
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
makVrv::DtSignalConnectionManager * connections
Definition: navigationAreasManager.h:64
boost::signals2::signal< void()> signal_navigationAreaGenerationProcessStarted
Definition: navigationAreasManager.h:231
std::set< makVrv::DtUniqueID > mySelectedNavigationAreas
Definition: navigationAreasManager.h:267
DtRwNavRuntimeConfig runtimeConfiguration
Definition: navigationAreasManager.h:58
QProcess * myNavigationGenerationProcess
Definition: navigationAreasManager.h:272
std::string runtimeConfigurationFilename
Definition: navigationAreasManager.h:62
DtNavSectorIndicesByBackEnd sectorsQueuedForRegeneration
Definition: navigationAreasManager.h:66
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
std::map< int, int > debugPorts
Definition: navigationAreasManager.h:74
boost::signals2::signal< void(makVrv::DtUniqueID, makVrv::DtUnicode)> signal_startingGeneration
Definition: navigationAreasManager.h:227
DtRwNavGenConfig originalConfiguration
Definition: navigationAreasManager.h:57
std::vector< makVrv::DtUniqueID > NavigationAreasToGenerate
Definition: navigationAreasManager.h:269
NavigationAreasToGenerate myNavigationAreasToGenerate
Definition: navigationAreasManager.h:270

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)