VR-Forces 4.0.4 Class Documentation
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes
makVrv::DtObserver Class Reference

A facade for a DtObserverObject. More...

List of all members.

Public Types

typedef std::vector< DtElementIDElementList

Public Member Functions

 DtObserver (DtDe &de, DtAgentManagerInterface &sceneInterface, const DtObserverConfiguration &config)
 CTOR.
 ~DtObserver ()
 DTOR.
DtDede ()
 Get the observer's DtDe.
DtObserverObjectAgent & agent ()
 Get the observer object agent.
const DtObserverObjectAgent & agent () const
 Get the terrain patch object agent.
bool getRecord (makArchives::DtObserverStateRecord &recOut) const
 Returns true if recOut was filled with all the state of this object.
void setFromRecord (const makArchives::DtObserverStateRecord &rec)
 Fill out this object's state from the record.
bool getRecord (makArchives::DtObserverSettingsRecord &recOut) const
 Returns true if recOut was filled with all the setting of this object.
void setFromRecord (const makArchives::DtObserverSettingsRecord &rec)
 Fill out this object's settings from the record.
bool hasInitialLocation () const
 True if a setFromRecord results in a location set that should not be overriden by a subsequent reset (used in initialization only)
const std::string & name () const
 Get the configuration name.
void setName (const std::string &name)
int observerMode () const
 Get the visual mode for this observer.
void setObserverMode (int observerMode)
 Set the visual mode for this observer.
double viewResolution () const
 Get the observer's resolution (2D).In meters per pixel.
void setViewResolution (double resolution)
 Set the observer's resolution (2D). In meters per pixel.
double viewMagnification () const
 Get this observer's view magnification.
void setViewMagnification (double magnficationFactor)
 Set this observer's view magnification.
bool acceptingViewControl () const
 wrapper that queries the observer settings manager if the mode this observer is using accepts view control
DtObserverConfigurationconfiguration ()
const DtObserverConfigurationconfiguration () const
bool inUse (const std::string &channelKeyToIgnore="") const
 Returns true in this observer is found in any channel configuration.
virtual void synchronize ()
void attachToNextElement ()
 Tell the observer to attach to the next allowable object.
void attachToPreviousElement ()
 Tell the observer to attach to the previous allowable object.
bool isAttached (DtElementID) const
 Returns true if the element is attached as either a primary or secondary element.
bool isPrimaryAttached (DtElementID) const
 Returns true if the object is attached as a primary object.
bool isSecondaryAttached (DtElementID) const
 Returns true if the object is attached as a secondary object.
void setPrimaryAttachment (const ElementList &element)
 Attach to the following elements.
void setSecondaryAttachment (const ElementList &objects)
 Set secondary attachment to the following elements.
void setPartAttachment (int partId)
 Set the part number of the primary attachment.
int partAttachment () const
 Get the part ID that the observer is attached to.
void detach ()
 Detach from all elements.
bool attached () const
 Check if the observer is attached to elements.
bool tracking () const
 Check if the observer is attached to elements.
const ElementListprimaryAttachments () const
 Get the primary attachments.
const ElementListsecondaryAttachments () const
 Get the secondary attachments.
void setHideModelOnAttach (bool hide)
 Tell the observer to attach to the next allowable object.
bool hideModelOnAttach () const
 Tell the observer to attach to the next allowable object.
void setAttachType (DtObserverObject::AttachType type)
 Tell the observer to attach to the next allowable object.
DtObserverObject::AttachType attachType () const
 Tell the observer to attach to the next allowable object.
void setOrientToTargetConstraint (bool orient)
 Tell the observer to attach to the next allowable object.
bool orientToTargetConstraint () const
 Tell the observer to attach to the next allowable object.
DtElementID lastSingleAttached () const
 Last single id this observer attached to.
bool haveLastSingleAttached () const
 Has this observer ever attached to a single entity?
void reset ()
 If attached, call resetAttachment, else gotoTerrain center with first terrain patch in terrain patch list.
void setAllowReset (bool b)
 Sets whether or not resetting the observer is allowed.
bool allowReset () const
 Get if reset is allowed.
void setAllowAttach (bool b)
 Sets whether or not attachment is allowed.
