version 3.3

VRS::InteractionConcept Class Reference

A InteractionConcept combines all components of a complete solution in a virtual environment. More...

#include <vrs/sg/interactionconcept.h>

Inheritance diagram for VRS::InteractionConcept:

VRS::BehaviorNode VRS::SharedObj VRS::Visitable

List of all members.

Public Member Functions

 InteractionConcept (SO< LookAt > lookAt=NULL)
 Constructs a InteractionConcept.
SO< LookAtgetLookAt () const
 Get/Set LookAt, which is controlled by the InteractionConcept.
void setLookAt (SO< LookAt > lookAt)
void addInteractionMode (SO< InteractionMode > mode)
 Adds a new InteractionMode. 'mode' must not be NULL. Registering a mode twice has no effect.
void removeInteractionMode (SO< InteractionMode > mode)
 Removes a InteractionMode.
SO< Iterator< SO
< InteractionMode > > > 
interactionModeIterator () const
 Returns an iterator of all InteractionModes.
void selectInteractionMode (SO< InteractionMode > mode)
 Selects the current InteractionMode. 'mode' may be NULL. In this case, interaction is disabled. */.
SO< InteractionModegetSelectedInteractionMode () const
 Returns the currently selected Interaction Mode (may be NULL).
virtual void setConstraintChecker (ConstraintChecker *checker)
 Set a ConstraintChecker.
virtual ConstraintCheckergetConstraintChecker () const
 Returns the current ConstraintChecker.
void initParentPointers ()
 Only needed for internal use: ensures that the parent pointers of all stored InteractionModes and InteractionTechniques are valid.
virtual
BehaviorNode::InvalidationHint 
handle (Event *event)
 Receives events and passes it to the active InteractionMode.
void brake ()
 Should be used by InteractionTechniques if the user obviously wants to stop movement as fast as possible.
SO< ViewParameterSetgetViewParameters () const
 Provides access to the current view parameters.
SO< ViewParameterSetgetPreviousViewParameters () const
 When viewParameters_ has been changed by a InteractionTechnique, constraints may need the previous ones to cancel the change.
void setMotionStateCallback (VRS::SO< VRS::Callback2< bool, bool > > callback)
 Set a callback that is activated, when the state of motion or viewing direction changes.
 VRS_TYPEINFO (InteractionConcept, BehaviorNode)
 VRS_SERIALIZABLE (InteractionConcept)

Classes

class  ViewParameterSet
 The ViewParameterSet represents all view parameters that can be interactively changed by InteractionTechniques. More...


Detailed Description

A InteractionConcept combines all components of a complete solution in a virtual environment.

It contains a set of InteractionModes. Each InteractionMode defines a combination of InteractionTechniques and associated constraints. While a single InteractionMode contains InteractionTechnques that work together without explicit mode switches, the InteractionModes of a InteractionConcept are intended as a collection of interaction modes between which the user can explicitly switch. E.g. you could combine the click-and-fly-technque with a flyer into a single InteractionMode and combine modes such as 'flying mode', 'walking mode', 'zooming-and-panning' into a InteractionConcept that allows to switch between these modes. To activate a InteractionConcept it must be appended onto the behavior graph of a canvas. Then it receives events and pass it to the currently selected InteractionMode. In addition to the InteractionModes a InteractionConcept defines a sequence of user-defined constraints that are applied to the view parameters proposed by a InteractionTechnique. Examples include max-distance, max-height etc. For each InteractionMode, it can be specified whether the view parameters should be directly applied or passed to a physical simulation engine, which smoothes the camera movement. The settings for the physical simulation can be chosen individually for each mode. For a InteractionConcept a InteractionEnvironmentData object may be defined. This object provides access to the virtual environment that is needed by some InteractionTechniques. E.g. it provides information about an underlying terrain and a scene graph to display control elements or interaction cues. All InteractionTechniques used in a InteractionConcept get access to the defined InteractionEnvironmentData. Note: Each InteractionTechnique can only be used in one InteractionMode and each InteractionMode can be part of only one InteractionConcept.


