logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoSceneManager — manages scene graph rendering and event handling

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 InventorXtComponentandUtilityLibrary.

Inherits From

       SoSceneManager

Methods

SoSceneManager()~SoSceneManager()
          Constructor and destructor.

     virtualvoidrender(SbBoolclearWindow=TRUE,SbBoolclearZbuffer=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.

     virtualSbBoolprocessEvent(constSoEvent*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.

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

     voidscheduleRedraw()
          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.

     virtualvoidsetSceneGraph(SoNode*newScene)virtualSoNode*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.

     voidsetWindowSize(constSbVec2s&newSize)constSbVec2s&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.

     voidsetSize(constSbVec2s&newSize)constSbVec2s&getSize()constvoidsetOrigin(constSbVec2s&newOrigin)constSbVec2s&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.

     voidsetBackgroundColor(constSbColor&c)constSbColor&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).

     voidsetBackgroundIndex(intindex)intgetBackgroundIndex()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).

     voidsetRGBMode(SbBoolonOrOff)SbBoolisRGBMode()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.

     virtualvoidactivate()virtualvoiddeactivate()
          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.

     voidsetRenderCallback(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.

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

     voidsetRedrawPriority(uint32_tpriority)uint32_tgetRedrawPriority()conststaticuint32_tgetDefaultRedrawPriority()
          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.

     staticvoidenableRealTimeUpdate(SbBoolflag)staticSbBoolisRealTimeUpdateEnabled()
          Enable/Disable the realTime global field update which normally happen right after a redraw.

     voidsetAntialiasing(SbBoolsmoothing,intnumPasses)voidgetAntialiasing(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.

Name

       SoSceneManager — manages scene graph rendering and event handling

See Also

SoXtRenderArea,SoGLRenderAction,SoHandleEventActionSoSceneManager(3IV)()

Synopsis

#include<Inventor/SoSceneManager.h>typedefvoidSoSceneManagerRenderCB(void*userData,SoSceneManager*mgr)

          Methods from class SoSceneManager:

                         SoSceneManager()~SoSceneManager()virtualvoidrender(SbBoolclearWindow=TRUE,SbBoolclearZbuffer=TRUE)virtualSbBoolprocessEvent(constSoEvent*event)voidreinitialize()voidscheduleRedraw()virtualvoidsetSceneGraph(SoNode*newScene)virtualSoNode*getSceneGraph()constvoidsetWindowSize(constSbVec2s&newSize)constSbVec2s&getWindowSize()constvoidsetSize(constSbVec2s&newSize)constSbVec2s&getSize()constvoidsetOrigin(constSbVec2s&newOrigin)constSbVec2s&getOrigin()constvoidsetBackgroundColor(constSbColor&c)constSbColor&getBackgroundColor()constvoidsetBackgroundIndex(intindex)intgetBackgroundIndex()constvoidsetRGBMode(SbBoolonOrOff)SbBoolisRGBMode()constvirtualvoidactivate()virtualvoiddeactivate()voidsetRenderCallback(SoSceneManagerRenderCB*f,void*userData=NULL)SbBoolisAutoRedraw()constvoidsetRedrawPriority(uint32_tpriority)uint32_tgetRedrawPriority()conststaticuint32_tgetDefaultRedrawPriority()staticvoidenableRealTimeUpdate(SbBoolflag)staticSbBoolisRealTimeUpdateEnabled()voidsetAntialiasing(SbBoolsmoothing,intnumPasses)voidgetAntialiasing(SbBool&smoothing,int&numPasses)const

See Also