30 , myPermeability(permeability)
42 myDepth = orig.myDepth;
43 myPermeability = orig.myPermeability;
50 return myDepth < other.myDepth;
55 return (myDepth == other.myDepth
56 && myPermeability == other.myPermeability);
60 return !(*
this == other);
73 : myUnderwaterVisibility(0.)
74 , mySubsurfaceLayers()
75 , myAmbientWaterTemperature(0.)
87 myUnderwaterVisibility = orig.myUnderwaterVisibility;
88 mySubsurfaceLayers = orig.mySubsurfaceLayers;
89 myAmbientWaterTemperature = orig.myAmbientWaterTemperature;
90 myPriority = orig.myPriority;
134 bool myIsRemoteComponent =
false;
137 #define THERMOCLINE_GETTER(number, Accessor, Setter) \
138 const double thermoclineLayer##number####Setter() const override \
140 const unsigned indexToUse = number - 1; \
141 DtVrfSubsurfaceLayer dummy; \
142 thermoclineLayer(indexToUse, dummy); \
143 return dummy.Accessor(); \
146 #define THERMOCLINE_SETTER(number, Accessor, Setter) \
147 void setThermoclineLayer##number####Setter( const double& Accessor ) override \
149 const unsigned indexToUse = number - 1; \
150 DtVrfSubsurfaceLayer dummy; \
151 thermoclineLayer(indexToUse, dummy); \
152 if (dummy.Accessor() != Accessor) \
154 dummy.set##Setter(Accessor); \
156 setThermoclineLayerByIndex(dummy, indexToUse); \
160 #define THERMOCLINE_SETTER_GETTER(number, Accessor, Setter) \
161 THERMOCLINE_GETTER(number, Accessor, Setter); \
162 THERMOCLINE_SETTER(number, Accessor, Setter);
166 #define NEXTFRAME_ACCESSOR_MUTATOR_(MemberType, Accessor, MutatorAndMember) \
168 const MemberType Accessor() const override { return frameState().Accessor(); }; \
169 void set##MutatorAndMember(const MemberType& v) override { if (frameState().Accessor() != v) { markModified(); frameState().set##MutatorAndMember(v); } };
Definition: stateDataTypes.h:23
DtStateComponentImplementationTemplate< DtSubsurfaceStateComponent, DtSubsurfaceStateComponentCurrentFrame, DtSubsurfaceStateComponentNextFrame > DtSubsurfaceStateComponentImplementation
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: subsurfaceStateComponent.h:248
virtual void removeSubsurfaceLayer(const DtVrfSubsurfaceLayer &layerToRemove)
Definition: subsurfaceStateComponent.h:129
bool operator==(const DtVrfSubsurfaceLayer &other) const
Definition: subsurfaceStateComponent.h:53
DtVrfSubsurfaceLayer(const DtVrfSubsurfaceLayer &orig)
Definition: subsurfaceStateComponent.h:34
Definition: stateComponentImplementationTemplate.h:68
Definition: stateComponent.h:266
ACCESSOR_MUTATOR_MEMBER(double, underwaterVisibility, UnderwaterVisibility)
#define NEXTFRAME_ACCESSOR_BY_REF_MUTATOR(MemberType, Accessor, MutatorAndMember)
Definition: stateComponentImplementationTemplate.h:57
DtSubsurfaceStateComponentData()
Definition: subsurfaceStateComponent.h:72
Definition: stateComponent.h:100
DtVrfSubsurfaceLayer(double depth, double permeability)
Definition: subsurfaceStateComponent.h:28
virtual ~DtSubsurfaceStateComponentNextFrame()
Definition: subsurfaceStateComponent.h:180
#define THERMOCLINE_GETTER(number, Accessor, Setter)
Definition: subsurfaceStateComponent.h:137
0) Define the State Component Data. This struct replaces the legion stuff
Definition: subsurfaceStateComponent.h:70
#define CURRENTFRAME_ACCESSOR_BY_REF(MemberType, Accessor, MutatorAndMember)
Definition: stateComponentImplementationTemplate.h:64
#define CURRENTFRAME_ACCESSOR(MemberType, Accessor, MutatorAndMember)
Definition: stateComponentImplementationTemplate.h:61
bool operator<(const DtVrfSubsurfaceLayer &other) const
Definition: subsurfaceStateComponent.h:48
Definition: stateComponentImplementationTemplate.h:89
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:228
#define NEXTFRAME_ACCESSOR_MUTATOR(MemberType, Accessor, MutatorAndMember)
Definition: stateComponentImplementationTemplate.h:49
DtSubsurfaceStateComponentCurrentFrame(DtStateData *sd)
Definition: subsurfaceStateComponent.h:215
2) Define the next frame class. This will be used for write access.
Definition: subsurfaceStateComponent.h:172
1) Define the interface class that will be used to represent the next and current frames...
Definition: subsurfaceStateComponent.h:103
DtVrfSubsurfaceLayer()
Definition: subsurfaceStateComponent.h:22
#define UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:53
DtSubsurfaceStateComponentNextFrame(DtStateData *sd)
Definition: subsurfaceStateComponent.h:175
DtStateComponentCreator< DtSubsurfaceStateComponentImplementation > DtSubsurfaceStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: subsurfaceStateComponent.h:252
bool operator!=(const DtVrfSubsurfaceLayer &other) const
Definition: subsurfaceStateComponent.h:58
virtual void addSubsurfaceLayer(const DtVrfSubsurfaceLayer &layerToAdd)
Definition: subsurfaceStateComponent.h:128
#define UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:57
Definition: subsurfaceStateComponent.h:20
DtSubsurfaceStateComponentData & operator=(const DtSubsurfaceStateComponentData &orig)
Definition: subsurfaceStateComponent.h:84
#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
std::multiset< DtVrfSubsurfaceLayer > DtVrfSubsurfaceLayerSet
Definition: subsurfaceStateComponent.h:66
#define THERMOCLINE_SETTER_GETTER(number, Accessor, Setter)
Definition: subsurfaceStateComponent.h:160
3) Define the current frame class. This will be used for read access.
Definition: subsurfaceStateComponent.h:212
DtSubsurfaceStateComponentData(const DtSubsurfaceStateComponentData &orig)
Definition: subsurfaceStateComponent.h:79
Contains the DtStateComponent class declaration.
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:291
Definition: stateComponentImplementationTemplate.h:137
ACCESSOR_MUTATOR_MEMBER(double, depth, Depth)
DtVrfSubsurfaceLayer & operator=(const DtVrfSubsurfaceLayer &orig)
Definition: subsurfaceStateComponent.h:39
void setIsRemoteComponent(bool b)
Definition: subsurfaceStateComponent.h:131