Constructor & Destructor Documentation

VRS::InteractionConcept::InteractionConcept ( SO< LookAt lookAt = NULL  ) 

Constructs a InteractionConcept.

Though 'lookAt' may be NULL, the InteractionConcept will not work until a LookAt is set.


Member Function Documentation

SO<LookAt> VRS::InteractionConcept::getLookAt (  )  const

Get/Set LookAt, which is controlled by the InteractionConcept.

Note: When using setLookAt() the current state of LookAt is used for initilization. However further changes of the LookAt are not considered by the InteractionConcept, i.e. they will be immediately overwritten.

void VRS::InteractionConcept::setLookAt ( SO< LookAt lookAt  ) 

void VRS::InteractionConcept::addInteractionMode ( SO< InteractionMode mode  ) 

Adds a new InteractionMode. 'mode' must not be NULL. Registering a mode twice has no effect.

void VRS::InteractionConcept::removeInteractionMode ( SO< InteractionMode mode  ) 

Removes a InteractionMode.

'mode' must be a previously added mode. If the currently selected InteractionMode is removed, the first one in the list is selected instead.

SO<Iterator<SO<InteractionMode> > > VRS::InteractionConcept::interactionModeIterator (  )  const

Returns an iterator of all InteractionModes.

void VRS::InteractionConcept::selectInteractionMode ( SO< InteractionMode mode  ) 

Selects the current InteractionMode. 'mode' may be NULL. In this case, interaction is disabled. */.

SO<InteractionMode> VRS::InteractionConcept::getSelectedInteractionMode (  )  const

Returns the currently selected Interaction Mode (may be NULL).

virtual void VRS::InteractionConcept::setConstraintChecker ( ConstraintChecker checker  )  [virtual]

virtual ConstraintChecker* VRS::InteractionConcept::getConstraintChecker (  )  const [virtual]

Returns the current ConstraintChecker.

void VRS::InteractionConcept::initParentPointers (  ) 

Only needed for internal use: ensures that the parent pointers of all stored InteractionModes and InteractionTechniques are valid.

virtual BehaviorNode::InvalidationHint VRS::InteractionConcept::handle ( Event event  )  [virtual]

Receives events and passes it to the active InteractionMode.

Implements VRS::BehaviorNode.

void VRS::InteractionConcept::brake (  ) 

Should be used by InteractionTechniques if the user obviously wants to stop movement as fast as possible.

If a physical engine is used, this information is passed to it, so that the slow down is shortened.

SO<ViewParameterSet> VRS::InteractionConcept::getViewParameters (  )  const

Provides access to the current view parameters.

The current ViewParameterSet is either the last one that have been applied, or it may be changed by the InteractionTechnique by user events since the last time event. Note: You should not change the view parameters from outside. The non-constant access is only intended for InteractionModes and InteractionTechniques.

SO<ViewParameterSet> VRS::InteractionConcept::getPreviousViewParameters (  )  const

When viewParameters_ has been changed by a InteractionTechnique, constraints may need the previous ones to cancel the change.

void VRS::InteractionConcept::setMotionStateCallback ( VRS::SO< VRS::Callback2< bool, bool > >  callback  ) 

Set a callback that is activated, when the state of motion or viewing direction changes.

May be set to NULL to clear notification. The callback flags, if a motion started or stopped, and if the lookfrom state starts or stops changing. Thus, the callback function needs two parameters: void motionCallback(bool motionStateChanged, bool viewDirStateChanged); There is no immediate update, but in the next time step (usually the next millisecond).

VRS::InteractionConcept::VRS_TYPEINFO ( InteractionConcept  ,
BehaviorNode   
)

VRS::InteractionConcept::VRS_SERIALIZABLE ( InteractionConcept   ) 


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

Generated on Mon May 21 06:00:26 2012 by Doxygen 1.5.6
© 2001-2010 Hasso-Plattner-Institut | Impressum | Contact