table of contents
| SoSceneManager(3IV)() | SoSceneManager(3IV)() | 
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