Provided by: inventor-doc_2.1.5-10+dfsg-2.1build2_all bug

NAME

       SoSceneManager — manages scene graph rendering and event handling

INHERITS FROM

       SoSceneManager

SYNOPSIS

       #include <Inventor/SoSceneManager.h>

     typedef void        SoSceneManagerRenderCB(void *userData, SoSceneManager *mgr)

          Methods from class SoSceneManager:

                         SoSceneManager()
                         ~SoSceneManager()
     virtual void        render(SbBool clearWindow = TRUE, SbBool clearZbuffer = TRUE)
     virtual SbBool      processEvent(const SoEvent *event)
     void                reinitialize()
     void                scheduleRedraw()
     virtual void        setSceneGraph(SoNode *newScene)
     virtual SoNode *    getSceneGraph() const
     void                setWindowSize(const SbVec2s &newSize)
     const SbVec2s &     getWindowSize() const
     void                setSize(const SbVec2s &newSize)
     const SbVec2s &     getSize() const
     void                setOrigin(const SbVec2s &newOrigin)
     const SbVec2s &     getOrigin() const
     void                setBackgroundColor(const SbColor &c)
     const SbColor &     getBackgroundColor() const
     void                setBackgroundIndex(int index)
     int                 getBackgroundIndex() const
     void                setRGBMode(SbBool onOrOff)
     SbBool              isRGBMode() const
     virtual void        activate()
     virtual void        deactivate()
     void                setRenderCallback(SoSceneManagerRenderCB *f, void *userData = NULL)
     SbBool              isAutoRedraw() const
     void                setRedrawPriority(uint32_t priority)
     uint32_t            getRedrawPriority() const
     static uint32_t     getDefaultRedrawPriority()
     static void         enableRealTimeUpdate(SbBool flag)
     static SbBool       isRealTimeUpdateEnabled()
     void                setAntialiasing(SbBool smoothing, int numPasses)
     void                getAntialiasing(SbBool &smoothing, int &numPasses) const

DESCRIPTION

       SoSceneManager provides Inventor rendering and event handling inside a window provided by the caller. The
       scene manager is able to render in only a portion of  a  window  if  desired.  The  SoXtRenderArea  class
       employs  a  SoSceneManager, and handles most all the details for setting up a window, converting X events
       to Inventor events, automatically redrawing the scene when necessary, and so on. It is simplest to use  a
       render area when rendering in an entire window. The SoSceneManager class is available for programmers not
       working with the Inventor Xt Component and Utility Library.

METHODS

                         SoSceneManager()
                         ~SoSceneManager()
          Constructor and destructor.

     virtual void        render(SbBool clearWindow = TRUE, SbBool clearZbuffer = TRUE)
          Apply an SoGLRenderAction to the scene graph managed here. The caller is responsible for setting up  a
          window  to  render  into. If clearWindow is TRUE, this clears the graphics window before rendering. If
          clearZbuffer is TRUE, the z buffer will be cleared before rendering.

     virtual SbBool      processEvent(const SoEvent *event)
          Process the passed event by applying an SoHandleEventAction to the scene graph managed  here.  Returns
          TRUE if the event was handled by a node.

     void                reinitialize()
          Reinitialize graphics. This should be called, for instance, when there is a new window.

     void                scheduleRedraw()
          Schedule a redraw for some time in the near future. If there is no render callback set, or this is not
          active, no redraw will be scheduled.

     virtual void        setSceneGraph(SoNode *newScene)
     virtual SoNode *    getSceneGraph() const
          Set and get the scene graph which is managed here. This is the Inventor scene which will be  traversed
          for rendering and event processing.

     void                setWindowSize(const SbVec2s &newSize)
     const SbVec2s &     getWindowSize() const
          Set  and  get  the  size of the window in which the scene manager should render. This size must be set
          before render() and processEvent()  are called.

     void                setSize(const SbVec2s &newSize)
     const SbVec2s &     getSize() const
     void                setOrigin(const SbVec2s &newOrigin)
     const SbVec2s &     getOrigin() const
          Set and get the size and origin of the viewport within the window. Default is  to  render  the  entire
          window region. The origin (0,0) is the lower left corner of the window.

     void                setBackgroundColor(const SbColor &c)
     const SbColor &     getBackgroundColor() const
          Set and get the window background color when in RGB mode. This is the color the scene manager viewport
          is cleared to when render()  is called with clearWindow set to TRUE. Default is black (0,0,0).

     void                setBackgroundIndex(int index)
     int                 getBackgroundIndex() const
          Set and get the window background color when in color index mode. This is the color the scene  manager
          viewport  is cleared to when render()  is called with clearWindow set to TRUE. Default is black (index
          0).

     void                setRGBMode(SbBool onOrOff)
     SbBool              isRGBMode() const
          Set and get the color mode (TRUE — RGB mode, FALSE — color map mode). Default  is  RGB  mode.  Only  a
          subset of Inventor nodes will render correctly in color map mode. Basically, when in color index mode,
          lighting should be turned off (the model field of SoLightModel should be set to BASE_COLOR),  and  the
          SoColorIndex node should be used to specify colors.

     virtual void        activate()
     virtual void        deactivate()
          Activate  and  deactivate  the scene manager. The scene manager will only employ sensors for automatic
          redraw while it is active. Typically, the scene manager should be activated  whenever  its  window  is
          visible on the screen, and deactivated when its window is closed or iconified.

     void                setRenderCallback(SoSceneManagerRenderCB *f, void *userData = NULL)
          The  render callback provides a mechanism for automatically redrawing the scene in response to changes
          in the scene graph. The scene manager employs a sensor to monitor scene graph changes. When the sensor
          is  triggered, the render callback registered here is invoked. The callback should set up its graphics
          window, then call the scene manager render() method.  If the callback is set to  NULL  (the  default),
          auto-redraw is turned off.

     SbBool              isAutoRedraw() const
          Returns TRUE if there is currently a render callback registered.

     void                setRedrawPriority(uint32_t priority)
     uint32_t            getRedrawPriority() const
     static uint32_t     getDefaultRedrawPriority()
          Set  and get the priority of the redraw sensor. Sensors are processed based on priority, with priority
          values of 0 processed immediately. The default priority for the scene manager redraw sensor is 10000.

     static void         enableRealTimeUpdate(SbBool flag)
     static SbBool       isRealTimeUpdateEnabled()
          Enable/Disable the realTime global field update which normally happen right after a redraw.

     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.

SEE ALSO

       SoXtRenderArea, SoGLRenderAction, SoHandleEventAction

                                                                                           SoSceneManager(3IV)()