bool allowAttach () const
 Get if attach is allowed.
void setAllowDetach (bool b)
 Sets whether or not detachment is allowed.
bool allowDetach () const
 Get if detach is allowed.
void centerOnTerrain ()
 rest and recenter.
void centerOnTerrain (const DtUniqueID &terrainPatch)
 reset and recenter to specified terrain patch
void suppressConstrainToTerrain (bool trueFalse)
 if constrain to terrain is on, suppress or end suppress if constrain to terrain is not on, do nothing
void setConstrainToCenter (bool trueFalse)
 constrain to point to center of earth (0.0.0)
void toggleConstrainToCenter ()
 If attached, call resetAttachment, else gotoTerrain center with first terrain patch in terrain patch list.
bool constrainToCenter () const
 If attached, call resetAttachment, else gotoTerrain center with first terrain patch in terrain patch list.
void getLocation (double &x, double &y, double &z) const
 Get the observer's position from the remote object.
DtVector location () const
 Get the observer's position from the remote object.
void setLocation (double x, double y, double z)
 Go to this position (database coordinates)
void getOrientation (double &psi, double &theta, double &phi) const
 Get the observer's orientation from the remote object.
void setOrientation (double psi, double theta, double phi)
 Go to this orientation.
void getOrientation (double &x, double &y, double &z, double &w) const
 Get the observer's orientation from the remote object.
void setOrientation (double x, double y, double z, double w)
 Go to this orientation.
void moveUnit (const DtVector &direction)
 Move the observer one arbitrary unit in some direction Direction is in observer coordinates.
void rotateUnit (const DtTaitBryan &rotation)
 Rotate the observer one arbitrary unit Rotation is in observer coordinates.
void getLinearVelocity (double &x, double &y, double &z) const
 Get the observer's linear velocity from the remote object.
void getRotationalVelocity (double &x, double &y, double &z) const
 Get the observer's rotational velocity from the remote object.
bool observerObjectMoving () const
 Check to see if the observer object is moving.
double observerAltitude () const
 Get the observer's current altitude.
void setAttachedLocation (double x, double y, double z)
 Go to this position relative to the attached object (if attached, otherwise ignored - also ignored in track attach mode)
void setAttachedOrientation (double psi, double theta, double phi)
 Go to this orientation relative to the attached object (if attached, otherwise ignored - also ignored in track attach mode)
void setLocalModelScalingEnabled (bool enabled)
 Sets whether local model scaling is enabled for attached entities in space attach mode.
void setLocalModelScalingAmount (float amount)
 Sets the amount of local model scaling to apply to attached entities when in space attach mode.
void setOrbitSpeedGain (int gain, bool forwardToObserverModeManager=true)
 Set the orbit speed gain.
int orbitSpeedGain () const
 Get the orbit speed gain.
int orbitSpeedGainFromSpeed (double speed) const
 Calculate the gain for a given speed.
void setRotationSpeedGain (int gain, bool forwardToObserverModeManager=true)
 Set the orbit speed gain.
int rotationSpeedGain () const
 Set the orbit speed gain.
void setLinearSpeedGain (int gain)
 Set scaled or unscaled gain based on current speed scaling state.
int linearSpeedGain () const
 Set the orbit speed gain.
void setLinearScaledSpeedGain (int gain, bool forwardToObserverModeManager=true)
 Set the orbit speed gain.
int linearScaledSpeedGain () const
 Set the orbit speed gain.
void setLinearUnscaledSpeedGain (int gain, bool forwardToObserverModeManager=true)
 Set the orbit speed gain.
int linearUnscaledSpeedGain () const
 Set the orbit speed gain.
void setGainPrecision (int amt, bool forwardToObserverModeManager=true)
 Set the orbit speed gain.
int gainPrecision () const
 Set the orbit speed gain.
void setModelScaleFactor (double modelScaleFactor, bool forwardToObserverModeManager=true)
 Set the orbit speed gain.
double modelScaleFactor () const
 Set the orbit speed gain.
void setModelScaleType (DtObserverObject::ScaleType modelScaleType, bool forwardToObserverModeManager=true)
 Set the orbit speed gain.
