SOXTWALKVIEWER(3iv)

✨ NAME ✨

SoXtWalkViewer β€” a viewer component that moves the camera around in a plane πŸ’…


πŸ¦‹ INHERITS FROM πŸ¦‹

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

like. it's giving generational heirloom, bestie. every single one of these came before it and it inherited the whole personality 😭


πŸŽ€ SYNOPSIS πŸŽ€

okay so first you gotta pull it in:

#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 whole paradigm here is a walkthrough of an architectural model. like you're literally strolling through a building, bestie πŸšΆβ€β™€οΈβœ¨

its primary behavior is forward, backward, and left/right turning motion while keeping a constant "eye level". so no floating off into the void, no cap.

it is also possible to stop and look around at the scene. like, pause. take it in. main character energy πŸ‘‘

the eye level plane can be disabled, which lets the viewer proceed in the "look at" direction, as if on an escalator. yes fr, escalator mode.

the eye level plane can also be translated up and down β€” similar to an elevator. so you got escalator vibes and elevator vibes. iconic.


🧚 METHODS 🧚

SoXtWalkViewer

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. pls go read the SoXtViewer man pages for a description of the viewer types, bestie, that's where the lore lives πŸ“–


🌈 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. so the further you drag, the faster you go β€” it's giving zoomies πŸ’€

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. lowkey the best part, ngl πŸ‘€

<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.

⚠️ note the emphasis bestie: press but do NOT hold down those keys. tap it, don't cling to it πŸ™ˆ

Right Mouse: Open the popup menu.


⭐ SEE ALSO ⭐

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


and that's the whole page, bestie πŸ’œ this was SoXtWalkViewer(3IV) β€” SoXtWalkViewer(3IV)() if you wanna be formal about it β€” go forth and walk around your architecture, slay πŸŽ€βœ¨