Viewer component which moves the camera in a plane. More...
#include <Inventor/Win/viewers/SoWinWalkViewer.h>
Public Member Functions | |
SoWinWalkViewer (SoWidget parent=NULL, const char *name=NULL, SbBool buildInsideParent=TRUE, SoWinFullViewer::BuildFlag flag=SoWinFullViewer::BUILD_ALL, SoWinViewer::Type type=SoWinViewer::BROWSER) | |
~SoWinWalkViewer () | |
virtual void | setViewing (SbBool onOrOff) |
virtual void | setCamera (SoCamera *cam) |
virtual void | setCursorEnabled (SbBool onOrOff) |
virtual void | setCameraType (SoType type) |
void | setViewerSpeed (float speed) |
float | getViewerSpeed () const |
virtual void | setSeekMode (SbBool onOrOff) |
The paradigm for this viewer is a walk-through of an architectural model. Its primary behavior is forward, backward, and left/right turning motion while maintaining a constant "eye level". It is also possible to stop and look around at the scene. The eye level plane can be disabled, allowing the viewer to proceed in the "look at" direction, as if on an escalator. The eye level plane can also be translated up and down - similar to an elevator.
Left Mouse: Walk mode. Click down and move up and down for fowards and backwards motion. Move right and left for turning. Speed increases exponentially with the distance from the mouse-down origin.
Middle Mouse or
Ctrl + Left Mouse: Translate up, down, left, and right.
Ctrl + Middle Mouse: Tilt the camera up/down and right/left. This allows you to look around while stopped.
"s" + Left Mouse: Alternative to the Seek button. Press (but do not hold down) the "s" key, then click on a target object.
"u" + Left Mouse: Press (but do not hold down) the "u" key, then click on a target object to set the "up" direction to the surface normal. By default +y is the "up" direction.
Right Mouse: Open the popup menu.
ALT : (Win32) When the viewer is in selection (a.k.a. pick) mode, pressing and holding the ALT key temporarily switches the viewer to viewing mode. When the ALT key is released, the viewer returns to selection mode. Note: If any of the mouse buttons are currently depressed, the ALT key has no effect.
Keypad '-': Decrease viewer speed by 0.5.
Keypad '+': Increase viewer speed by 2.
SoWinFullViewer, SoWinViewer, SoWinComponent, SoWinRenderArea, SoWinPlaneViewer, SoWinExaminerViewer, SoWinFlyViewer
SoWinWalkViewer::SoWinWalkViewer | ( | SoWidget | parent = NULL , |
|
const char * | name = NULL , |
|||
SbBool | buildInsideParent = TRUE , |
|||
SoWinFullViewer::BuildFlag | flag = SoWinFullViewer::BUILD_ALL , |
|||
SoWinViewer::Type | type = SoWinViewer::BROWSER | |||
) |
Constructor which specifies the viewer type.
Please refer to SoWinViewer for a description of the viewer types.
SoWinWalkViewer::~SoWinWalkViewer | ( | ) |
Destructor.
float SoWinWalkViewer::getViewerSpeed | ( | ) | const [inline] |
Get viewer speed multiplier.
virtual void SoWinWalkViewer::setCamera | ( | SoCamera * | cam | ) | [virtual] |
Sets the camera that will be controlled by the viewer.
Setting the camera is only needed if the first camera found in the scene when setting the scene graph isn't the one that should be controlled.
Reimplemented from SoWinConstrainedViewer.
virtual void SoWinWalkViewer::setCameraType | ( | SoType | type | ) | [virtual] |
Sets the camera type that will be created by the viewer if no cameras are found in the scene graph (see SoPerspectiveCamera and SoOrthographicCamera).
By default an SoPerspectiveCamera will be created if no cameras are found.
Note: The set method will only take effect the next time a scene graph is specified (and if no cameras are found).
Reimplemented from SoWinViewer.
virtual void SoWinWalkViewer::setCursorEnabled | ( | SbBool | onOrOff | ) | [virtual] |
Sets whether the viewer is allowed to change the cursor over the renderArea window.
When disabled, the cursor is undefined by the viewer and will not change as the mode of the viewer changes. When re-enabled, the viewer will reset it to the appropriate icon.
Disabling the cursor enables the application to set the cursor directly on the viewer window or on any parent widget of the viewer. This can be used when setting a busy cursor on the application shell.
Reimplemented from SoWinViewer.
virtual void SoWinWalkViewer::setSeekMode | ( | SbBool | onOrOff | ) | [virtual] |
Externally set the viewer into/out off seek mode (default OFF).
Actual seeking will not happen until the viewer decides to (ex: mouse click).
Note: setting the viewer out of seek mode while the camera is being animated will stop the animation to the current location.
Reimplemented from SoWinViewer.
void SoWinWalkViewer::setViewerSpeed | ( | float | speed | ) | [inline] |
Set viewer speed multiplier (default is 1).
virtual void SoWinWalkViewer::setViewing | ( | SbBool | onOrOff | ) | [virtual] |
Sets whether the viewer is turned on or off.
When turned on, messages are consumed by the viewer. When viewing is off, messages are processed by the viewer's render area. This means messages will be sent down to the scene graph for processing (i.e. picking can occur). Note that if the application has registered a message callback , it will be invoked on every message, whether viewing is turned on or not. However, the return value of this callback (which specifies whether the callback handled the message or not) is ignored when viewing is on. That is, the viewer will process the message even if the callback already did. This is to ensure that the viewing paradigm is not broken (default viewing is on).
Reimplemented from SoWinFullViewer.