version 3.3

VRS::BookmarkNavigation Class Reference

#include <vrs/sg/bookmarknavigation.h>

Inheritance diagram for VRS::BookmarkNavigation:

VRS::InteractionTechnique VRS::SharedObj VRS::Visitable

List of all members.

Public Types

enum  PathStyle { LookInFlightDirection, LookAtTarget, Simple }
 Different kinds of interpolation for a path. More...

Public Member Functions

 BookmarkNavigation (double duration=6.0)
 'duration' specifies the time in seconds.
void setBookmarkKeys (SO< Iterator< unsigned int > > storeKeys=NULL, SO< Iterator< unsigned int > > activationKeys=NULL, InputEvent::Modifier storeKeyMustModifier=InputEvent::Ctrl, InputEvent::Modifier activationKeyMustModifier=InputEvent::NoModifier, InputEvent::Modifier storeKeyMustNotModifier=InputEvent::AllKeys, InputEvent::Modifier activationKeyMustNotModifier=InputEvent::AllKeys)
 assigns multiple store and activation keys at once.
void initPath (const Vector &endPos, const Vector &endDir, bool accelerate=true, bool decelerate=true)
 Invokes a camera animation starting from the current view to a given target view defined via 'endPos' and 'endDir'.
void initMultiStepPath (SO< Array< Vector > > positions, SO< Array< Vector > > directions)
 Starts a navigation to several views successively.
void setPathStyle (PathStyle pathStyle)
 Sets the PathStyle to be used by initPath() and initMultiStepPath().
PathStyle getPathStyle () const
 Gets the PathStyle currently used by initPath() and initMultiStepPath().
void setDuration (double duration)
 Set path time.
double getDuration () const
 Get path time.
bool pathActive () const
 Returns true if the Navigation is currently following a path.
void stopPath ()
 Stops the current path immediately.
void savePath (const std::string &fileName)
 Load/Save recorded bookmark sequences in a simple ASCII format.
void loadPath (const std::string &fileName)
void setBookmarkFilename (const std::string &filename)
const std::string & getBookmarkFilename () const
virtual void onDeactivation ()
 see interactiontechnique.h
void setStopOnDeactivation (bool stop)
 If stopOnDeactivation is true, the path is stopped if the technique get deactivated.
bool stopOnDeactivation () const
 VRS_TYPEINFO (BookmarkNavigation, InteractionTechnique)
 VRS_SERIALIZABLE (BookmarkNavigation)

Static Public Member Functions

static
InteractionTechnique::KeyFunctionID 
getStoreKeyID (int i)
 Per default, the key activation is diabled.
static
InteractionTechnique::KeyFunctionID 
getActivationKeyID (int i)

Static Public Attributes

static const
InteractionTechnique::KeyFunctionID 
LoadKey
 Using the following IDs, loading and saving of paths can be activated by keys (default off) For this, a file name must be specified.
static const
InteractionTechnique::KeyFunctionID 
SaveKey


Detailed Description

BookmarkNavigation enables to store and recover particular camera positions and view directions. Particular views can be stored or recovered by keys or by method calls. To recover a stored view the BookmarkNavigation creates on-the-fly a camera path that smoothly interpolates between current view and view to recover. BookmarkNavigation is a new version of JumpNavigation, based on the new interaction concept in VRS.

Member Enumeration Documentation

Different kinds of interpolation for a path.

Enumerator:
LookInFlightDirection  The camera will look into the direction of the flight path, ie. turning to the end direction at the end of the flight.
LookAtTarget  The camera will immediately start to turn into the end direction.
Simple  Linear position interpolation while interpolating between start and end viewing direction.


Constructor & Destructor Documentation

VRS::BookmarkNavigation::BookmarkNavigation ( double  duration = 6.0  ) 

'duration' specifies the time in seconds.

Note: The up-vector of the ViewParameterSet (see navigationconcept.h) determines the gaze rotation calculation and is never changed by the BookmarkNavigation.


Member Function Documentation

static InteractionTechnique::KeyFunctionID VRS::BookmarkNavigation::getStoreKeyID ( int  i  )  [static]

