SoXtRenderArea(3IV)

SoXtRenderArea - Xt Component for rendering Inventor scene graphs

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.22.

NAME
     SoXtRenderArea - Xt Component for rendering Inventor scene graphs

INHERITS FROM
     SoXtComponent > SoXtGLWidget > SoXtRenderArea

SYNOPSIS
     #include <Inventor/Xt/SoXtRenderArea.h>

     typedef SbBool      SoXtRenderAreaEventCB(void *userData, XAnyEvent
                              *anyevent)

          Methods from class SoXtRenderArea:

                               SoXtRenderArea(Widget parent = NULL, const char
                                    *name = NULL, SbBool buildInsideParent =
                                    TRUE, SbBool getMouseInput = TRUE, SbBool
                                    getKeyboardInput = TRUE)
                               ~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
     This class provides Inventor rendering and event handling inside a GLX
     Motif widget. There is a routine to specify the scene to render. The
     scene is automatically rendered whenever anything under it changes (a
     data sensor is attached to the root of the scene), unless explicitly told
     not to do so (manual redraws). Users can also set Inventor rendering
     attributes such as the transparency type, antialiasing on or off, etc.
     This class employs an SoSceneManager to manage rendering and event
     handling.

     X events that occur in the render area can be handled by the application,
     by the viewer (if this is really a viewer) or by the nodes in the scene
     graph. When an event occurs, it is first passed to the application event
     callback function registered with the setEventCallback() method on
     SoXtRenderArea. If this function does not exist or returns FALSE, the X
     event is either used directly by the viewer or translated to an SoEvent
     for further scene graph processing. If the viewer does not handle the
     event, and an overlay scene graph exists, the SoEvent is sent to that
     scene graph by way of an SoHandleEventAction. If no node in the overlay
     scene graph handles the event (i.e., calls setHandled() on the
     SoHandleEventAction), the SoEvent is passed to the normal scene graph in
     the same manner.

