VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
localWeatherManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
10 #include <vrfGuiCore/vrfGuiCore.h>
15 #include <vrvUtil/DtUnicode.h>
16 #include <vrvCore/DtStateView.h>
17 
22 
23 namespace makVrv
24 {
25  class DtDe;
26  class DtSimObjectEntry;
27  struct DtVrlinkSimulatedBaseState;
28 }
29 
30 namespace makVrf
31 {
32  struct DtVrlinkSimulatedEnvironmentProcess;
33  class DtWeatherLookModificationOperation;
34  class DtLocalWeatherLookOperationManager;
35 
37  {
38  public:
39  typedef std::map<makVrv::DtElementID, makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*> WeatherObjects;
40 
42  {
46  };
47 
48  typedef std::map<makVrv::DtUniqueID, GlobalScenarioCreationData> GlobalWeatherObjects;
49 
50  public:
53 
55  virtual ~DtLocalWeatherManager();
56 
58  static DtLocalWeatherManager& instance(makVrv::DtDe& de);
59 
61  static void registerInstance(makVrv::DtDe&, DtLocalWeatherManager*);
62 
63  virtual const WeatherObjects& weatherObjects() const
64  {
65  return myWeatherObjects;
66  }
67 
69  virtual bool hasEnvironment(const std::string&) const;
70 
73  virtual void setupCommand(DtChangeWeatherCommand& weatherCommand, const std::string& environment) const;
74 
77  virtual void setupCommand(DtChangeWeatherCommand& weatherCommand, const makArchives::DtEnvironmentRecord& environment) const;
78  virtual void setupRecord(makArchives::DtEnvironmentRecord& environment, const DtChangeWeatherCommand& weatherCommand) const;
79 
82  virtual void setupCommand(DtChangeWeatherCommand& weatherCommand, const makVrv::DtStateView<DtVrlinkSimulatedWeatherState>* environment) const;
83  virtual void setupRecord(makArchives::DtEnvironmentRecord& rec,
85 
87  virtual int nextPriority() const;
88 
90  virtual void setShowWeather(bool);
91  virtual bool showWeather() const;
92 
94  virtual void setUseGlobalTimeZone(bool);
95  virtual bool useGlobalTimeZone() const;
96 
99  virtual void increasePriorityOf(makVrv::DtElementID);
100 
103  virtual void decreasePriorityOf(makVrv::DtElementID);
104 
106  virtual void bringWeatherToFront(makVrv::DtElementID);
107 
110  virtual void sendWeatherToBack(makVrv::DtElementID);
111 
114  virtual void changePriorityOf(makVrv::DtElementID, int);
115 
117  {
118  return myGlobalWeatherObjects;
119  }
120 
121  bool hasGlobalWeather() const
122  {
123  return (myGlobalWeatherObjects.size() != 0);
124  }
125 
128  virtual void setTimeBasedOnCreation(bool, int session = -1);
129 
130  public:
133  virtual int addWeatherLookModificationOperation(const DtWeatherLookModificationOperation&);
134 
136  virtual void removeWeatherLookModificationOperation(int);
137 
139  virtual void insertWeatherLookModificationOperation(int, const DtWeatherLookModificationOperation&);
140 
141  virtual DtLocalWeatherLookOperationManager::WeatherLookModificationOperations weatherLookModificationOperations() const;
142 
145  virtual void modifyColorForWeather(const makArchives::DtEnvironmentRecord&, float& r, float& g, float& b, float& a) const;
146 
148  virtual std::string weatherLookModelDefinitionFor(const makArchives::DtEnvironmentRecord&) const;
149 
152  virtual void setLocalWeatherLookManager(DtLocalWeatherLookOperationManager*);
153 
156  {
157  return myLocalWeatherOperationLookManager;
158  }
159 
161  virtual bool isTimeFrozen() const;
162 
164  virtual bool isTimeSetToLocalOnFirstPlacement();
165 
167  virtual bool userModifiedTime() const;
168 
169  virtual bool isLocalWeatherArea(makVrv::DtUniqueID id) const;
170 
172  {
173  return myGlobalWeather;
174  }
175 
176  virtual bool isWeatherObject(makVrv::DtUniqueID) const;
177 
179  virtual makVrv::DtUniqueID weatherAreaNear(makVrv::DtUniqueID) const;
180 
183  virtual makVrv::DtUniqueID weatherAreaNear(const DtVector&) const;
184 
185  public:
187  boost::signals2::signal<void (makVrv::DtElementID)> signal_removed;
188 
190  boost::signals2::signal<void (const makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*)> signal_updated;
191  boost::signals2::signal<void (const makVrv::DtStateView<DtVrlinkSimulatedWeatherState>*)> signal_weatherUpdated;
192 
195  boost::signals2::signal<void (makVrv::DtUniqueID, bool)> signal_isTimeFrozenChanged;
196  boost::signals2::signal<void (makVrv::DtUniqueID, bool)> signal_isTimeSetToLocalOnFirstPlacementChanged;
197 
199  boost::signals2::signal<void ()> signal_weatherLookRulesChanged;
200 
202  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_globalWeatherDiscovered;
203 
205  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_globalWeatherRemoved;
206 
207  boost::signals2::signal<void ()> signal_globalWeatherObjectStateUpdated;
208 
209  protected:
211  virtual void addIfWeatherObject(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
212 
213  virtual void slot_globalWeatherObjectStateUpdated(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
214 
215  virtual void weatherObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
216  virtual void weatherObjectRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
217 
218  virtual void globalWeatherObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
219  virtual void globalWeatherObjectRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
220 
222  virtual void initExistingWeatherObjects();
223 
224  virtual void slot_onWeatherUpdated(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
225  virtual void slot_onWeatherStateUpdated(const makVrv::DtStateView<DtVrlinkSimulatedWeatherState>* s);
226 
229  virtual void offsetPriorityBy(makVrv::DtElementID id, int by);
230 
231  protected:
236 
238 
239  typedef std::map<makVrv::DtUniqueID, makVrv::DtSignalConnectionManager*> WeatherConnections;
243  };
244 }
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_globalWeatherDiscovered
Signal when global weather is discovered.
Definition: localWeatherManager.h:202
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
WeatherConnections myWeatherConnections
Definition: localWeatherManager.h:241
Definition: localWeatherLookOperationManager.h:22
boost::signals2::signal< void()> signal_globalWeatherObjectStateUpdated
Definition: localWeatherManager.h:207
const GlobalWeatherObjects & globalWeatherObjects() const
Definition: localWeatherManager.h:116
boost::signals2::signal< void(makVrv::DtUniqueID, bool)> signal_isTimeFrozenChanged
Signals sent when information about a particular global weather has updated. If ID is 0 check to see ...
Definition: localWeatherManager.h:195
const makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * myGlobalWeather
Definition: localWeatherManager.h:242
std::map< makVrv::DtUniqueID, makVrv::DtSignalConnectionManager * > WeatherConnections
Definition: localWeatherManager.h:239
Contains makVrv::DtStateView class.
bool hasGlobalWeather() const
Definition: localWeatherManager.h:121
makVrv::DtDe & myDe
Definition: localWeatherManager.h:232
Definition: localWeatherManager.h:36
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtLocalWeatherLookOperationManager * myLocalWeatherOperationLookManager
Definition: localWeatherManager.h:235
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
Contains makVrv::DtObserverSettingsManager class.
std::map< makVrv::DtUniqueID, GlobalScenarioCreationData > GlobalWeatherObjects
Definition: localWeatherManager.h:48
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_globalWeatherRemoved
Signal when all global weathers are removed.
Definition: localWeatherManager.h:205
boost::signals2::signal< void()> signal_weatherLookRulesChanged
Signal sent when the weather look rules have changed.
Definition: localWeatherManager.h:199
std::vector< DtWeatherLookModificationOperation * > WeatherLookModificationOperations
Definition: localWeatherLookOperationManager.h:25
Contains makVrv::DtVirtualBaseClass class.
const makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * globalWeather() const
Definition: localWeatherManager.h:171
The declaration of the makArchives::DtEnvironmentRecord class.
virtual const WeatherObjects & weatherObjects() const
Definition: localWeatherManager.h:63
A DtStateView is a the interface to simulation state information. Users can create DtStateViews for s...
Definition: DtStateView.h:49
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::map< makVrv::DtElementID, makVrv::DtStateView< DtVrlinkSimulatedEnvironmentProcess > * > WeatherObjects
Definition: localWeatherManager.h:39
GlobalWeatherObjects myGlobalWeatherObjects
Definition: localWeatherManager.h:237
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:36
A DtSimCommand subclass which specifies a change to the weather settings for the specified weather ar...
Definition: changeWeatherCommand.h:29
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool isTimeSetToLocalOnFirstPlacement
Definition: localWeatherManager.h:44
Base class to provide boost signal/slot management.
boost::signals2::signal< void(makVrv::DtElementID)> signal_removed
Signal sent when the local weather area is removed.
Definition: localWeatherManager.h:187
boost::signals2::signal< void(makVrv::DtUniqueID, bool)> signal_isTimeSetToLocalOnFirstPlacementChanged
Definition: localWeatherManager.h:196
DtLocalWeatherLookOperationManager * localWeatherLookManager() const
Accessor for the manager.
Definition: localWeatherManager.h:155
bool isTimeFrozen
Definition: localWeatherManager.h:43
bool userModifiedTime
Definition: localWeatherManager.h:45
WeatherObjects myWeatherObjects
Definition: localWeatherManager.h:233
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
This class will be the interface for deciding what icons or colors to display for weather areas...
Definition: weatherLookModificationOperation.h:24
WeatherConnections myGlobalWeatherObjectConnections
Definition: localWeatherManager.h:240
makVrv::DtSignalConnectionManager myConnectionManager
Definition: localWeatherManager.h:234

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)