Provided by: inventor-doc_2.1.5-10-18_all bug

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

                                                                            SoXtRenderArea(3IV)()