Per default, the key activation is diabled.

To assign keys via InteractionTechnique::assignKey(), these methods return the needed IDs. 'i' must be in [0,7].

static InteractionTechnique::KeyFunctionID VRS::BookmarkNavigation::getActivationKeyID ( int  i  )  [static]

void VRS::BookmarkNavigation::setBookmarkKeys ( SO< Iterator< unsigned int > >  storeKeys = NULL,
SO< Iterator< unsigned int > >  activationKeys = NULL,
InputEvent::Modifier  storeKeyMustModifier = InputEvent::Ctrl,
InputEvent::Modifier  activationKeyMustModifier = InputEvent::NoModifier,
InputEvent::Modifier  storeKeyMustNotModifier = InputEvent::AllKeys,
InputEvent::Modifier  activationKeyMustNotModifier = InputEvent::AllKeys 
)

assigns multiple store and activation keys at once.

An iterator may be NULL. In this case, all corresponding keys are disabled. Store keys as well as activation keys must share common modifiers. For a more flexible key-assignment use the explicit assignKey() method. Each iterator can be of length 8 or less. Additional elements are ignored.

void VRS::BookmarkNavigation::initPath ( const Vector endPos,
const Vector endDir,
bool  accelerate = true,
bool  decelerate = true 
)

Invokes a camera animation starting from the current view to a given target view defined via 'endPos' and 'endDir'.

If accelerate is true, the navigation starts with a smooth acceleration phase. If decelerate is true, the navigation ends with a smooth decelration phase when reaching the desired position. Setting acelerate and decelerate to false is only useful if the invoked animation is embedded into a longer camera animation such as in the case of a multistep-path (see below). Hence, key-activated bookmarks invoke always a path with accelerate and decelerate set to true. Note: initPath() can only work for an active BookmarkNavigation, i.e., the BookmarkNavigation must be part of a NavigationConcept.

void VRS::BookmarkNavigation::initMultiStepPath ( SO< Array< Vector > >  positions,
SO< Array< Vector > >  directions 
)

Starts a navigation to several views successively.

The arrays must contain the positions and directions to fly to. The arrays must contain the same number of elements.

void VRS::BookmarkNavigation::setPathStyle ( PathStyle  pathStyle  ) 

Sets the PathStyle to be used by initPath() and initMultiStepPath().

Default is 'LookInFlightDirection'.

PathStyle VRS::BookmarkNavigation::getPathStyle (  )  const

Gets the PathStyle currently used by initPath() and initMultiStepPath().

void VRS::BookmarkNavigation::setDuration ( double  duration  ) 

Set path time.

double VRS::BookmarkNavigation::getDuration (  )  const

Get path time.

bool VRS::BookmarkNavigation::pathActive (  )  const

Returns true if the Navigation is currently following a path.

void VRS::BookmarkNavigation::stopPath (  ) 

Stops the current path immediately.

void VRS::BookmarkNavigation::savePath ( const std::string &  fileName  ) 

Load/Save recorded bookmark sequences in a simple ASCII format.

void VRS::BookmarkNavigation::loadPath ( const std::string &  fileName  ) 

void VRS::BookmarkNavigation::setBookmarkFilename ( const std::string &  filename  ) 

const std::string& VRS::BookmarkNavigation::getBookmarkFilename (  )  const

virtual void VRS::BookmarkNavigation::onDeactivation (  )  [virtual]

void VRS::BookmarkNavigation::setStopOnDeactivation ( bool  stop  ) 

If stopOnDeactivation is true, the path is stopped if the technique get deactivated.

Otherwise, the path continues if the technique gets reactivated later. The default value is true.

bool VRS::BookmarkNavigation::stopOnDeactivation (  )  const

VRS::BookmarkNavigation::VRS_TYPEINFO ( BookmarkNavigation  ,
InteractionTechnique   
)

VRS::BookmarkNavigation::VRS_SERIALIZABLE ( BookmarkNavigation   ) 


Member Data Documentation

Using the following IDs, loading and saving of paths can be activated by keys (default off) For this, a file name must be specified.


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

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