![]() |
VR-Forces Developer's Guide
|
DtGimbalDriver looks for the plane element created by DtExampleDriver (or DtDriverExamplePlugin) and implements a gimbal attached to that plane at a specified offset. It shows how to use the DtGeoReference class to position and orient the gimbal using the plane's position and orientation; and how to find azimuth and elevation angles to a target in the gimbal's local coordinate system. It attaches the observer named "Observer 1" to the gimbal, and uses the azimuth and elevation angles determined to lock the observer onto the target location.

Protected Member Functions | |
| virtual bool | initialize () |
| virtual void | slot_coordinateSystemChanged () |
Protected Member Functions inherited from makVrv::DtDriver | |
| void | applyChangesAndDelete (DtElementChanges *changes) |
| void | reportElementCreated (DtElementID id, DtElementID parentId, DtElementEntry::ElementType type) |
| void | reportElementAttribute (DtElementID id, DtElementAttribute *attribute) |
| void | reportElementDestroyed (DtElementID id) |
| void | start () |
| void | stop () |
| bool | tick () |
| virtual void | setInstanceName (const std::string &name) |
| virtual void | installAccessories () |
| virtual void | uninstallAccessories () |
Protected Attributes | |
| makVrv::DtGeoReference * | myPlaneGeoRef |
| makVrv::DtGeoReference * | myGimbalGeoRef |
| makVrv::DtSceneObjectAgent * | myGimbalSceneObjectAgent |
| makVrv::DtSceneObject * | myPlaneSceneObject |
| makVrv::DtElementID | myGimbalId |
| makVrv::DtSignalConnectionManager | mySignalConnections |
| DtGeodeticCoord * | myTargetLocation |
| makVrv::DtElementID | myPlaneElementId |
| DtGimbalSensorOverlay * | myGimbalSensorOverlay |
Protected Attributes inherited from makVrv::DtDriver | |
| DtAgentManager & | myAgentManager |
| bool | myStartedFlag |
| std::string | myName |
| DtConfiguration | myConfiguration |
| bool | myPersistentFlag |
| bool | myUserControllableFlag |
| bool | myRequestStateDiffPendingFlag |
| DtElementChanges | myChanges |
Methods Inherited from makVrv::DtDriver | |
| virtual const std::string & | className () const |
| virtual bool | onStart () |
| virtual bool | onStop () |
| virtual bool | onTick () |
| virtual void | attachObserverToEntity (const std::string &observerName, const std::string &entityName) |
| virtual void | slot_displayEngineAdded (const makVrv::DtDeRecord &igRecord) |
Additional Inherited Members | |
Static Protected Attributes inherited from makVrv::DtDriver | |
| static const std::string | theOnDriverSelectionList |
| DtGimbalDriver::DtGimbalDriver | ( | makVrv::DtAgentManager & | am | ) |
CTOR.
|
delete |
Unimplemented CTOR to prevent auto-creation.
|
virtual |
Virtual DTOR.
|
virtual |
Returns the driver's class name.
Implements makVrv::DtDriver.
|
protectedvirtual |
Performs startup logic for the driver. In this case, this method is a no-op (but must be implemented since it's pure virtual). Initialization is delayed until onTick() so that the plane we need to attach exists.
Implements makVrv::DtDriver.
|
protectedvirtual |
Performs shutdown logic for the driver. Deletes the Gimbal Element and GeoReference objects.
Implements makVrv::DtDriver.
|
protectedvirtual |
Performs update logic for the driver. If myGimbalSceneObjectAgent hasn't been initialized yet, onTick() calls initialize(). Once initialized, each tick this method:
Implements makVrv::DtDriver.
|
protectedvirtual |
Tells the named observer to attach to the named entity. This method uses an observer state record, and calls DtObserver::setFromRecord. When setFromRecord is used, the observer will listen for the existence of the named entity and actually do the attachment when the entity is created.
|
protectedvirtual |
Ensures the driver is properly restarted when a de is connected (such as a remote display engine).
Reimplemented from makVrv::DtDriver.
|
protectedvirtual |
initialize() looks for the plane created by DtExampleDriver (or DtExampleDriverPlugin). When found, it creates a Gimbal element that can be (logically) attached to the plane. It also creates the DtGeoReferences to use for topocentric operations to correctly place the Gimbal element and put the target into Gimbal coordinates.
|
protectedvirtual |
We use this to set up our target location. This is mostly for future use when we support alternate datums, since the target location (being geodetic) needs to be reset if the datum changes.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |