Open Inventor Reference
SoSceneManager Class Reference

Manages scene graph rendering and event handling. More...

#include <Inventor/SoSceneManager.h>

List of all members.

Public Member Functions

 SoSceneManager ()
 Constructor and destructor.
 ~SoSceneManager ()
 Constructor and destructor.
virtual void render (SbBool clearWindow=TRUE, SbBool clearZbuffer=TRUE)
 Apply an SoGLRenderAction to the scene graph managed here.
virtual SbBool processEvent (const SoEvent *event)
 Process the passed event by applying an SoHandleEventAction to the scene graph managed here.
void reinitialize ()
 Reinitialize graphics.
void scheduleRedraw ()
 Schedule a redraw for some time in the near future.
virtual void setSceneGraph (SoNode *newScene)
 Set the scene graph which is managed here.
virtual SoNodegetSceneGraph () const
 Get the scene graph which is managed here.
void setWindowSize (const SbVec2s &newSize)
 Set the size of the window in which the scene manager should render.
const SbVec2sgetWindowSize () const
 Get the size of the window in which the scene manager should render.
void setSize (const SbVec2s &newSize)
 Set the size of the viewport within the window.
const SbVec2sgetSize () const
 Get the size and origin of the viewport within the window.
void setOrigin (const SbVec2s &newOrigin)
 Set the origin of the viewport within the window.
const SbVec2sgetOrigin () const
 Get the origin of the viewport within the window.
void setViewportRegion (const SbViewportRegion &newRegion)
 Sets current viewport region to use for rendering.
const SbViewportRegiongetViewportRegion () const
 Gets current viewport region to use for rendering.
void setBackgroundColor (const SbColor &c)
 Set the window background color when in RGB mode.
const SbColorgetBackgroundColor () const
 Get the window background color when in RGB mode.
void setBackgroundIndex (int index)
 Set the window background color when in color index mode.
int getBackgroundIndex () const
 Get the window background color when in color index mode.
void setRGBMode (SbBool onOrOff)
 Set the color mode (TRUE em RGB mode, FALSE em color map mode).
SbBool isRGBMode () const
 Get the color mode (TRUE em RGB mode, FALSE em color map mode).
virtual void activate ()
 Activate the scene manager.
virtual void deactivate ()
 Deactivate the scene manager.
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.
SbBool isAutoRedraw () const
 Returns TRUE if there is currently a render callback registered.
void setRedrawPriority (uint32_t priority)
 Set the priority of the redraw sensor.
uint32_t getRedrawPriority () const
 Get the priority of the redraw sensor.
void setAntialiasing (SbBool smoothing, int numPasses)
 Set the antialiasing for rendering.
void getAntialiasing (SbBool &smoothing, int &numPasses) const
 Get the antialiasing for rendering.
void setGLRenderAction (SoGLRenderAction *ra)
 User supplied render action.
SoGLRenderActiongetGLRenderAction () const
void setHandleEventAction (SoHandleEventAction *hea)
 User supplied handle event action.
SoHandleEventActiongetHandleEventAction () const

Static Public Member Functions

static uint32_t getDefaultRedrawPriority ()
 Get the default priority of the redraw sensor.
static void enableRealTimeUpdate (SbBool flag)
 Enable/Disable the realTime global field update which normally happen right after a redraw.
static SbBool isRealTimeUpdateEnabled ()
 Enable/Disable the realTime global field update which normally happen right after a redraw.

Protected Member Functions

SbBool isActive () const
void redraw ()
 This tells the app it is time to redraw by invoking the renderCB.

Protected Attributes

SoSceneManagerRenderCBrenderCB
void * renderCBData

Detailed 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 SoQtRenderArea 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 SoQt library.

See Also
SoXtRenderArea, SoGLRenderAction, SoHandleEventAction

Definition at line 97 of file SoSceneManager.h.


Constructor & Destructor Documentation

SoSceneManager::SoSceneManager ( )
SoSceneManager::~SoSceneManager ( )

Member Function Documentation

virtual void SoSceneManager::activate ( ) [virtual]

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.