DtObserverObject::ScaleType modelScaleType () const
 Set the orbit speed gain.
void setOrbitSpeed (double speed)
 Set the orbit speed gain.
double orbitSpeed () const
 Set the orbit speed gain.
void setRotationSpeed (double speed)
 Set the orbit speed gain.
double rotationSpeed () const
 Set the orbit speed gain.
void setLinearSpeed (double speed)
 Set the orbit speed gain.
double linearSpeed () const
 Set the orbit speed gain.

Public Attributes

boost::signal< void(const
std::string &, DtUniqueID)> 
signal_objectAttached
 Boost signal called when observer attaches to an object.
boost::signal< void(const
std::string &)> 
signal_objectsDetached
 Boost signal called when observer detaches from all.
boost::signal< void(DtObserver
*, int)> 
signal_observerModeChanged
 Boost signal called when observer's mode changed.
boost::signal< void(DtObserver
*, int)> 
signal_linearScaledSpeedGainChanged
 Boost signal called when the scaled linear speed gain is changed.
boost::signal< void(DtObserver
*, int)> 
signal_linearUnscaledSpeedGainChanged
 Boost signal called when the unscaled linear speed gain is changed.
boost::signal< void(DtObserver
*, int)> 
signal_rotationSpeedGainChanged
 Boost signal called when the rotation speed gain is changed.
boost::signal< void(DtObserver
*, int)> 
signal_orbitSpeedGainChanged
 Boost signal called when the orbit speed gain is changed.
boost::signal< void(DtObserver
*, int)> 
signal_gainPrecisionChanged
 Boost signal called when the gain precision is changed.
boost::signal< void(DtObserver
*, double)> 
signal_modelScaleFactorChanged
 Boost signal called when the model scale factor is changed.
boost::signal< void(DtObserver
*, DtObserverObject::ScaleType)> 
signal_modelScaleTypeChanged
 Boost signal called when the model scale type is changed.
boost::signal< void(DtObserver
*, double)> 
signal_viewMagnificationChanged
 Boost signal called when the observer's view magnification is changed.

Protected Member Functions

void slot_terrainCleared ()
 reset observer
void updateGlobalTerrainFlag (bool flag)
double calcLinearSpeed () const
double calcRotationSpeed () const
double calcOrbitSpeed () const
void getObserverOffsetVector (double &x, double &y, double &z) const
void setObserverOffsetVector (double x, double y, double z)
void getObserverRotationOffset (double &x, double &y, double &z, double &w) const
void setObserverRotationOffset (double x, double y, double z, double w)
void getDisplayNamesFromUniqueIds (const std::vector< DtUniqueID > &idsIn, std::set< std::string > &displayNamesOut) const
bool getUniqueIdsFromDisplayNames (const std::set< std::string > &displayNamesIn, std::vector< DtUniqueID > &idsOut) const
makArchives::DtObserverSettingsRecord::AttachType convertObserverAttachType (DtObserverObject::AttachType type) const
DtObserverObject::AttachType convertObserverSettingsAttachType (makArchives::DtObserverSettingsRecord::AttachType type) const
void connectToElementDataSignals ()
void disconnectFromElementDataSignals ()
void setModeSpecificObserverObjectData ()
virtual void slot_onElementsAdded (const DtElementData::ElementList &elements)
 Called by signal whenever elements are added.
virtual void slot_onElementAttributesChanged (const DtElementData::EntryAttributesList &attributes)
 Called by signal whenever element attributes change.
void slot_observerModeModelSetChanged (int observerMode)
void slot_observerModeIs2DChanged (int observerMode)
void slot_observerModeKeyMapChanged (int observerMode)
void slot_observerModeGainPrecisionChanged (int observerMode)
void slot_observerModeOrbitSpeedGainChanged (int observerMode)
void slot_observerModeRotationSpeedGainChanged (int observerMode)
void slot_observerModeLinearScaledSpeedGainChanged (int observerMode)
void slot_observerModeLinearUnscaledSpeedGainChanged (int observerMode)
void slot_observerModeModelScaleFactorChanged (int observerMode)
void slot_observerModeModelScaleTypeChanged (int observerMode)
void slot_observerModeSettingChanged (int observerMode, int settingKey)
void slot_observerModeAdded (int observerMode)
void attachTo (bool afterTrue)
 Protected implementation of attach to.

Protected Attributes

DtDemyDe
DtSignalConnectionManager myConnections
DtObserverObjectAgent * myObserverObjectAgent
DtObserverConfigurationmyConfiguration
makArchives::DtObserverStateRecord myCachedObserverStateRecord
int myObserverMode
bool myHideModelOnAttach
DtObserverObject::AttachType myAttachType
std::vector< DtUniqueIDmyCurrentAttachments
std::vector< DtUniqueIDmySecondaryAttachments
DtUniqueID myLastSingleAttached
unsigned int myPartId
bool myOrientToTargetConstraint
bool myConstrainToCenter
bool myConnectedToElementDataSignals
bool myAllowReset
bool myAllowAttach
bool myAllowDetach
bool myHasInitialLocation
double myViewMagnification

Static Protected Attributes

static const double theMoveStepSize

Detailed Description

A facade for a DtObserverObject.


Member Typedef Documentation


Constructor & Destructor Documentation

makVrv::DtObserver::DtObserver ( DtDe de,
DtAgentManagerInterface sceneInterface,
const DtObserverConfiguration config 
)

CTOR.

DTOR.


Member Function Documentation

Get the observer's DtDe.

DtObserverObjectAgent& makVrv::DtObserver::agent ( )

Get the observer object agent.

const DtObserverObjectAgent& makVrv::DtObserver::agent ( ) const

Get the terrain patch object agent.

Returns true if recOut was filled with all the state of this object.

Fill out this object's state from the record.

Returns true if recOut was filled with all the setting of this object.

Fill out this object's settings from the record.

True if a setFromRecord results in a location set that should not be overriden by a subsequent reset (used in initialization only)

const std::string& makVrv::DtObserver::name ( ) const

Get the configuration name.

void makVrv::DtObserver::setName ( const std::string &  name)

Get the visual mode for this observer.

void makVrv::DtObserver::setObserverMode ( int  observerMode)

Set the visual mode for this observer.

Get the observer's resolution (2D).In meters per pixel.

void makVrv::DtObserver::setViewResolution ( double  resolution)

Set the observer's resolution (2D). In meters per pixel.

Get this observer's view magnification.

void makVrv::DtObserver::setViewMagnification ( double  magnficationFactor)

Set this observer's view magnification.

wrapper that queries the observer settings manager if the mode this observer is using accepts view control

bool makVrv::DtObserver::inUse ( const std::string &  channelKeyToIgnore = "") const

Returns true in this observer is found in any channel configuration.

Tell the observer to attach to the next allowable object.

Tell the observer to attach to the previous allowable object.

Returns true if the element is attached as either a primary or secondary element.

Returns true if the object is attached as a primary object.

Returns true if the object is attached as a secondary object.

Attach to the following elements.

If there are more than 1 element, the and the attach mode does not support multiple attachments the mode will change to AttachTypeTether

Set secondary attachment to the following elements.

Secondary attachment is used by certain attach modes to allow tracking a secondary attachment (aka the observer orientation) while attached to a a primary attachment (aka the observer position)

Set the part number of the primary attachment.

Setting the partID to 0 attaches to the primary object rather than the part.

Get the part ID that the observer is attached to.

Detach from all elements.

Check if the observer is attached to elements.

Check if the observer is attached to elements.

Get the primary attachments.

Get the secondary attachments.

Tell the observer to attach to the next allowable object.

Tell the observer to attach to the next allowable object.

Tell the observer to attach to the next allowable object.

Tell the observer to attach to the next allowable object.

Tell the observer to attach to the next allowable object.

Tell the observer to attach to the next allowable object.

Last single id this observer attached to.

Only valid if haveLastSingleAttached() (below) is true

Has this observer ever attached to a single entity?

If attached, call resetAttachment, else gotoTerrain center with first terrain patch in terrain patch list.

Sets whether or not resetting the observer is allowed.

Set to false in order to ignore resets and zeroing of terrain

Get if reset is allowed.

Sets whether or not attachment is allowed.

Get if attach is allowed.

