VR-Forces 4.8 Class Documentation
 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 #include <vrvUtil/signalslib.h>
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  {
45  };
46 
47  typedef std::map<makVrv::DtUniqueID, GlobalScenarioCreationData> GlobalWeatherObjects;
48 
49  public:
52 
54  virtual ~DtLocalWeatherManager();
55 
57  static DtLocalWeatherManager& instance(makVrv::DtDe& de);
58 
60  static void registerInstance(makVrv::DtDe&, DtLocalWeatherManager*);
61 
62  virtual const WeatherObjects& weatherObjects() const
63  {
64  return myWeatherObjects;
65  }
66 
68  virtual bool hasEnvironment(const std::string&) const;
69 
72  virtual void setupCommand(DtChangeWeatherCommand& weatherCommand, const std::string& environment) const;
73 
76  virtual void setupCommand(DtChangeWeatherCommand& weatherCommand, const makArchives::DtEnvironmentRecord& environment) const;
77  virtual void setupRecord(makArchives::DtEnvironmentRecord& environment, const DtChangeWeatherCommand& weatherCommand) const;
78 
81  virtual void setupCommand(DtChangeWeatherCommand& weatherCommand, const makVrv::DtStateView<DtVrlinkSimulatedWeatherState>* environment) const;
82  virtual void setupRecord(makArchives::DtEnvironmentRecord& rec,
84 
86  virtual int nextPriority() const;
87 
89  virtual void setShowWeather(bool);
90  virtual bool showWeather() const;
91 
94  virtual void setWeatherAreaFilled(bool);
95  virtual bool weatherAreaFilled() const;
96 
98  virtual void setUseDayNightIlluminationModel(bool);
99  virtual bool useDayNightIlluminationModel() const;
100 
103  virtual void increasePriorityOf(makVrv::DtElementID);
104 
107  virtual void decreasePriorityOf(makVrv::DtElementID);
108 
110  virtual void bringWeatherToFront(makVrv::DtElementID);
111 
114  virtual void sendWeatherToBack(makVrv::DtElementID);
115 
118  virtual void changePriorityOf(makVrv::DtElementID, int);
119 
121  {
122  return myGlobalWeatherObjects;
123  }
124 
125  bool hasGlobalWeather() const
126  {
127  return (myGlobalWeatherObjects.size() != 0);
128  }
129 
132  virtual void setTimeBasedOnCreation(bool, int session = -1);
133 
134  public:
137  virtual int addWeatherLookModificationOperation(const DtWeatherLookModificationOperation&);
138 
140  virtual void removeWeatherLookModificationOperation(int);
141 
143  virtual void insertWeatherLookModificationOperation(int, const DtWeatherLookModificationOperation&);
144 
145  virtual DtLocalWeatherLookOperationManager::WeatherLookModificationOperations weatherLookModificationOperations() const;
146 
149  virtual void modifyColorForWeather(const makArchives::DtEnvironmentRecord&, float& r, float& g, float& b, float& a) const;
150 
152  virtual std::string weatherLookModelDefinitionFor(const makArchives::DtEnvironmentRecord&) const;
153 
156  virtual void setLocalWeatherLookManager(DtLocalWeatherLookOperationManager*);
157 
160  {
161  return myLocalWeatherOperationLookManager;
162  }
163 
165  virtual bool isTimeFrozen() const;
166 
168  virtual bool isTimeSetToLocalOnFirstPlacement();
169 
170  virtual bool isLocalWeatherArea(makVrv::DtUniqueID id) const;
171 
173  {
174  return myGlobalWeather;
175  }
176 
177  virtual bool isWeatherObject(makVrv::DtUniqueID) const;
178 
180  virtual makVrv::DtUniqueID weatherAreaNear(makVrv::DtUniqueID) const;
181 
184  virtual makVrv::DtUniqueID weatherAreaNear(const DtVector&) const;
185 
186  public:
188  boost::signals2::signal<void (makVrv::DtElementID)> signal_removed;
189 
191  boost::signals2::signal<void (const makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*)> signal_updated;
192  boost::signals2::signal<void (const makVrv::DtStateView<DtVrlinkSimulatedWeatherState>*)> signal_weatherUpdated;
193 
196  boost::signals2::signal<void (makVrv::DtUniqueID, bool)> signal_isTimeFrozenChanged;
197  boost::signals2::signal<void (makVrv::DtUniqueID, bool)> signal_isTimeSetToLocalOnFirstPlacementChanged;
198 
200  boost::signals2::signal<void ()> signal_weatherLookRulesChanged;
201 
203  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_globalWeatherDiscovered;
204 
206  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_globalWeatherRemoved;
207 
208  protected:
210  virtual void addIfWeatherObject(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
211 
212  virtual void slot_globalWeatherObjectStateUpdated(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
213 
214  virtual void weatherObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
215  virtual void weatherObjectRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
216 
217  virtual void globalWeatherObjectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
218  virtual void globalWeatherObjectRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
219 
221  virtual void initExistingWeatherObjects();
222 
223  virtual void slot_onWeatherUpdated(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
224  virtual void slot_onWeatherStateUpdated(const makVrv::DtStateView<DtVrlinkSimulatedWeatherState>* s);
225 
228  virtual void offsetPriorityBy(makVrv::DtElementID id, int by);
229 
230  protected:
235 
237 
238  typedef std::map<makVrv::DtUniqueID, makVrv::DtSignalConnectionManager*> WeatherConnections;
242  };
243 }
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_globalWeatherDiscovered
Signal when global weather is discovered.
Definition: localWeatherManager.h:203
Virtual base class.
Definition: DtVirtualBaseClass.h:22
WeatherConnections myWeatherConnections
Definition: localWeatherManager.h:240
Definition: localWeatherLookOperationManager.h:22
const GlobalWeatherObjects & globalWeatherObjects() const
Definition: localWeatherManager.h:120
boost::signals2::signal< void(makVrv::DtUniqueID, bool)> signal_isTimeFrozenChanged
Signals sent when information about a particular global weather has updated.
Definition: localWeatherManager.h:196
const makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * myGlobalWeather
Definition: localWeatherManager.h:241
std::map< makVrv::DtUniqueID, makVrv::DtSignalConnectionManager * > WeatherConnections
Definition: localWeatherManager.h:238
Contains makVrv::DtStateView class.
bool hasGlobalWeather() const
Definition: localWeatherManager.h:125
makVrv::DtDe & myDe
Definition: localWeatherManager.h:231
Definition: localWeatherManager.h:36
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtLocalWeatherLookOperationManager * myLocalWeatherOperationLookManager
Definition: localWeatherManager.h:234
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
Contains makVrv::DtObserverSettingsManager class.
std::map< makVrv::DtUniqueID, GlobalScenarioCreationData > GlobalWeatherObjects
Definition: localWeatherManager.h:47
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_globalWeatherRemoved
Signal when all global weathers are removed.
Definition: localWeatherManager.h:206
boost::signals2::signal< void()> signal_weatherLookRulesChanged
Signal sent when the weather look rules have changed.
Definition: localWeatherManager.h:200
std::vector< DtWeatherLookModificationOperation * > WeatherLookModificationOperations
Definition: localWeatherLookOperationManager.h:25
Contains makVrv::DtVirtualBaseClass class.
const makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * globalWeather() const
Definition: localWeatherManager.h:172
The declaration of the makArchives::DtEnvironmentRecord class.
virtual const WeatherObjects & weatherObjects() const
Definition: localWeatherManager.h:62
A DtStateView is a the interface to simulation state information.
Definition: DtStateView.h:52
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
std::map< makVrv::DtElementID, makVrv::DtStateView< DtVrlinkSimulatedEnvironmentProcess > * > WeatherObjects
Definition: localWeatherManager.h:39
GlobalWeatherObjects myGlobalWeatherObjects
Definition: localWeatherManager.h:236
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:24
A DtSimCommand subclass which specifies a change to the weather settings for the specified weather ar...
Definition: changeWeatherCommand.h:28
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
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:188
boost::signals2::signal< void(makVrv::DtUniqueID, bool)> signal_isTimeSetToLocalOnFirstPlacementChanged
Definition: localWeatherManager.h:197
DtLocalWeatherLookOperationManager * localWeatherLookManager() const
Accessor for the manager.
Definition: localWeatherManager.h:159
bool isTimeFrozen
Definition: localWeatherManager.h:43
WeatherObjects myWeatherObjects
Definition: localWeatherManager.h:232
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
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:239
makVrv::DtSignalConnectionManager myConnectionManager
Definition: localWeatherManager.h:233

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)