virtual void SoSceneManager::deactivate ( ) [virtual]
static void SoSceneManager::enableRealTimeUpdate ( SbBool  flag) [static]
void SoSceneManager::getAntialiasing ( SbBool smoothing,
int &  numPasses 
) const
const SbColor& SoSceneManager::getBackgroundColor ( ) const [inline]

Definition at line 164 of file SoSceneManager.h.

int SoSceneManager::getBackgroundIndex ( ) const [inline]

Definition at line 173 of file SoSceneManager.h.

static uint32_t SoSceneManager::getDefaultRedrawPriority ( ) [inline, static]

Definition at line 218 of file SoSceneManager.h.

SoGLRenderAction* SoSceneManager::getGLRenderAction ( ) const [inline]

Definition at line 247 of file SoSceneManager.h.

SoHandleEventAction* SoSceneManager::getHandleEventAction ( ) const [inline]

Definition at line 254 of file SoSceneManager.h.

const SbVec2s& SoSceneManager::getOrigin ( ) const
uint32_t SoSceneManager::getRedrawPriority ( ) const
virtual SoNode* SoSceneManager::getSceneGraph ( ) const [virtual]
const SbVec2s& SoSceneManager::getSize ( ) const
const SbViewportRegion& SoSceneManager::getViewportRegion ( ) const
const SbVec2s& SoSceneManager::getWindowSize ( ) const
SbBool SoSceneManager::isActive ( ) const [inline, protected]

Definition at line 259 of file SoSceneManager.h.

SbBool SoSceneManager::isAutoRedraw ( ) const [inline]

Definition at line 207 of file SoSceneManager.h.

static SbBool SoSceneManager::isRealTimeUpdateEnabled ( ) [inline, static]

Definition at line 225 of file SoSceneManager.h.

SbBool SoSceneManager::isRGBMode ( ) const [inline]

Definition at line 183 of file SoSceneManager.h.

virtual SbBool SoSceneManager::processEvent ( const SoEvent event) [virtual]

Returns TRUE if the event was handled by a node.

void SoSceneManager::redraw ( ) [protected]
void SoSceneManager::reinitialize ( )

This should be called, for instance, when there is a new window.

virtual void SoSceneManager::render ( SbBool  clearWindow = TRUE,
SbBool  clearZbuffer = TRUE 
) [virtual]

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.

void SoSceneManager::scheduleRedraw ( )

If there is no render callback set, or this is not active, no redraw will be scheduled.

void SoSceneManager::setAntialiasing ( SbBool  smoothing,
int  numPasses 
)

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.

void SoSceneManager::setBackgroundColor ( const SbColor c)

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 SoSceneManager::setBackgroundIndex ( int  index)

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 SoSceneManager::setGLRenderAction ( SoGLRenderAction ra)

Highlights fall into this category. SceneManager will never delete a render action passed to this method.

void SoSceneManager::setHandleEventAction ( SoHandleEventAction hea)

This should not be done in the middle of event handling. Passing NULL turns event handling off. SceneManager will never delete a handle event action passed to this method.

void SoSceneManager::setOrigin ( const SbVec2s newOrigin)

Default is to render the entire window region. The origin (0,0) is the lower left corner of the window.

void SoSceneManager::setRedrawPriority ( uint32_t  priority)

Sensors are processed based on priority, with priority values of 0 processed immediately. The default priority for the scene manager redraw sensor is 10000.

void SoSceneManager::setRenderCallback ( SoSceneManagerRenderCB f,
void *  userData = NULL 
)

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.

void SoSceneManager::setRGBMode ( SbBool  onOrOff)

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 SoSceneManager::setSceneGraph ( SoNode newScene) [virtual]

This is the Inventor scene which will be traversed for rendering and event processing.

void SoSceneManager::setSize ( const SbVec2s newSize)

Default is to render the entire window region.

void SoSceneManager::setViewportRegion ( const SbViewportRegion newRegion)

This can be used instead of setting the size and origin separately.

void SoSceneManager::setWindowSize ( const SbVec2s newSize)

This size must be set before render() and processEvent() are called.


Member Data Documentation

Definition at line 257 of file SoSceneManager.h.

void* SoSceneManager::renderCBData [protected]

Definition at line 258 of file SoSceneManager.h.


The documentation for this class was generated from the following file: