---
name: "SoXtWalkViewer"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoXtWalkViewer"
---

# SoXtWalkViewer(3iv)

viewer component which moves the camera in a plane

## NAME

SoXtWalkViewer — viewer component which moves the camera in a plane

## INHERITS FROM

SoXtComponent \> SoXtGLWidget \> SoXtRenderArea \> SoXtViewer \> SoXtFullViewer \> SoXtConstrainedViewer \> SoXtWalkViewer

## SYNOPSIS

**#include \<Inventor/Xt/viewers/SoXtWalkViewer.h\>**

Methods from class SoXtWalkViewer:

	**SoXtWalkViewer(Widget parent = NULL, const char \*name = NULL, SbBool buildInsideParent = TRUE, SoXtFullViewer::BuildFlag flag = BUILD\_ALL, SoXtViewer::Type type = BROWSER)**\
 	**~SoXtWalkViewer()**

Methods from class SoXtConstrainedViewer:

**void**	**setUpDirection(const SbVec3f &newUpDirection)**\
 **SbVec3f**	**getUpDirection()**

Methods from class SoXtFullViewer:

**void**	**setDecoration(SbBool onOrOff)**\
 **SbBool**	**isDecoration()**\
 **void**	**setPopupMenuEnabled(SbBool trueOrFalse)**\
 **SbBool**	**isPopupMenuEnabled()**\
 **Widget**	**getAppPushButtonParent() const**\
 **void**	**addAppPushButton(Widget newButton)**\
 **void**	**insertAppPushButton(Widget newButton, int index)**\
 **void**	**removeAppPushButton(Widget oldButton)**\
 **int**	**findAppPushButton(Widget oldButton)**\
 **int**	**lengthAppPushButton()**\
 **Widget**	**getRenderAreaWidget()**

Methods from class SoXtViewer:

**virtual void**	**setCamera(SoCamera \*cam)**\
 **SoCamera \***	**getCamera()**\
 **virtual void**	**setCameraType(SoType type)**\
 **SoType**	**getCameraType()**\
 **virtual void**	**viewAll()**\
 **virtual void**	**saveHomePosition()**\
 **virtual void**	**resetToHomePosition()**\
 **virtual void**	**setHeadlight(SbBool onOrOff)**\
 **SbBool**	**isHeadlight()**\
 **SoDirectionalLight \***	**getHeadlight()**\
 **virtual void**	**setDrawStyle(SoXtViewer::DrawType type, SoXtViewer::DrawStyle style)**\
 **SoXtViewer::DrawStyle**	**getDrawStyle(SoXtViewer::DrawType type)**\
 **virtual void**	**setBufferingType(SoXtViewer::BufferType type)**\
 **SoXtViewer::BufferType**	**getBufferingType()**\
 **virtual void**	**setViewing(SbBool onOrOff)**\
 **SbBool**	**isViewing() const**\
 **virtual void**	**setCursorEnabled(SbBool onOrOff)**\
 **SbBool**	**isCursorEnabled() const**\
 **void**	**setAutoClipping(SbBool onOrOff)**\
 **SbBool**	**isAutoClipping() const**\
 **virtual void**	**setStereoViewing(SbBool onOrOff)**\
 **virtual SbBool**	**isStereoViewing()**\
 **void**	**setStereoOffset(float dist)**\
 **float**	**getStereoOffset()**\
 **void**	**setDetailSeek(SbBool onOrOff)**\
 **SbBool**	**isDetailSeek()**\
 **void**	**setSeekTime(float seconds)**\
 **float**	**getSeekTime()**\
 **void**	**addStartCallback(SoXtViewerCB \*f, void \*userData = NULL)**\
 **void**	**addFinishCallback(SoXtViewerCB \*f, void \*userData = NULL)**\
 **void**	**removeStartCallback(SoXtViewerCB \*f, void \*userData = NULL)**\
 **void**	**removeFinishCallback(SoXtViewerCB \*f, void \*userData = NULL)**\
 **void**	**copyView(Time eventTime)**\
 **void**	**pasteView(Time eventTime)**\
 **virtual void**	**recomputeSceneSize()**

Methods from class SoXtRenderArea:

