16 class DtExternalNextFrameState;
34 return myStateDataManager;
42 void setObjectName(
const DtString& objectName);
43 const DtString& nextFrameObjectName();
44 void setEntityType(
const DtEntityType& et);
45 void setEntityId(
const DtEntityIdentifier&);
46 void setLabel(
const DtString& objectName);
47 void setForceType(DtForceType);
48 void setWorldPosition(
const DtVector&);
49 void setWorldOrientation(
const DtTaitBryan&);
50 void setAppearance(
int);
52 void removeExtendedData(
const DtString& key);
53 void setExtendedData(
const std::map<std::string, std::string>&);
54 void setExtendedData(
const std::map<DtString, DtString>&);
55 void setUserData(
unsigned long long);
64 void setPenStyle(
int);
65 void setColor(
unsigned int);
66 void setFillStyle(
int);
67 void setLineWidth(
int);
68 void setPhysicalLineWidth(
double);
69 void setPhysicalLineHeight(
double);
71 void setProjected(
bool);
72 void setClosedFigure(
bool);
77 virtual std::shared_ptr<DtGuiLocalObject> guiLocalObjectReference();
81 virtual void resetReference();
84 template <
typename T_Component>
89 T_Component* comp = myExternalNextFrameState->addStateComponent<T_Component>(checkWritable, isRemote);
115 void setHostId(
const std::string&);
116 void setHostId(
const DtUUID&);
122 void setCapabilities(
int);
123 void setGuise(
const DtEntityType&);
126 void setWorldVertices(
const std::vector<DtVector>&);
127 void setLocalVertices(
const std::vector<DtVector>&);
129 template <
typename T_Component>
132 if (myExternalNextFrameState)
134 return myExternalNextFrameState->hasStateComponent<T_Component>();
137 return DtGuiSimObject::hasStateComponent<T_Component>();
142 if (myNextFrameSimulatedObjectStateComponent)
144 return myNextFrameSimulatedObjectStateComponent;
146 else if (!myCachedComponents && hasStateComponent<DtSimulatedObjectStateComponent>())
148 return getNextFrameStateComponent<DtSimulatedObjectStateComponent>();
158 if (myNextFrameLocationStateComponent)
160 return myNextFrameLocationStateComponent;
162 else if (!myCachedComponents && hasStateComponent<DtLocationStateComponent>())
164 return getNextFrameStateComponent<DtLocationStateComponent>();
174 if (myNextFrameVrfStateComponent)
176 return myNextFrameVrfStateComponent;
178 else if (!myCachedComponents && hasStateComponent<DtVrfStateComponent>())
180 return getNextFrameStateComponent<DtVrfStateComponent>();
190 if (myNextFrameVrfGeometryStateComponent)
192 return myNextFrameVrfGeometryStateComponent;
194 else if (!myCachedComponents && hasStateComponent<DtVrfGeometryStateComponent>())
196 return getNextFrameStateComponent<DtVrfGeometryStateComponent>();
206 if (myNextFrameEnvironmentalStateComponent)
208 return myNextFrameEnvironmentalStateComponent;
210 else if (!myCachedComponents && hasStateComponent<DtEnvironmentalStateComponent>())
212 return getNextFrameStateComponent<DtEnvironmentalStateComponent>();
221 template <
typename T_Component>
224 if (myExternalNextFrameState)
226 return myExternalNextFrameState->getStateComponent<T_Component>();
233 template <
typename T_Component>
236 const T_Component* comp = DtGuiSimObject::getStateComponent<T_Component>();
240 comp =
const_cast<DtGuiLocalObject*
>(
this)->getNextFrameStateComponent<T_Component>();
247 LocalObjectModifiedSignalMap::const_iterator iter = myLocalObjectModifiedSignalMap.find(comp);
249 if (iter != myLocalObjectModifiedSignalMap.end())
251 return ((*iter->second.get()).num_slots() > 0);
258 template <
typename T_Component>
261 return signalWhenModified(T_Component::ComponentType());
266 LocalObjectModifiedSignalMap::iterator iter = myLocalObjectModifiedSignalMap.find(comp);
268 if (iter == myLocalObjectModifiedSignalMap.end())
271 iter = myLocalObjectModifiedSignalMap.find(comp);
274 return *(iter->second.get());
281 virtual void setUUID(
const DtUUID&)
override;
284 virtual void cacheComponents()
override;
285 virtual void clearCachedComponents()
override;
286 virtual void slot_localStateDataModified();
287 virtual void completeLocalStateModified(std::set<int> modifiedStateComponentTypes);
288 virtual void slot_stateDataDeleted();
unsigned int StateComponentType
Definition: stateComponent.h:56
UUID is a unique ID wrapper class.
Definition: uuid.h:59
LocalObjectModifiedSignal & signalWhenModified() const
Definition: guiLocalObject.h:259
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: statePropertiesStateComponent.h:93
Definition: stateDataTypes.h:23
DtExternalNextFrameState * myExternalNextFrameState
Definition: guiLocalObject.h:299
boost::signals2::scoped_connection myStateDataDeletedConnection
Definition: guiLocalObject.h:307
The DtLocationStateComponent interface contains the interface that all DtLocationStateComponents can ...
Definition: locationStateComponent.h:25
virtual void setIsRemoteComponent(bool b)
Definition: stateComponent.h:136
1) Define the interface class that will be used to represent the next and current frames...
Definition: entityStateComponent.h:91
DtGuiLocalObject(makVrv::DtDe &de, const DtStateDataManager *simManager, const DtEntityIdentifier &id)
Definition: guiLocalObject.h:28
The DtSimulatedObjectStateComponent is an interface that all main components (those that are consider...
Definition: simulatedObjectStateComponent.h:21
DtSimObjectReference mySimObjectReference
Definition: guiLocalObject.h:304
Definition: guiSimObject.h:28
boost::signals2::signal< void(DtGuiLocalObject *)> LocalObjectModifiedSignal
Definition: guiLocalObject.h:257
DtLocationStateComponent * nextFrameLocationStateComponent()
Definition: guiLocalObject.h:156
boost::signals2::signal< void(DtGuiLocalObject *)> signal_localObjectAboutToBeRemoved
Definition: guiLocalObject.h:277
Definition: stateData.h:139
virtual DtString markingText() override
Definition: guiLocalObject.h:320
T_Component * getNextFrameStateComponent()
General call to get any component that does not have a method.
Definition: guiLocalObject.h:222
boost::signals2::scoped_connection myStateDataModifiedConnection
Definition: guiLocalObject.h:308
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
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: vrfGeometryStateComponent.h:54
std::map< int, std::unique_ptr< LocalObjectModifiedSignal > > LocalObjectModifiedSignalMap
Definition: guiLocalObject.h:301
bool hasStateComponent() const
Definition: guiLocalObject.h:130
static const DtUUID & nullUUID()
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: vrfStateComponent.h:62
DtStateData * myStateData
Definition: guiLocalObject.h:311
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
boost::signals2::connection myPostTickConnection
Definition: guiLocalObject.h:303
std::shared_ptr< DtGuiLocalObject > myGuiLocalObjectReference
Definition: guiLocalObject.h:305
makVrv::DtDe & myDe
Definition: guiLocalObject.h:300
const T_Component * getStateComponent() const
General call to get any component that does not have a method.
Definition: guiLocalObject.h:234
std::set< const DtFrameStateInterface * > myManagedStateComponents
Definition: guiLocalObject.h:306
DtVrfStateComponent * nextFrameVrfStateComponent()
Definition: guiLocalObject.h:172
T_Component * addStateComponent(bool checkWritable=false, bool isRemote=false)
Adds the given state component by its intrinsic type.
Definition: guiLocalObject.h:85
LocalObjectModifiedSignalMap myLocalObjectModifiedSignalMap
Definition: guiLocalObject.h:302
Definition: guiLocalObject.h:18
Definition: stateComponent.h:52
DtVrfGeometryStateComponent * nextFrameVrfGeometryStateComponent()
Definition: guiLocalObject.h:188
DtEnvironmentalStateComponent * nextFrameEnvironmentalStateComponent()
Definition: guiLocalObject.h:204
virtual DtUUIDMarkingTextProvider * clone() const override
Definition: guiLocalObject.h:321
boost::signals2::signal< void(DtGuiLocalObject *)> signal_stateDataDeleted
Definition: guiLocalObject.h:278
DtStateData * stateData()
Definition: guiLocalObject.h:37
DtSimulatedObjectStateComponent * nextFrameSimulatedObjectStateComponent()
Definition: guiLocalObject.h:140
bool wantsModificationSignal(int comp) const
Definition: guiLocalObject.h:245
A list of properties. A DtPropertyInterface object that is a specialized version of DtRwVariableBindi...
Definition: rwProperties.h:122
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:76
DtGuiLocalObject(makVrv::DtDe &de, const DtStateDataManager *simManager, const DtUUID &uuid)
Definition: guiLocalObject.h:27
const DtStateDataManager * stateDataManager() const
Definition: guiLocalObject.h:32
DtGuiLocalObjectMarkingTextProvider(const DtGuiLocalObjectMarkingTextProvider &rhs)
Definition: guiLocalObject.h:318
LocalObjectModifiedSignal & signalWhenModified(int comp) const
Definition: guiLocalObject.h:264
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
DtGuiLocalObjectMarkingTextProvider(const DtGuiLocalObject &lo)
Definition: guiLocalObject.h:317
To allow for faster marking text lookups, the DtUUIDMarkingTextProvider class wraps an object that wi...
Definition: uuid.h:30
Definition: guiLocalObject.h:314
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: environmentalStateComponent.h:103
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73