SOXTFULLVIEWER(3iv)

πŸ’– NAME πŸ’–

SoXtFullViewer β€” okay so this is the base viewer class, and what it does is add a whole decoration around the rendering area. it's giving "frame it, bestie, make it cute" πŸ–ΌοΈβœ¨

(also hi, this page lives in manual section 3IV, so jot that down πŸ“)


🌸 INHERITS FROM 🌸

the whole glow-up lineage, oldest to newest, no skips:

SoXtComponent > SoXtGLWidget > SoXtRenderArea > SoXtViewer > SoXtFullViewer

it's a whole family tree and SoXtFullViewer is the final form πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

#include <Inventor/Xt/viewers/SoXtFullViewer.h>

okay and then there's this enum, which is basically the "how much stuff do you want built" menu:

enum BuildFlag {
     SoXtFullViewer::BUILD_NONE   doesn't build anything extra
     SoXtFullViewer::BUILD_DECORATION
                                  build the decoration only
     SoXtFullViewer::BUILD_POPUP  build the popup menu only
     SoXtFullViewer::BUILD_ALL    build everything by default
}

Methods from class SoXtFullViewer: (the ones this page is actually about πŸ‘‘)

     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: (inherited, still iconic)

     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: (more inheritance, more slay)

     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: (the GL bits, keep scrolling bestie)

     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: (the great-grandparent, still relevant)

     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 ✨

okay so here's the tea β˜• this is a base class used by all the viewer components. what it does is add a decoration around the rendering area β€” and that decoration includes thumb wheels, a zoom slider, and push buttons πŸŽ‘πŸŽšοΈπŸ”˜

it also comes with a viewer popup menu AND a preference sheet with generic viewing functions. and here's the part that matters: the constructors for the various subclasses of SoXtFullViewer take a flag that lets you say whether the decoration and popup menus should be built at all. so you're in control, bestie 🫢


πŸ› οΈ METHODS πŸ› οΈ

void setDecoration(SbBool onOrOff) SbBool isDecoration()

show or hide the viewer component trim. it's default on β€” so like, the trim is already there, no need to ask. if you want to stop the decoration from ever being built in the first place, go look at the viewer constructor instead πŸ‘€

void setPopupMenuEnabled(SbBool trueOrFalse) SbBool isPopupMenuEnabled()

turn the viewer popup menu on or off β€” default enabled. same deal as above: if you want it to never get built, that's a viewer-constructor thing, not this one ✨

Widget getAppPushButtonParent() const

hands you back the parent widget, which you need if you're gonna create new buttons. ⚠️ note: if the decoration wasn't created in the constructor, this will be NULL until the decoration is shown. so don't come for it early, it's not ready yet 😭

void addAppPushButton(Widget newButton) void insertAppPushButton(Widget newButton, int index) void removeAppPushButton(Widget oldButton) int findAppPushButton(Widget oldButton) int lengthAppPushButton()

add or remove push buttons for the application β€” these get placed in the left hand side decoration trim πŸŽ€ adding buttons appends them to the end of the list, while inserting them puts them at whatever index you want. so you can be chaotic or you can be organized, your call πŸ’…

⚠️ note: the button pixmaps should be 24-by-24 pixels in size so they fit all nicely into the decoration trim like the other viewer buttons. do NOT show up with a weirdly-sized pixmap, it will not eat, periodt 🚫

Widget getRenderAreaWidget()

returns the render area widget. that's it, that's the whole thing 🌈


πŸ‘€ SEE ALSO πŸ‘€

the whole friend group:

  • SoXtViewer
  • SoXtComponent
  • SoXtRenderArea
  • SoXtExaminerViewer
  • SoXtWalkViewer
  • SoXtFlyViewer
  • SoXtPlaneViewer

and that's the page!! this one signs off as SoXtFullViewer(3IV)() β€” manual section 3IV, stamp and all, no cap πŸ«ΆπŸ’– thanks for reading bestie, go build something cute ✨