Sets whether or not detachment is allowed.

Get if detach is allowed.

rest and recenter.

void makVrv::DtObserver::centerOnTerrain ( const DtUniqueID terrainPatch)

reset and recenter to specified terrain patch

if constrain to terrain is on, suppress or end suppress if constrain to terrain is not on, do nothing

constrain to point to center of earth (0.0.0)

If attached, call resetAttachment, else gotoTerrain center with first terrain patch in terrain patch list.

If attached, call resetAttachment, else gotoTerrain center with first terrain patch in terrain patch list.

void makVrv::DtObserver::getLocation ( double &  x,
double &  y,
double &  z 
) const

Get the observer's position from the remote object.

Get the observer's position from the remote object.

void makVrv::DtObserver::setLocation ( double  x,
double  y,
double  z 
)

Go to this position (database coordinates)

void makVrv::DtObserver::getOrientation ( double &  psi,
double &  theta,
double &  phi 
) const

Get the observer's orientation from the remote object.

void makVrv::DtObserver::setOrientation ( double  psi,
double  theta,
double  phi 
)

Go to this orientation.

void makVrv::DtObserver::getOrientation ( double &  x,
double &  y,
double &  z,
double &  w 
) const

Get the observer's orientation from the remote object.

void makVrv::DtObserver::setOrientation ( double  x,
double  y,
double  z,
double  w 
)

Go to this orientation.

void makVrv::DtObserver::moveUnit ( const DtVector direction)

Move the observer one arbitrary unit in some direction Direction is in observer coordinates.

void makVrv::DtObserver::rotateUnit ( const DtTaitBryan &  rotation)

Rotate the observer one arbitrary unit Rotation is in observer coordinates.

void makVrv::DtObserver::getLinearVelocity ( double &  x,
double &  y,
double &  z 
) const

Get the observer's linear velocity from the remote object.

void makVrv::DtObserver::getRotationalVelocity ( double &  x,
double &  y,
double &  z 
) const

Get the observer's rotational velocity from the remote object.

Check to see if the observer object is moving.

Get the observer's current altitude.

void makVrv::DtObserver::setAttachedLocation ( double  x,
double  y,
double  z 
)

Go to this position relative to the attached object (if attached, otherwise ignored - also ignored in track attach mode)

void makVrv::DtObserver::setAttachedOrientation ( double  psi,
double  theta,
double  phi 
)

Go to this orientation relative to the attached object (if attached, otherwise ignored - also ignored in track attach mode)

Sets whether local model scaling is enabled for attached entities in space attach mode.

Sets the amount of local model scaling to apply to attached entities when in space attach mode.

void makVrv::DtObserver::setOrbitSpeedGain ( int  gain,
bool  forwardToObserverModeManager = true 
)

Set the orbit speed gain.

Get the orbit speed gain.

int makVrv::DtObserver::orbitSpeedGainFromSpeed ( double  speed) const

Calculate the gain for a given speed.

void makVrv::DtObserver::setRotationSpeedGain ( int  gain,
bool  forwardToObserverModeManager = true 
)

Set the orbit speed gain.

Set the orbit speed gain.

Set scaled or unscaled gain based on current speed scaling state.

Set the orbit speed gain.

void makVrv::DtObserver::setLinearScaledSpeedGain ( int  gain,
bool  forwardToObserverModeManager = true 
)

Set the orbit speed gain.

Set the orbit speed gain.

void makVrv::DtObserver::setLinearUnscaledSpeedGain ( int  gain,
bool  forwardToObserverModeManager = true 
)

Set the orbit speed gain.

Set the orbit speed gain.

void makVrv::DtObserver::setGainPrecision ( int  amt,
bool  forwardToObserverModeManager = true 
)

Set the orbit speed gain.

Set the orbit speed gain.

void makVrv::DtObserver::setModelScaleFactor ( double  modelScaleFactor,
bool  forwardToObserverModeManager = true 
)

Set the orbit speed gain.

Set the orbit speed gain.

void makVrv::DtObserver::setModelScaleType ( DtObserverObject::ScaleType  modelScaleType,
bool  forwardToObserverModeManager = true 
)

Set the orbit speed gain.

Set the orbit speed gain.

