![]() |
VR-Forces 4.8 Class Documentation
|
The DtShipFlagDirTickable updates a transform node to rotate into the direction of the wind and ship. More...

Public Member Functions | |
| DtShipFlagDirTickable (DtDe &de, DtElementID elementId, DtUniqueID sceneObjectId, DtUniqueID uniqueId, bool useInstancing, unsigned int nodeTypeIndex) | |
| CTOR. More... | |
| virtual | ~DtShipFlagDirTickable () |
| DTOR. More... | |
| virtual void | update (DtTime tNow) |
| Update the wind direction. More... | |
| float | calcRotAngleForShipFlag (DtSceneObject *sceneObj, DtDeadReckonUpdater *updater, DtTime tNow, const DtVector &windDirVec, float windSpeedKPH) |
| Calculate the rotation about Z for the flag given the ship velocity and wind velocity. More... | |
| DtVector | computeWindVec (DtSceneObject *sceneObj, float windDirRad) |
| Convert the wind angle to a directional vector. More... | |
| virtual bool | needsUpdate (DtTime tNow) |
| The check function called by DtTickableManager to verify if an update is required. More... | |
| virtual void | configure (osg::Node *n, const rapidjson::Value &windJsonData) |
| Configure node based on json data. More... | |
Public Member Functions inherited from makVrv::DtDynamicFeatureTickable | |
| virtual | ~DtDynamicFeatureTickable () |
| DTOR. More... | |
Public Member Functions inherited from makVrv::DtTickable | |
| virtual bool | updateIfNeeded (DtTime tNow) |
| Calls needsUpdate(), and then calls update() if needsUpdate() is true. More... | |
| virtual | ~DtTickable () |
| Virtual DTOR. More... | |
| virtual void | setIsThreadSafe (bool safe) |
| Get/set whether this tickable can be updated in parallel with other tickables. More... | |
| virtual bool | isThreadSafe () const |
| virtual void | setTickableListState (TickableListState safeList) |
| Track which tickable list (if any) this tickable is on Since the tickable constructor puts ALL tickables on the main (unThreadSafe) to start we need a way to check which list a tickable is on (and this way we can request removals from the correct list instead of having to call DtTickableManager::removeTickableObject(), which tries both lists). More... | |
| virtual TickableListState | tickableListState () const |
| virtual void | setUpdatePeriod (unsigned int period) |
| Specify how often (in # of frames) this tickable should call update. More... | |
| virtual unsigned int | updatePeriod () const |
| virtual bool | lodSystemEnabled () const |
| is the update LOD system enabled, overridden by subclasses More... | |
Public Member Functions inherited from makVrv::DtVirtualBaseClass | |
| DtVirtualBaseClass () | |
| Do nothing constructor. More... | |
| virtual | ~DtVirtualBaseClass () |
| Virtual do nothing destructor. More... | |
Static Public Attributes | |
| static const char * | theShipFlagDirFeatureName |
| Strings to get the different parts of the meta file Use these instead of hardcoded strings. More... | |
| static const char * | theTagRotOffsetDeg |
| static const char * | theTagRotDir |
| static const char * | theRotDirCW |
Protected Attributes | |
| DtSceneObject * | mySceneObject |
| The scene object we are querying. More... | |
| float | myLastFlagDir |
| Last update wind direction. More... | |
| DtVector | myLastPos |
| Last position. More... | |
| DtTime | myLastTime |
| Last update time. More... | |
| osgSim::DOFTransform * | myWindDirNode |
| Transform for the wind to act upon. More... | |
| float | myRotOffset |
| The rotation offset to bring the model's rotation in line with the wind's direction. More... | |
| float | myRotDir |
| Clockwise or counterclockwise rotation. More... | |
Protected Attributes inherited from makVrv::DtDynamicFeatureTickable | |
| DtDe & | myDe |
| The display engine. More... | |
| DtElementID | myElementId |
| Object element id. More... | |
| DtUniqueID | mySceneObjectId |
| To retrieve the scene object if needed. More... | |
| DtInstanceManager & | myInstanceManager |
| The instance manager in case we have instancing on. More... | |
| bool | myUseInstancing |
| Is instancing enabled? More... | |
| unsigned int | myNodeTypeIndex |
| For the node type used in the tickable, the index in the instancing array for that node type (so we update the right one) More... | |
| DtUniqueID | myUniqueId |
| For retrieving the instance state from the instance manager. More... | |
| std::string | myFeatureName |
| The name of the feature in the .meta file. More... | |
Protected Attributes inherited from makVrv::DtTickable | |
| DtTickableManagerInterface * | myManager |
| Pointer to manager for removal during destruction. More... | |
| DtSignalConnectionManager | myConnections |
| unsigned int | myFrameCounter |
| unsigned int | myFrameToUpdate |
| unsigned int | myUpdatePeriod |
| DtTime | myLastUpdateTime |
| bool | myIsThreadSafe |
| TickableListState | myTickableListState |
Additional Inherited Members | |
Public Types inherited from makVrv::DtTickable | |
| enum | TickableListState { TickableNotOnList, TickableOnMainList, TickableOnThreadSafeList } |
| Enumeration used to indicate which DtTickableManager's tickable list the tickable is on, if any. More... | |
Protected Member Functions inherited from makVrv::DtDynamicFeatureTickable | |
| DtDynamicFeatureTickable (DtDe &de, DtElementID elementId, DtUniqueID sceneObjectId, DtUniqueID uniqueId, bool useInstancing, unsigned int nodeTypeIndex) | |
| CTOR. More... | |
Protected Member Functions inherited from makVrv::DtTickable | |
| DtTickable (DtTickableManagerInterface *manager) | |
| CTOR. More... | |
| DtTickable () | |
| Unimplemented default CTOR. More... | |
| virtual void | slot_managerAboutToBeDeleted () |
The DtShipFlagDirTickable updates a transform node to rotate into the direction of the wind and ship.
| makVrv::DtShipFlagDirTickable::DtShipFlagDirTickable | ( | DtDe & | de, |
| DtElementID | elementId, | ||
| DtUniqueID | sceneObjectId, | ||
| DtUniqueID | uniqueId, | ||
| bool | useInstancing, | ||
| unsigned int | nodeTypeIndex | ||
| ) |
CTOR.
|
virtual |
DTOR.
|
virtual |
Update the wind direction.
Implements makVrv::DtTickable.
| float makVrv::DtShipFlagDirTickable::calcRotAngleForShipFlag | ( | DtSceneObject * | sceneObj, |
| DtDeadReckonUpdater * | updater, | ||
| DtTime | tNow, | ||
| const DtVector & | windDirVec, | ||
| float | windSpeedKPH | ||
| ) |
Calculate the rotation about Z for the flag given the ship velocity and wind velocity.
| DtVector makVrv::DtShipFlagDirTickable::computeWindVec | ( | DtSceneObject * | sceneObj, |
| float | windDirRad | ||
| ) |
Convert the wind angle to a directional vector.
The check function called by DtTickableManager to verify if an update is required.
If this function returns true, the DtTickableManager will then call update().
| [in] | tNow | is the current time-stamp. |
| true | if this object needs to be ticked. |
| false | otherwise. |
Reimplemented from makVrv::DtTickable.
|
virtual |
Configure node based on json data.
|
static |
Strings to get the different parts of the meta file Use these instead of hardcoded strings.
|
static |
|
static |
|
static |
|
protected |
The scene object we are querying.
|
protected |
Last update wind direction.
|
protected |
Last position.
|
protected |
Last update time.
|
protected |
Transform for the wind to act upon.
|
protected |
The rotation offset to bring the model's rotation in line with the wind's direction.
|
protected |
Clockwise or counterclockwise rotation.