VR-Forces 5.0.2 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 
95  virtual void setWeatherAreaFilled(bool);
96  virtual bool weatherAreaFilled() const;
97 
99  virtual void setUseDayNightIlluminationModel(bool);
100  virtual bool useDayNightIlluminationModel() const;
101 
104  virtual void increasePriorityOf(makVrv::DtElementID);
105 
108  virtual void decreasePriorityOf(makVrv::DtElementID);
109 
111  virtual void bringWeatherToFront(makVrv::DtElementID);
112 
115  virtual void sendWeatherToBack(makVrv::DtElementID);
116 
119  virtual void changePriorityOf(makVrv::DtElementID, int);
120 
122  {
123  return myGlobalWeatherObjects;
124  }
125 
126  bool hasGlobalWeather() const
127  {
128  return (myGlobalWeatherObjects.size() != 0);
129  }
130 
133  virtual void setTimeBasedOnCreation(bool, int session = -1);
134 
135  public:
138  virtual int addWeatherLookModificationOperation(const DtWeatherLookModificationOperation&);
139 
141  virtual void removeWeatherLookModificationOperation(int);
142 
144  virtual void insertWeatherLookModificationOperation(int, const DtWeatherLookModificationOperation&);
145 
146  virtual DtLocalWeatherLookOperationManager::WeatherLookModificationOperations weatherLookModificationOperations() const;
147 
150  virtual void modifyColorForWeather(const makArchives::DtEnvironmentRecord&, float& r, float& g, float& b, float& a) const;
151 
153  virtual std::string weatherLookModelDefinitionFor(const makArchives::DtEnvironmentRecord&) const;
154 
157  virtual void setLocalWeatherLookManager(DtLocalWeatherLookOperationManager*);
158 
161  {
162  return myLocalWeatherOperationLookManager;
163  }
164 
166  virtual bool isTimeFrozen() const;
167 
169  virtual bool isTimeSetToLocalOnFirstPlacement();
170 
172  virtual bool userModifiedTime() const;
173 
174  virtual bool isLocalWeatherArea(makVrv::DtUniqueID id) const;
175 
177  {
178  return myGlobalWeather;
179  }
180 
181  virtual bool isWeatherObject(makVrv::DtUniqueID) const;
182 
184  virtual makVrv::DtUniqueID weatherAreaNear(makVrv::DtUniqueID) const;
185 
188  virtual makVrv::DtUniqueID weatherAreaNear(const DtVector&) const;
189 
190  public:
192  boost::signals2::signal<void (makVrv::DtElementID)> signal_removed;
193 
195  boost::signals2::signal<void (const makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*)> signal_updated;
196  boost::signals2::signal<void (const makVrv::DtStateView<DtVrlinkSimulatedWeatherState>*)> signal_weatherUpdated;
197 
200  boost::signals2::signal<void (makVrv::DtUniqueID, bool)> signal_isTimeFrozenChanged;
201  boost::signals2::signal<void (makVrv::DtUniqueID, bool)> signal_isTimeSetToLocalOnFirstPlacementChanged;
202 
204  boost::signals2::signal<void ()> signal_weatherLookRulesChanged;
205 
207  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_globalWeatherDiscovered;
208 
210  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_globalWeatherRemoved;
211 
212  protected:
214  virtual void addIfWeatherObject(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
215 
216  virtual void slot_globalWeatherObjectStateUpdated(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
217 
218  virtual void weatherObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
219  virtual void weatherObjectRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
220 
221  virtual void globalWeatherObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
222  virtual void globalWeatherObjectRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
223 
225  virtual void initExistingWeatherObjects();
226 
227  virtual void slot_onWeatherUpdated(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
228  virtual void slot_onWeatherStateUpdated(const makVrv::DtStateView<DtVrlinkSimulatedWeatherState>* s);
229 
232  virtual void offsetPriorityBy(makVrv::DtElementID id, int by);
233 
234  protected:
239 
241 
242  typedef std::map<makVrv::DtUniqueID, makVrv::DtSignalConnectionManager*> WeatherConnections;
246  };
247 }
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_globalWeatherDiscovered
Signal when global weather is discovered.
Definition: localWeatherManager.h:207
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:244
Definition: localWeatherLookOperationManager.h:22
const GlobalWeatherObjects & globalWeatherObjects() const
Definition: localWeatherManager.h:121
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:200
const makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * myGlobalWeather
Definition: localWeatherManager.h:245
std::map< makVrv::DtUniqueID, makVrv::DtSignalConnectionManager * > WeatherConnections
Definition: localWeatherManager.h:242
Contains makVrv::DtStateView class.
bool hasGlobalWeather() const
Definition: localWeatherManager.h:126
makVrv::DtDe & myDe
Definition: localWeatherManager.h:235
Definition: localWeatherManager.h:36
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtLocalWeatherLookOperationManager * myLocalWeatherOperationLookManager
Definition: localWeatherManager.h:238
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:210
boost::signals2::signal< void()> signal_weatherLookRulesChanged
Signal sent when the weather look rules have changed.
Definition: localWeatherManager.h:204
std::vector< DtWeatherLookModificationOperation * > WeatherLookModificationOperations
Definition: localWeatherLookOperationManager.h:25
Contains makVrv::DtVirtualBaseClass class.
const makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * globalWeather() const
Definition: localWeatherManager.h:176
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:240
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
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:192
boost::signals2::signal< void(makVrv::DtUniqueID, bool)> signal_isTimeSetToLocalOnFirstPlacementChanged
Definition: localWeatherManager.h:201
DtLocalWeatherLookOperationManager * localWeatherLookManager() const
Accessor for the manager.
Definition: localWeatherManager.h:160
bool isTimeFrozen
Definition: localWeatherManager.h:43
bool userModifiedTime
Definition: localWeatherManager.h:45
WeatherObjects myWeatherObjects
Definition: localWeatherManager.h:236
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
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:243
makVrv::DtSignalConnectionManager myConnectionManager
Definition: localWeatherManager.h:237

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)