VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 <vlutil/vlFilename.h>
17 #include <vrvCore/DtStateView.h>
18 #include <vrvCore/DtUniqueID.h>
19 #include <vrvCore/DtEntityState.h>
20 #include <vrvUtil/DtUnicode.h>
21 #include <vlutil/vlPerformanceStats.h>
22 
23 namespace makVrv
24 {
25  class DtDe;
26 }
27 
28 class QProcess;
29 class DtSimMessage;
30 
31 #define DtDebugPortExtendedDataKey "DtDebugPortExtendedDataKey"
32 
33 namespace makVrf
34 {
35  class DtEnvironmentalFacadeCollection;
36 
38  {
39  public:
40  enum Status
41  {
42  Unknown = -1,
46  ScheduledForGeneration
47  };
48 
50  {
61  };
62 
63  typedef std::map<makVrv::DtUniqueID, NavigationArea> NavigationAreas;
64 
66  {
67  std::map<int, int> debugPorts;
68  std::list<std::string> profiles;
69  std::string status;
70  };
71 
72  typedef std::map<DtUUID, SimObjectNavigationArea> SimObjectNavigationAreas;
73 
74  public:
77 
79  virtual ~DtNavigationAreasManager();
80 
82  static DtNavigationAreasManager& instance(makVrv::DtDe& de);
83 
85  static void registerInstance(makVrv::DtDe&, DtNavigationAreasManager*);
86 
89  virtual bool addNavigationArea(const DtFilename&, makVrv::DtUniqueID* resID = 0);
90 
92  virtual int profilesToGenerate(makVrv::DtUniqueID) const;
93 
95  virtual DtEnvironmentalFacadeCollection* createNavigationArea(const NavigationArea&) const;
96 
98  virtual void selectNavigationAreas(const std::set<makVrv::DtUniqueID>&, bool selectOnMap = true);
99  const std::set<makVrv::DtUniqueID>& selectedNavigationAreas() const;
100 
102  virtual Status status(makVrv::DtUniqueID);
103 
106  virtual void revertNavigationArea(makVrv::DtUniqueID);
107 
109  virtual bool isModified(makVrv::DtUniqueID) const;
110 
113  virtual bool navDataGenerated(const NavigationArea&) const;
114 
116  virtual void generateNavigationArea(makVrv::DtUniqueID);
117 
119  virtual void regenerateAllUngeneratedAreas();
120 
122  virtual void saveConfigurations();
123 
125  virtual makVrv::DtUniqueID generatingNavigationArea() const;
126 
128  virtual void generateAllNavigationAreas();
129 
131  virtual bool generatingAnyNavigationArea();
132 
134  virtual void removeCurrentFromGeneration();
135 
137  virtual void removeAllFromGeneration();
138 
140  virtual void removeNavigationAreaForGeneration(makVrv::DtUniqueID);
141 
143  virtual bool scheduledForGeneration(makVrv::DtUniqueID) const;
144 
146  virtual bool isNavigationArea(makVrv::DtUniqueID) const;
147 
149  virtual makVrv::DtUniqueID navigationAreaForConfigurationFile(const DtFilename&) const;
150 
152  virtual void setShowNavigationAreas(bool);
153  virtual bool showNavigationAreas() const;
154 
156  virtual void setShowProgressOnGenerationStart(bool b);
157  virtual bool showProgressOnGenerationStart() const;
158 
161  virtual void removeNavigationArea(makVrv::DtUniqueID, bool ask = false);
162 
164  virtual void setGenerationCheckDelta(double);
165  double generationCheckDelta() const;
166 
168  virtual std::map<DtString, DtFilename> profilesAndOutputDirectoriesFor(makVrv::DtUniqueID id) const;
169 
170  const NavigationAreas& navigationAreas() const { return myNavigationAreas; };
171 
173  virtual void setMaximumNavigationAreaCellSize(double length, double width);
174  virtual void getMaximumNavigationAreaCellSize(double& length, double& width);
175 
177  virtual bool needsRegeneration() const;
178 
181  virtual bool startGenerationProcess(makVrv::DtUniqueID, makVrv::DtUnicode& error);
182 
184  virtual std::vector<DtVector> convertRuntimeExtentToLocations(const DtRwNavRuntimeConfig&,
185  bool& valid) const;
186 
188  virtual DtFilename navDataRuntimeDirectory(const NavigationArea&) const;
189  virtual DtFilename navDataRuntimeDirectory(makVrv::DtUniqueID) const;
190 
193  virtual bool checkValidExtent(const std::vector<DtVector>&) const;
194 
195  bool generationHadErrors() const
196  {
197  return myGenerationHadErrors;
198  }
199 
200  SimObjectNavigationAreas& simObjectNavAreas() { return mySimObjectNavAreas; };
201 
202  //
203  boost::signal<void (bool)> signal_showNavigationAreasChanged;
204  boost::signal<void ()> signal_areasCleared;
205  boost::signal<void (makVrv::DtUniqueID, NavigationArea, bool)> signal_navigationAreaAdded;
206  boost::signal<void (makVrv::DtUniqueID)> signal_navigationAreaRemoved;
207  boost::signal<void (makVrv::DtUniqueID, NavigationArea)> signal_navigationAreaUpdated;
208  boost::signal<void (makVrv::DtUniqueID, makVrv::DtUnicode)> signal_generationError;
209  boost::signal<void (makVrv::DtUniqueID, makVrv::DtUnicode)> signal_startingGeneration;
210  boost::signal<void ()> signal_generationComplete;
211  boost::signal<void (makVrv::DtUniqueID)> signal_generationRequested;
212  boost::signal<void (makVrv::DtUniqueID, const DtFilename&)> signal_profileGenerated;
214  boost::signal<void (QProcess*)> signal_generatorProcessStarted;
215  boost::signal<void ()> signal_generatorProcessCompleted;
216  boost::signal<void (makVrv::DtUniqueID, int)> signal_removedFromGeneration;
217 
218  protected:
219  virtual void initExistingNavigationAreas();
220  virtual void slot_terrainCleared();
221  virtual void showNavigationArea(const NavigationArea&);
222  virtual void initialize();
223 
224  virtual void navigationAreaUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
225  virtual void navigationAreaAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
226 
227  virtual void tick();
228 
230  virtual void navAreaDebugPortsReceived(DtSimMessage*);
231  virtual void simObjectNavareaDebugPortsReceived(DtSimMessage*);
232 
233  protected:
236 
238 
239  std::set<makVrv::DtUniqueID> mySelectedNavigationAreas;
240 
241  typedef std::vector<makVrv::DtUniqueID> NavigationAreasToGenerate;
243 
245 
247 
248  std::vector<std::string> myProfilesToGenerate;
249  DtTimedSection myTimedSection;
253 
255  };
256 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)