**virtual void**	**setSceneGraph(SoNode \*newScene)**\
 **virtual SoNode \***	**getSceneGraph()**\
 **void**	**setOverlaySceneGraph(SoNode \*newScene)**\
 **SoNode \***	**getOverlaySceneGraph()**\
 **void**	**registerDevice(SoXtDevice \*)**\
 **void**	**unregisterDevice(SoXtDevice \*)**\
 **void**	**setBackgroundColor(const SbColor &c)**\
 **const SbColor &**	**getBackgroundColor() const**\
 **void**	**setBackgroundIndex(int index)**\
 **int**	**getBackgroundIndex() const**\
 **void**	**setOverlayBackgroundIndex(int index)**\
 **int**	**getOverlayBackgroundIndex() const**\
 **void**	**setColorMap(int startIndex, int num, const SbColor \*colors)**\
 **void**	**setOverlayColorMap(int startIndex, int num, const SbColor \*colors)**\
 **void**	**setViewportRegion(const SbViewportRegion &newRegion)**\
 **const SbViewportRegion &**	**getViewportRegion() const**\
 **void**	**setTransparencyType(SoGLRenderAction::TransparencyType type)**\
 **SoGLRenderAction::TransparencyType**\
 	**getTransparencyType() const**\
 **void**	**setAntialiasing(SbBool smoothing, int numPasses)**\
 **void**	**getAntialiasing(SbBool &smoothing, int &numPasses) const**\
 **void**	**setClearBeforeRender(SbBool trueOrFalse)**\
 **SbBool**	**isClearBeforeRender() const**\
 **void**	**setClearBeforeOverlayRender(SbBool trueOrFalse)**\
 **SbBool**	**isClearBeforeOverlayRender() const**\
 **void**	**setAutoRedraw(SbBool trueOrFalse)**\
 **SbBool**	**isAutoRedraw() const**\
 **void**	**setRedrawPriority(uint32\_t priority)**\
 **uint32\_t**	**getRedrawPriority() const**\
 **static uint32\_t**	**getDefaultRedrawPriority()**\
 **void**	**render()**\
 **void**	**renderOverlay()**\
 **void**	**scheduleRedraw()**\
 **void**	**scheduleOverlayRedraw()**\
 **void**	**redrawOnSelectionChange(SoSelection \*s)**\
 **void**	**redrawOverlayOnSelectionChange(SoSelection \*s)**\
 **void**	**setEventCallback(SoXtRenderAreaEventCB \*fcn, void \*userData = NULL)**\
 **void**	**setGLRenderAction(SoGLRenderAction \*ra)**\
 **SoGLRenderAction \***	**getGLRenderAction() const**\
 **void**	**setOverlayGLRenderAction(SoGLRenderAction \*ra)**\
 **SoGLRenderAction \***	**getOverlayGLRenderAction() const**\
 **void**	**setSceneManager(SoSceneManager \*sm)**\
 **SoSceneManager \***	**getSceneManager() const**\
 **void**	**setOverlaySceneManager(SoSceneManager \*sm)**\
 **SoSceneManager \***	**getOverlaySceneManager() const**

Methods from class SoXtGLWidget:

**void**	**setBorder(SbBool onOrOff)**\
 **SbBool**	**isBorder() const**\
 **virtual void**	**setDoubleBuffer(SbBool onOrOff)**\
 **SbBool**	**isDoubleBuffer()**\
 **Window**	**getNormalWindow()**\
 **Window**	**getOverlayWindow()**\
 **GLXContext**	**getNormalContext()**\
 **GLXContext**	**getOverlayContext()**\
 **Widget**	**getNormalWidget()**\
 **Widget**	**getOverlayWidget()**\
 **virtual void**	**setNormalVisual(XVisualInfo \*vis)**\
 **XVisualInfo \***	**getNormalVisual()**\
 **virtual void**	**setOverlayVisual(XVisualInfo \*vis)**\
 **XVisualInfo \***	**getOverlayVisual()**\
 **void**	**setDrawToFrontBufferEnable(SbBool enableFlag)**\
 **SbBool**	**isDrawToFrontBufferEnable() const**

Methods from class SoXtComponent:

**virtual void**	**show()**\
 **virtual void**	**hide()**\
 **SbBool**	**isVisible()**\
 **Widget**	**getWidget() const**\
 **SbBool**	**isTopLevelShell() const**\
 **Widget**	**getShellWidget() const**\
 **Widget**	**getParentWidget() const**\
 **void**	**setSize(const SbVec2s &size)**\
 **SbVec2s**	**getSize()**\
 **Display \***	**getDisplay()**\
 **void**	**setTitle(const char \*newTitle)**\
 **const char \***	**getTitle() const**\
 **void**	**setIconTitle(const char \*newIconTitle)**\
 **const char \***	**getIconTitle() const**\
 **void**	**setWindowCloseCallback(SoXtComponentCB \*func, void \*data = NULL)**\
 **static SoXtComponent \***	**getComponent(Widget w)**\
 **const char \***	**getWidgetName() const**\
 **const char \***	**getClassName() const**

## DESCRIPTION

**The paradigm for this viewer is a walkthrough 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.**

## METHODS

	**SoXtWalkViewer(Widget parent = NULL, const char \*name = NULL, SbBool buildInsideParent = TRUE, SoXtFullViewer::BuildFlag flag = BUILD\_ALL, SoXtViewer::Type type = BROWSER)**\
 	**~SoXtWalkViewer()**\
 Constructor and destructor which specifies the viewer type. Please refer to the **SoXtViewer** man pages for a description of the viewer types.

## RESOURCES

```
*SoXtWalkViewer.decoration: on (on | off)
*SoXtWalkViewer.seekAnimationTime: 2.0 (float)
*SoXtWalkViewer.seekTo: point (point | object)
*SoXtWalkViewer.seekDistanceUsage: percentage (percentage | absolute)
*SoXtWalkViewer.zoomMin: 1.0 (float)
*SoXtWalkViewer.zoomMax: 179.0 (float)
*SoXtWalkViewer.autoClipping: on (on | off)
*SoXtWalkViewer.nearDistance: 2.4 (float, when autoClipping is off)
*SoXtWalkViewer.farDistance: 2.8 (float, when autoClipping is off)
*SoXtWalkViewer*BackgroundColor: black (color name or hex value)
```

## USAGE

**Left Mouse:** walk mode. Click down and move up/down for fowards/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\> + click:** Alternative to the Seek button. Press (but do not hold down) the \<s\> key, then click on a target object.

**\<u\> + click:** 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.

## SEE ALSO

**SoXtFullViewer, SoXtViewer, SoXtComponent, SoXtRenderArea, SoXtPlaneViewer, SoXtExaminerViewer, SoXtFlyViewer**
