VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
aircraftLightingStateComponent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 #include "legionDataStore/writeStateInstance.h"
11 
12 #include <vlutil/vlString.h>
13 
14 namespace makVrf
15 {
17  {
23  , myNvgMode(0)
24  , myTaxiwayLightsOn(false)
25  , myHduLightsOn(false)
38  {};
39 
41  {
46  myNvgMode = orig.myNvgMode;
61  }
62 
64  {
69  myNvgMode = orig.myNvgMode;
84 
85  return *this;
86  }
87 
88  DEFINE_ACCESSOR_MUTATOR(int, antiCollisionLightsDayNight, AntiCollisionLightsDayNight)
89  DEFINE_ACCESSOR_MUTATOR(int, antiCollisionLightsFlashing, AntiCollisionLightsFlashing)
90  DEFINE_ACCESSOR_MUTATOR(int, formationLightsLuminance, FormationLightsLuminance)
91  DEFINE_ACCESSOR_MUTATOR(int, navigationLightsFlashing, NavigationLightsFlashing)
92  DEFINE_ACCESSOR_MUTATOR(int, nvgMode, NvgMode)
93  DEFINE_ACCESSOR_MUTATOR(bool, taxiwayLightsOn, TaxiwayLightsOn)
94  DEFINE_ACCESSOR_MUTATOR(bool, hduLightsOn, HduLightsOn)
95  DEFINE_ACCESSOR_MUTATOR(bool, refuelingStation1LightsOn, RefuelingStation1LightsOn)
96  DEFINE_ACCESSOR_MUTATOR(int, refuelingStation1LightsColor, RefuelingStation1LightsColor)
97  DEFINE_ACCESSOR_MUTATOR(bool, refuelingStation1LightsFlashing, RefuelingStation1LightsFlashing)
98  DEFINE_ACCESSOR_MUTATOR(int, refuelingStation1DayNight, RefuelingStation1DayNight)
99  DEFINE_ACCESSOR_MUTATOR(bool, refuelingStation2LightsOn, RefuelingStation2LightsOn)
100  DEFINE_ACCESSOR_MUTATOR(int, refuelingStation2LightsColor, RefuelingStation2LightsColor)
101  DEFINE_ACCESSOR_MUTATOR(bool, refuelingStation2LightsFlashing, RefuelingStation2LightsFlashing)
102  DEFINE_ACCESSOR_MUTATOR(int, refuelingStation2DayNight, RefuelingStation2DayNight)
103  DEFINE_ACCESSOR_MUTATOR(bool, refuelingStation3LightsOn, RefuelingStation3LightsOn)
104  DEFINE_ACCESSOR_MUTATOR(int, refuelingStation3LightsColor, RefuelingStation3LightsColor)
105  DEFINE_ACCESSOR_MUTATOR(bool, refuelingStation3LightsFlashing, RefuelingStation3LightsFlashing)
106  DEFINE_ACCESSOR_MUTATOR(int, refuelingStation3DayNight, RefuelingStation3DayNight)
107 
108  protected:
128  };
129 
133  {
134  public:
136 
138  : DtFrameStateInterface(storage)
139  {
140  }
141 
142  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, antiCollisionLightsDayNight, AntiCollisionLightsDayNight)
143  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, antiCollisionLightsFlashing, AntiCollisionLightsFlashing)
144  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, formationLightsLuminance, FormationLightsLuminance)
145  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, navigationLightsFlashing, NavigationLightsFlashing)
146  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, nvgMode, NvgMode)
147  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, taxiwayLightsOn, TaxiwayLightsOn)
148  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, hduLightsOn, HduLightsOn)
149  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, refuelingStation1LightsOn, RefuelingStation1LightsOn)
150  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, refuelingStation1LightsColor, RefuelingStation1LightsColor)
151  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, refuelingStation1LightsFlashing, RefuelingStation1LightsFlashing)
152  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, refuelingStation1DayNight, RefuelingStation1DayNight)
153  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, refuelingStation2LightsOn, RefuelingStation2LightsOn)
154  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, refuelingStation2LightsColor, RefuelingStation2LightsColor)
155  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, refuelingStation2LightsFlashing, RefuelingStation2LightsFlashing)
156  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, refuelingStation2DayNight, RefuelingStation2DayNight)
157  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, refuelingStation3LightsOn, RefuelingStation3LightsOn)
158  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, refuelingStation3LightsColor, RefuelingStation3LightsColor)
159  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, refuelingStation3LightsFlashing, RefuelingStation3LightsFlashing)
160  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, refuelingStation3DayNight, RefuelingStation3DayNight)
161 
162  };
163 
166  {
167  public:
169  virtual ~DtAircraftLightingStateComponentNextFrame() override;
170 
173  const DtAircraftLightingStateComponentData& frameState() const { return myData; };
175 
176  virtual const int antiCollisionLightsDayNight() const override;
177  virtual void setAntiCollisionLightsDayNight(const int&) override;
178 
179  virtual const int antiCollisionLightsFlashing() const override;
180  virtual void setAntiCollisionLightsFlashing(const int&) override;
181 
182  virtual const int formationLightsLuminance() const override;
183  virtual void setFormationLightsLuminance(const int&) override;
184 
185  virtual const int navigationLightsFlashing() const override;
186  virtual void setNavigationLightsFlashing(const int&) override;
187 
188  virtual const int nvgMode() const override;
189  virtual void setNvgMode(const int&) override;
190 
191  virtual const bool taxiwayLightsOn() const override;
192  virtual void setTaxiwayLightsOn(const bool&) override;
193 
194  virtual const bool hduLightsOn() const override;
195  virtual void setHduLightsOn(const bool&) override;
196 
197  virtual const bool refuelingStation1LightsOn() const override;
198  virtual void setRefuelingStation1LightsOn(const bool&) override;
199 
200  virtual const int refuelingStation1LightsColor() const override;
201  virtual void setRefuelingStation1LightsColor(const int&) override;
202 
203  virtual const bool refuelingStation1LightsFlashing() const override;
204  virtual void setRefuelingStation1LightsFlashing(const bool&) override;
205 
206  virtual const int refuelingStation1DayNight() const override;
207  virtual void setRefuelingStation1DayNight(const int&) override;
208 
209  virtual const bool refuelingStation2LightsOn() const override;
210  virtual void setRefuelingStation2LightsOn(const bool&) override;
211 
212  virtual const int refuelingStation2LightsColor() const override;
213  virtual void setRefuelingStation2LightsColor(const int&) override;
214 
215  virtual const bool refuelingStation2LightsFlashing() const override;
216  virtual void setRefuelingStation2LightsFlashing(const bool&) override;
217 
218  virtual const int refuelingStation2DayNight() const override;
219  virtual void setRefuelingStation2DayNight(const int&) override;
220 
221  virtual const bool refuelingStation3LightsOn() const override;
222  virtual void setRefuelingStation3LightsOn(const bool&) override;
223 
224  virtual const int refuelingStation3LightsColor() const override;
225  virtual void setRefuelingStation3LightsColor(const int&) override;
226 
227  virtual const bool refuelingStation3LightsFlashing() const override;
228  virtual void setRefuelingStation3LightsFlashing(const bool&) override;
229 
230  virtual const int refuelingStation3DayNight() const override;
231  virtual void setRefuelingStation3DayNight(const int&) override;
232 
234  virtual void makeWritable() override {};
235 
237  virtual void makeReadOnly() override {};
238 
239 
240  protected:
242  };
243 
246  {
247  public:
248 
251 
253  const DtAircraftLightingStateComponentData& frameState() const { return myData; };
254 
255  virtual const int antiCollisionLightsDayNight() const override;
256  virtual const int antiCollisionLightsFlashing() const override;
257  virtual const int formationLightsLuminance() const override;
258  virtual const int navigationLightsFlashing() const override;
259  virtual const int nvgMode() const override;
260  virtual const bool taxiwayLightsOn() const override;
261  virtual const bool hduLightsOn() const override;
262  virtual const bool refuelingStation1LightsOn() const override;
263  virtual const int refuelingStation1LightsColor() const override;
264  virtual const bool refuelingStation1LightsFlashing() const override;
265  virtual const int refuelingStation1DayNight() const override;
266  virtual const bool refuelingStation2LightsOn() const override;
267  virtual const int refuelingStation2LightsColor() const override;
268  virtual const bool refuelingStation2LightsFlashing() const override;
269  virtual const int refuelingStation2DayNight() const override;
270  virtual const bool refuelingStation3LightsOn() const override;
271  virtual const int refuelingStation3LightsColor() const override;
272  virtual const bool refuelingStation3LightsFlashing() const override;
273  virtual const int refuelingStation3DayNight() const override;
274 
275  friend class DtAircraftLightingStateImplementation;
277  {
278  myData = data;
279  }
280 
281  protected:
283  };
284 
288  {
289  public:
291 
292  bool isDoubleBuffered() { return true; };
293  virtual const DtFrameStateInterface* currentFrameState() const override { return &myCurrentFrameState; }
294  virtual DtFrameStateInterface* nextFrameState() override { return &myNextFrameState; };
295  virtual const DtFrameStateInterface* nextFrameState() const override { return &myNextFrameState; };
296 
297  virtual void updateDataStorage() override
298  {
299  if (myNextFrameState.isWritable())
300  {
301  myCurrentFrameState.advanceFrame(myNextFrameState.frameState());
302  }
303 
304  myCurrentFrameState.emitComponentUpdated();
305  }
306 
307  virtual void updateStateData(DtStateData* sd) override
308  {
309  myCurrentFrameState.updateStateData(sd);
310  myNextFrameState.updateStateData(sd);
311  }
312 
313  virtual void aboutToBeDeleted() override
314  {
316  myCurrentFrameState.aboutToBeDeleted();
317  myNextFrameState.aboutToBeDeleted();
318  }
319 
320  protected:
323  };
324 
328 }
int myRefuelingStation2LightsColor
Definition: aircraftLightingStateComponent.h:115
int myRefuelingStation3DayNight
Definition: aircraftLightingStateComponent.h:119
int myRefuelingStation2DayNight
Definition: aircraftLightingStateComponent.h:118
bool myRefuelingStation3LightsOn
Definition: aircraftLightingStateComponent.h:124
Definition: stateComponent.h:269
bool myRefuelingStation3LightsFlashing
Definition: aircraftLightingStateComponent.h:127
bool myTaxiwayLightsOn
Definition: aircraftLightingStateComponent.h:120
bool myRefuelingStation1LightsFlashing
Definition: aircraftLightingStateComponent.h:125
bool myHduLightsOn
Definition: aircraftLightingStateComponent.h:121
virtual void aboutToBeDeleted() override
Definition: aircraftLightingStateComponent.h:313
DtStateComponentCreator< DtAircraftLightingStateComponentImplementation > DtAircraftLightingStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: aircraftLightingStateComponent.h:327
const DtAircraftLightingStateComponentData & frameState() const
Next frame access write access. Ensure this is only used in a single thread (i.e.a controller thread)...
Definition: aircraftLightingStateComponent.h:173
int myRefuelingStation3LightsColor
Definition: aircraftLightingStateComponent.h:116
int myNavigationLightsFlashing
Definition: aircraftLightingStateComponent.h:112
DtAircraftLightingStateComponentData myData
Definition: aircraftLightingStateComponent.h:282
DtAircraftLightingStateComponentNextFrame myNextFrameState
Definition: aircraftLightingStateComponent.h:322
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: aircraftLightingStateComponent.h:293
int myRefuelingStation1LightsColor
Definition: aircraftLightingStateComponent.h:114
int myNvgMode
Definition: aircraftLightingStateComponent.h:113
Definition: aircraftLightingStateComponent.h:16
DtAircraftLightingStateComponentData & operator=(const DtAircraftLightingStateComponentData &orig)
Definition: aircraftLightingStateComponent.h:63
2) Define the next frame class. This will be used for write access.
Definition: aircraftLightingStateComponent.h:165
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
bool myRefuelingStation1LightsOn
Definition: aircraftLightingStateComponent.h:122
DtAircraftLightingStateComponentCurrentFrame myCurrentFrameState
Definition: aircraftLightingStateComponent.h:321
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
int myAntiCollisionLightsFlashing
Definition: aircraftLightingStateComponent.h:110
bool myRefuelingStation2LightsOn
Definition: aircraftLightingStateComponent.h:123
virtual DtFrameStateInterface * nextFrameState() override
Definition: aircraftLightingStateComponent.h:294
#define UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:53
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: aircraftLightingStateComponent.h:307
virtual void makeWritable() override
Override to make component writable.
Definition: aircraftLightingStateComponent.h:234
virtual void aboutToBeDeleted()
bool myRefuelingStation2LightsFlashing
Definition: aircraftLightingStateComponent.h:126
DtAircraftLightingStateComponentData & frameState()
Definition: aircraftLightingStateComponent.h:174
bool isDoubleBuffered()
Definition: aircraftLightingStateComponent.h:292
int myAntiCollisionLightsDayNight
Definition: aircraftLightingStateComponent.h:109
#define DEFINE_ACCESSOR_MUTATOR(ReturnType, Accessor, Mutator)
Definition: doubleBufferedDataStorage.h:23
3) Define the current frame class. This will be used for read access.
Definition: aircraftLightingStateComponent.h:245
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: aircraftLightingStateComponent.h:295
DtAircraftLightingStateComponentData(const DtAircraftLightingStateComponentData &orig)
Definition: aircraftLightingStateComponent.h:40
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: aircraftLightingStateComponent.h:287
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: aircraftLightingStateComponent.h:132
void advanceFrame(const DtAircraftLightingStateComponentData &data)
Definition: aircraftLightingStateComponent.h:276
Contains the DtStateComponent class declaration.
const DtAircraftLightingStateComponentData & frameState() const
Current frame state only can access current frame buffers. This ensures thread safety.
Definition: aircraftLightingStateComponent.h:253
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
DtAircraftLightingStateComponentData()
Definition: aircraftLightingStateComponent.h:18
int myRefuelingStation1DayNight
Definition: aircraftLightingStateComponent.h:117
int myFormationLightsLuminance
Definition: aircraftLightingStateComponent.h:111
virtual void updateDataStorage() override
Implement to update data storage. Called from advanceFrame.
Definition: aircraftLightingStateComponent.h:297

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)