Provided by: inventor-doc_2.1.5-10-18_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)()