14 #include <vlutil/vlString.h>
15 #include <matrix/vlVector.h>
25 : myModeSettingsList(
"mode-settings")
26 , myHostId(
DtUUID::nullUUID())
31 : myModeSettingsList(orig.myModeSettingsList)
32 , myHostId(orig.myHostId)
46 return myModeSettingsList.hasModeSetting(i);
51 return myModeSettingsList.modeSetting(i);
56 return myModeSettingsList.modeSetting(i);
61 return myModeSettingsList.enabledModes();
66 return myModeSettingsList;
71 return myModeSettingsList;
89 : DtFrameStateInterface(sd)
103 virtual
bool canHaveModeCodeSet(DtModeType modeType)
const
118 virtual void setEnabledModes(
const std::vector<DtModeType>&)
override;
119 virtual std::vector<DtModeType> enabledModes()
const override;
120 virtual bool anyModeIsOn()
const override;
121 virtual bool modeIsOn(DtModeType)
const override;
122 virtual bool hasModeSetting(DtModeType)
const override;
128 virtual const DtUUID& hostId()
const override;
129 virtual void setHostId(
const DtUUID&)
override;
136 virtual void makeReadOnly()
override {};
151 virtual bool anyModeIsOn()
const override;
153 virtual std::vector<DtModeType> enabledModes()
const override;
154 virtual const DtUUID& hostId()
const override;
156 virtual bool modeIsOn(DtModeType)
const override;
157 virtual bool hasModeSetting(DtModeType)
const override;
184 if (myNextFrameState.isWritable())
186 myCurrentFrameState.advanceFrame(myNextFrameState.frameState());
189 myCurrentFrameState.emitComponentUpdated();
194 myCurrentFrameState.updateStateData(sd);
195 myNextFrameState.updateStateData(sd);
201 myCurrentFrameState.aboutToBeDeleted();
202 myNextFrameState.aboutToBeDeleted();
DtIffModeSettingsList & modeSettings()
Definition: iffStateComponent.h:64
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual bool modeIsOn(DtModeType) const
Definition: iffStateComponent.h:98
Definition: stateDataTypes.h:23
DtIffStateComponentData()
Default modes to be enabled mimic current VRL mode enabled.
Definition: iffStateComponent.h:24
DtIffStateComponentNextFrame myNextFrameState
Definition: iffStateComponent.h:207
const DtIffStateComponentData & frameState() const
Next frame access write access. Ensure this is only used in a single thread (i.e.a controller thread)...
Definition: iffStateComponent.h:125
DtStateComponentCreator< DtIffStateComponentImplementation > DtIffStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: iffStateComponent.h:212
std::vector< DtModeType > enabledModes() const
Definition: iffStateComponent.h:59
virtual std::vector< DtModeType > enabledModes() const
Definition: iffStateComponent.h:96
virtual bool hasModeSetting(DtModeType) const
Definition: iffStateComponent.h:99
virtual DtFrameStateInterface * nextFrameState() override
Definition: iffStateComponent.h:179
Definition: stateComponent.h:269
virtual bool anyModeIsOn() const
Definition: iffStateComponent.h:97
bool isDoubleBuffered()
Definition: iffStateComponent.h:177
bool hasModeSetting(int i) const
Definition: iffStateComponent.h:44
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: iffStateComponent.h:178
const DtIffModeSettingsList & modeSettings() const
Definition: iffStateComponent.h:69
2) Define the next frame class. This will be used for write access.
Definition: iffStateComponent.h:110
3) Define the current frame class. This will be used for read access.
Definition: iffStateComponent.h:143
Contains the DtUUID class declaration.
#define UNDEFINED_RETURNREF_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:34
DtIffModeSettingsList myModeSettingsList
Definition: iffStateComponent.h:77
DtIffStateComponentCurrentFrame myCurrentFrameState
Definition: iffStateComponent.h:206
Definition: stateComponent.h:86
virtual void makeWritable() override
Override to make component writable.
Definition: iffStateComponent.h:133
DtUUID myHostId
Definition: iffStateComponent.h:78
DtIffModeSetting * modeSetting(int i)
Definition: iffStateComponent.h:54
virtual void updateDataStorage() override
Implement to update data storage. Called from advanceFrame.
Definition: iffStateComponent.h:182
virtual void aboutToBeDeleted() override
Definition: iffStateComponent.h:198
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
virtual const DtIffModeSetting * modeSetting(int) const
Definition: iffStateComponent.h:93
Definition: iffModeSettings.h:88
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
Definition: iffModeSettings.h:124
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: iffStateComponent.h:192
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
#define CAN_HAVE_CODES_SET(modeType)
Definition: iffModeSettings.h:50
const DtIffModeSetting * modeSetting(int i) const
Definition: iffStateComponent.h:49
The DtIFFStateComponentList is a collection of iff components. Note that once a mode is enabled it ca...
Definition: iffStateComponent.h:21
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: iffStateComponent.h:172
virtual void aboutToBeDeleted()
virtual DtIffModeSetting * modeSetting(int)
Definition: iffStateComponent.h:94
const DtIffStateComponentData & frameState() const
Current frame state only can access current frame buffers. This ensures thread safety.
Definition: iffStateComponent.h:149
#define UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:57
#define DEFINE_ACCESSOR_MUTATOR(ReturnType, Accessor, Mutator)
Definition: doubleBufferedDataStorage.h:23
DtIffStateComponentData(const DtIffStateComponentData &orig)
Definition: iffStateComponent.h:30
DtIffStateComponentData & operator=(const DtIffStateComponentData &rhs)
Definition: iffStateComponent.h:36
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: iffStateComponent.h:180
#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
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: iffStateComponent.h:83
void advanceFrame(const DtIffStateComponentData &data)
Definition: iffStateComponent.h:161
Contains the DtStateComponent class declaration.
DtIffStateComponentData & frameState()
Definition: iffStateComponent.h:126
virtual void setEnabledModes(const std::vector< DtModeType > &)
Definition: iffStateComponent.h:95
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
DtIffStateComponentData myData
Definition: iffStateComponent.h:167