SoSceneManager(3IV)() | SoSceneManager(3IV)() |
SoSceneManager — manages scene graph rendering and event handling
SoSceneManager
#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
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.
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.
SoXtRenderArea, SoGLRenderAction, SoHandleEventAction