void makVrv::DtObserver::setOrbitSpeed ( double  speed)

Set the orbit speed gain.

Set the orbit speed gain.

void makVrv::DtObserver::setRotationSpeed ( double  speed)

Set the orbit speed gain.

Set the orbit speed gain.

void makVrv::DtObserver::setLinearSpeed ( double  speed)

Set the orbit speed gain.

Set the orbit speed gain.

virtual void makVrv::DtObserver::synchronize ( ) [virtual]

reset observer

double makVrv::DtObserver::calcLinearSpeed ( ) const [protected]
double makVrv::DtObserver::calcRotationSpeed ( ) const [protected]
double makVrv::DtObserver::calcOrbitSpeed ( ) const [protected]
void makVrv::DtObserver::getObserverOffsetVector ( double &  x,
double &  y,
double &  z 
) const [protected]
void makVrv::DtObserver::setObserverOffsetVector ( double  x,
double  y,
double  z 
) [protected]
void makVrv::DtObserver::getObserverRotationOffset ( double &  x,
double &  y,
double &  z,
double &  w 
) const [protected]
void makVrv::DtObserver::setObserverRotationOffset ( double  x,
double  y,
double  z,
double  w 
) [protected]
void makVrv::DtObserver::getDisplayNamesFromUniqueIds ( const std::vector< DtUniqueID > &  idsIn,
std::set< std::string > &  displayNamesOut 
) const [protected]
bool makVrv::DtObserver::getUniqueIdsFromDisplayNames ( const std::set< std::string > &  displayNamesIn,
std::vector< DtUniqueID > &  idsOut 
) const [protected]
virtual void makVrv::DtObserver::slot_onElementsAdded ( const DtElementData::ElementList elements) [protected, virtual]

Called by signal whenever elements are added.

virtual void makVrv::DtObserver::slot_onElementAttributesChanged ( const DtElementData::EntryAttributesList attributes) [protected, virtual]

Called by signal whenever element attributes change.

void makVrv::DtObserver::slot_observerModeModelSetChanged ( int  observerMode) [protected]
void makVrv::DtObserver::slot_observerModeIs2DChanged ( int  observerMode) [protected]
void makVrv::DtObserver::slot_observerModeKeyMapChanged ( int  observerMode) [protected]
void makVrv::DtObserver::slot_observerModeGainPrecisionChanged ( int  observerMode) [protected]
void makVrv::DtObserver::slot_observerModeOrbitSpeedGainChanged ( int  observerMode) [protected]
void makVrv::DtObserver::slot_observerModeRotationSpeedGainChanged ( int  observerMode) [protected]
void makVrv::DtObserver::slot_observerModeModelScaleFactorChanged ( int  observerMode) [protected]
void makVrv::DtObserver::slot_observerModeModelScaleTypeChanged ( int  observerMode) [protected]
void makVrv::DtObserver::slot_observerModeSettingChanged ( int  observerMode,
int  settingKey 
) [protected]
void makVrv::DtObserver::slot_observerModeAdded ( int  observerMode) [protected]
void makVrv::DtObserver::attachTo ( bool  afterTrue) [protected]

Protected implementation of attach to.


Member Data Documentation

boost::signal<void(const std::string&, DtUniqueID)> makVrv::DtObserver::signal_objectAttached

Boost signal called when observer attaches to an object.

boost::signal<void(const std::string&)> makVrv::DtObserver::signal_objectsDetached

Boost signal called when observer detaches from all.

Boost signal called when observer's mode changed.

Boost signal called when the scaled linear speed gain is changed.

Boost signal called when the unscaled linear speed gain is changed.

Boost signal called when the rotation speed gain is changed.

Boost signal called when the orbit speed gain is changed.

Boost signal called when the gain precision is changed.

Boost signal called when the model scale factor is changed.

Boost signal called when the model scale type is changed.

Boost signal called when the observer's view magnification is changed.

const double makVrv::DtObserver::theMoveStepSize [static, protected]
DtObserverObjectAgent* makVrv::DtObserver::myObserverObjectAgent [protected]
unsigned int makVrv::DtObserver::myPartId [protected]

The documentation for this class was generated from the following file:

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)