METHODS
                               SoXtRenderArea(Widget parent = NULL, const char
                                    *name = NULL, SbBool buildInsideParent =
                                    TRUE, SbBool getMouseInput = TRUE, SbBool
                                    getKeyboardInput = TRUE)
                               ~SoXtRenderArea()
          Constructor which is passed arguments which tell it whether to
          register the mouse and keyboard devices by default (SoXtMouse and
          SoXtKeyboard).

     virtual void              setSceneGraph(SoNode *newScene)
     virtual SoNode *          getSceneGraph()
          Set/get the scene graph to be rendered in this component's window.

     void                      setOverlaySceneGraph(SoNode *newScene)
     SoNode *                  getOverlaySceneGraph()
          Sets/gets the scene graph to render in the overlay bit planes.
          Note: since the overlay bit planes are in color index mode, single
          buffer with a limited number of colors, the user should limit
          rendering in the overlay planes to simple objects.

          Typically rendering in color index mode is done using the
          SoColorIndex node with a SoLightModel set to BASE_COLOR.

     void                      registerDevice(SoXtDevice *)
     void                      unregisterDevice(SoXtDevice *)
          Register/unregister interest in devices. When a device is
          registered, events from that device will be processed by the render
          area, and passed into the scene graph. Events from unregistered
          devices will be ignored.

     void                      setBackgroundColor(const SbColor &c)
     const SbColor &           getBackgroundColor() const
          Set/get the background color for this window. Default is black
          (0,0,0).

     void                      setBackgroundIndex(int index)
     int                       getBackgroundIndex() const
          Sets/gets the window background color when in color index mode.
          (default to black (index 0)).

     void                      setOverlayBackgroundIndex(int index)
     int                       getOverlayBackgroundIndex() const
          Sets/gets the overlay window background color index. (default to 0
          (clear color)).

     void                      setColorMap(int startIndex, int num, const
                                    SbColor *colors)
          Sets the colors to use when displaying in color index mode. This
          will load the color map with the given colors at the starting index.

     void                      setOverlayColorMap(int startIndex, int num,
                                    const SbColor *colors)
          Sets the colors to use for overlay bit planes.This will load the
          color map with the given colors at the starting index.

     void                      setViewportRegion(const SbViewportRegion
                                    &newRegion)
     const SbViewportRegion &  getViewportRegion() const
          Sets/gets current viewport region to use for rendering

     void                      setTransparencyType(SoGLRenderAction::TransparencyType
                                    type)
     SoGLRenderAction::TransparencyType
                               getTransparencyType() const
          Set/get the quality level for rendering transparent objects. See
          SoGLRenderAction for possible transparency types.

     void                      setAntialiasing(SbBool smoothing, int
                                    numPasses)
     void                      getAntialiasing(SbBool &smoothing, int
                                    &numPasses) const
          Set/get the antialiasing for rendering. There are two kinds of
          antialiasing available: smoothing and multipass antialiasing. If
          smoothing is set to TRUE, smoothing is enabled. Smoothing uses
          OpenGL's line- and point-smoothing features to provide cheap
          antialiasing of lines and points. The value of numPasses controls
          multipass antialiasing. Each time a render action is applied,
          Inventor renders the scene numPasses times from slightly different
          camera positions, averaging the results. numPasses can be from one
          to 255, inclusive. Setting numPasses to one disables multipass
          antialiasing. You can use either, both, or neither of these
          antialiasing techniques. By default, both smoothing and multipass
          antialiasing are disabled.

     void                      setClearBeforeRender(SbBool trueOrFalse)
     SbBool                    isClearBeforeRender() const
          Enable/prevent window clearing from happening before a rendering
          starts (default is clear TRUE). This can be useful to limit
          flickering when doing single buffering and geometry covers the
          entire window (used in the material editor).

     void                      setClearBeforeOverlayRender(SbBool trueOrFalse)
     SbBool                    isClearBeforeOverlayRender() const
          Enable/prevent overlay window clearing from happening before a
          rendering starts (default is clear TRUE).

     void                      setAutoRedraw(SbBool trueOrFalse)
     SbBool                    isAutoRedraw() const
          The render area will automatically redraw whenever something in the
          scene graph changes. Passing FALSE will disable this feature.

     void                      setRedrawPriority(uint32_t priority)
     uint32_t                  getRedrawPriority() const
     static uint32_t           getDefaultRedrawPriority()
          Sets/gets the priority of the redraw sensor and get the default
          priority number.

     void                      render()
     void                      renderOverlay()
          Calling this forces the render area to be redrawn now. It is not
          necessary to call this method if auto redraw is enabled (which is
          the default).

     void                      scheduleRedraw()
     void                      scheduleOverlayRedraw()
          Schedule a redraw to happen sometime soon (as opposed to
          immediately). This can be used to compress multiple redraws.

     void                      redrawOnSelectionChange(SoSelection *s)
     void                      redrawOverlayOnSelectionChange(SoSelection *s)
          Call this convenience method to have this render area redraw
          whenever the selection list changes in the passed node. This is
          useful if using a highlight render action like the
          SoBoxHighlightRenderAction to correctly render whenever the
          selection changes. Pass NULL to turn this off.

     void                      setEventCallback(SoXtRenderAreaEventCB *fcn,
                                    void *userData = NULL)
          X events which occur in the render area window are either directly
          handled by the viewer (when this is really a viewer) or
          automatically translated to SoEvents, then passed into the scene
          graph (via the SoHandleEventAction) so that live scene graph objects
          can handle the event (when viewers are not in viewing mode). This
          method allows the application to register a callback for handling
          events that occur in the window, instead of sending them to the
          viewers or down the graph. The callback is passed the X event, and
          should return TRUE if it handled the event. If the callback returns
          FALSE, then the event will be handled by the render area.

     void                      setGLRenderAction(SoGLRenderAction *ra)
     SoGLRenderAction *        getGLRenderAction() const
          Sets/gets the GL render action to use. This is used to set selection
          highlighting with the SoBoxHighlightRenderAction and
          SoLineHighlightRenderAction classes.

     void                      setOverlayGLRenderAction(SoGLRenderAction *ra)
     SoGLRenderAction *        getOverlayGLRenderAction() const
          Sets/gets the GL render action for the overlay window.

     void                      setSceneManager(SoSceneManager *sm)
     SoSceneManager *          getSceneManager() const
     void                      setOverlaySceneManager(SoSceneManager *sm)
     SoSceneManager *          getOverlaySceneManager() const
          Sets/gets the normal and overlay plane scene managers.

          Note: for convenience most of the SoSceneManager methods have
          already been added to this class.


RESOURCES
          *SoXtRenderArea*BackgroundColor: black (color name or hex value)



SEE ALSO
     SoXtGLWidget, SoXtComponent, SoXtViewer, SoSceneManager,
     SoBoxHighlightRenderAction, SoLineHighlightRenderAction