VR-Forces 4.7 Class Documentation
 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) 2014 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 
126  virtual bool navDataGenerated(const NavigationArea&) const;
127 
129  virtual void generateNavigationArea(makVrv::DtUniqueID);
130 
132  virtual void regenerateAllUngeneratedAreas();
133 
135  virtual void saveConfigurations();
136 
138  virtual makVrv::DtUniqueID generatingNavigationArea() const;
139 
141  virtual void generateAllNavigationAreas();
142 
144  virtual bool generatingAnyNavigationArea();
145 
147  virtual void removeCurrentFromGeneration();
148 
150  virtual void removeAllFromGeneration();
151 
153  virtual void removeNavigationAreaForGeneration(makVrv::DtUniqueID);
154 
156  virtual bool scheduledForGeneration(makVrv::DtUniqueID) const;
157 
159  virtual bool isNavigationArea(makVrv::DtUniqueID) const;
160 
162  virtual makVrv::DtUniqueID navigationAreaForConfigurationFile(const DtFilename&) const;
163 
165  virtual void setShowNavigationAreas(bool);
166  virtual bool showNavigationAreas() const;
167 
169  virtual void setShowProgressOnGenerationStart(bool b);
170  virtual bool showProgressOnGenerationStart() const;
171 
174  virtual void removeNavigationArea(makVrv::DtUniqueID, bool ask = false);
175 
177  virtual void setGenerationCheckDelta(double);
178  double generationCheckDelta() const;
179 
181  virtual std::map<DtString, DtFilename> profilesAndOutputDirectoriesFor(makVrv::DtUniqueID id) const;
182 
183  const NavigationAreas& navigationAreas() const { return myNavigationAreas; };
184 
186  virtual void setMaximumNavigationAreaCellSize(double length, double width);
187  virtual void getMaximumNavigationAreaCellSize(double& length, double& width);
188 
190  virtual bool needsRegeneration() const;
191 
194  virtual bool startGenerationProcess(makVrv::DtUniqueID, makVrv::DtUnicode& error);
195 
197  virtual std::vector<DtVector> convertRuntimeExtentToLocations(const DtRwNavRuntimeConfig&,
198  bool& valid) const;
199 
201  virtual DtFilename navDataRuntimeDirectory(const NavigationArea&) const;
202  virtual DtFilename navDataRuntimeDirectory(makVrv::DtUniqueID) const;
203 
206  virtual bool checkValidExtent(const std::vector<DtVector>&) const;
207 
209  virtual DtVector convertToLocalNavigationArea(const DtVector& geocentric) const;
210 
211  bool generationHadErrors() const
212  {
213  return myGenerationHadErrors;
214  }
215 
216  SimObjectNavigationAreas& simObjectNavAreas() { return mySimObjectNavAreas; };
217 
218  //
219  boost::signal<void (bool)> signal_showNavigationAreasChanged;
220  boost::signal<void ()> signal_areasCleared;
221  boost::signal<void (makVrv::DtUniqueID, NavigationArea, bool)> signal_navigationAreaAdded;
222  boost::signal<void (makVrv::DtUniqueID)> signal_navigationAreaRemoved;
223  boost::signal<void (makVrv::DtUniqueID, NavigationArea)> signal_navigationAreaUpdated;
224  boost::signal<void (makVrv::DtUniqueID, makVrv::DtUnicode)> signal_generationError;
225  boost::signal<void (makVrv::DtUniqueID, makVrv::DtUnicode)> signal_startingGeneration;
226  boost::signal<void ()> signal_generationComplete;
227  boost::signal<void (makVrv::DtUniqueID)> signal_generationRequested;
228  boost::signal<void (makVrv::DtUniqueID, const DtFilename&)> signal_profileGenerated;
230  boost::signal<void (QProcess*)> signal_generatorProcessStarted;
231  boost::signal<void ()> signal_generatorProcessCompleted;
232  boost::signal<void (makVrv::DtUniqueID, int)> signal_removedFromGeneration;
233 
234  protected:
235  virtual void initExistingNavigationAreas();
236  virtual void slot_navigationAreasCleared();
237  virtual void showNavigationArea(const NavigationArea&);
238  virtual void initialize();
239 
240  virtual void navigationAreaUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
241  virtual void navigationAreaAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
242 
243  virtual void tick();
244 
246  virtual void navAreaDebugPortsReceived(DtSimMessage*);
247  virtual void simObjectNavareaDebugPortsReceived(DtSimMessage*);
248 
249  virtual void detachIfAttachedToNavigationArea(makVrv::DtUniqueID);
250 
251  virtual void slot_onCurrentSelectionChanged(const makVrv::DtSelectionManager::IdSet& selected,
252  const makVrv::DtSelectionManager::IdSet& deselected);
253 
254  protected:
258 
260 
261  std::set<makVrv::DtUniqueID> mySelectedNavigationAreas;
262 
263  typedef std::vector<makVrv::DtUniqueID> NavigationAreasToGenerate;
265 
267 
269 
270  std::vector<std::string> myProfilesToGenerate;
271  DtTimedSection myTimedSection;
275 
277  };
278 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)