SoSeparator(3IV)NAMESoSeparator (SoSep) - group node that saves and restores traversal state
INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoGroup > SoSeparatorSYNOPSIS
#include <Inventor_c/nodes/SoSeparator.h>
typedef SoSeparator SoSep
enum SoSeparatorCacheEnabled {
SO_SEP_OFF Never build a cache
SO_SEP_ON Always try to build a cache
SO_SEP_AUTO Decide whether to cache based on some heuristic
}
Fields from class SoSeparator:
SoSFEnum renderCaching
SoSFEnum boundingBoxCaching
SoSFEnum renderCulling
SoSFEnum pickCulling
Functions from class SoSeparator:
SoSeparator * SoSepCreate()SoSeparator * SoSepCreateN(int nChildren)
void SoSepSetNumRenderCaches(int howMany)
int SoSepGetNumRenderCaches()
SoType SoSepGetClassTypeId()
Functions from class SoGroup:
void SoSepAddChild(SoSep *this, SoNode *child)
void SoSepInsertChild(SoSep *this, SoNode *child, int
newChildIndex)
SoNode * SoSepGetChild(const SoSep *this, int index)
int SoSepFindChild(const SoSep *this, const SoNode
*child)
int SoSepGetNumChildren(const SoSep *this)
void SoSepRemoveChild(SoSep *this, int index)
void SoSepRemoveChildNode(SoSep *this, SoNode *child)
void SoSepRemoveAllChildren(SoSep *this)
void SoSepReplaceChild(SoSep *this, int index, SoNode
*newChild)
void SoSepReplaceChildNode(SoSep *this, SoNode *oldChild,
SoNode *newChild)
Functions from class SoNode:
Page 1SoSeparator(3IV)
void SoSepSetOverride(SoSep *this, SbBool state)
SbBool SoSepIsOverride(const SoSep *this)
SoNode * SoSepCopy(const SoSep *this, SbBool copyConnections =
FALSE)
SbBool SoSepAffectsState(const SoSep *this)
SoNode * SoSepGetByName(const char *name)
int SoSepGetByNameList(const char *name, SoNodeList
*list)
Functions from class SoFieldContainer:
void SoSepSetToDflts(SoSep *this)
SbBool SoSepHasDfltVals(const SoSep *this)
SbBool SoSepFldsAreEq(const SoSep *this, const
SoFieldContainer *fc)
void SoSepCopyFieldVals(SoSep *this, const
SoFieldContainer *fc, SbBool copyConnections =
FALSE)
SbBool SoSepSet(SoSep *this, const char *fieldDataString)
void SoSepGet(SoSep *this, SbString *fieldDataString)
int SoSepGetFields(const SoSep *this, SoFieldList
*resultList)
SoField * SoSepGetField(const SoSep *this, const char
*fieldName)
SbBool SoSepGetFieldName(const SoSep *this, const SoField
*field, SbName *fieldName)
SbBool SoSepIsNotifyEnabled(const SoSep *this)
SbBool SoSepEnableNotify(SoSep *this, SbBool flag)
Functions from class SoBase:
void SoSepRef(SoSep *this)
void SoSepUnref(const SoSep *this)
void SoSepUnrefNoDelete(const SoSep *this)
void SoSepTouch(SoSep *this)
SoType SoSepGetTypeId(const SoSep *this)
SbBool SoSepIsOfType(const SoSep *this, SoType type)
void SoSepSetName(SoSep *this, const char *name)
SbName SoSepGetName(const SoSep *this)
DESCRIPTION
This group node performs a push (save) of the traversal state before
traversing its children and a pop (restore) after traversing them. This
isolates the separator's children from the rest of the scene graph. A
separator can include lights, cameras, coordinates, normals, bindings,
and all other properties. Separators are relatively inexpensive, so they
can be used freely within scenes.
The SoSeparator node provides caching of state during rendering and
bounding box computation. This feature can be enabled by setting the
renderCaching and boundingBoxCaching fields. By default, these are set to
Page 2SoSeparator(3IV)
AUTO, which means that Inventor decides whether to build a cache based on
internal heuristics.
Separators can also perform culling during rendering and picking. Culling
skips over traversal of the separator's children if they are not going to
be rendered or picked, based on the comparison of the separator's
bounding box with the current view volume. Culling is controlled by the
renderCulling and pickCulling fields. These are also set to AUTO by
default; however, render culling can be expensive (and can interfere with
render caching), so the AUTO heuristics leave it disabled unless
specified otherwise.
FIELDS
SoSFEnum renderCaching
Whether to cache during rendering traversal.
SoSFEnum boundingBoxCaching
Whether to cache during bounding box traversal.
SoSFEnum renderCulling
Whether to cull during rendering traversal.
SoSFEnum pickCulling
Whether to cull during picking traversal.
FUNCTIONSSoSeparator * SoSepCreate()
Creates a separator node with default settings.
SoSeparator * SoSepCreateN(int nChildren)
Constructor that takes approximate number of children.
void SoSepSetNumRenderCaches(int howMany)
By default, each separator node maintains 2 render caches. (This is
to allow two different representations, such as filled and wire-
frame, to both be cached.) The SoSepSetNumRenderCaches() function
sets the number of render caches each separator will have. Each
render cache uses memory, so increasing this number may increase the
memory requirements of the application. This method affects only
separators that are created after it is called, not separators that
were created before. Setting the number of caches to 0 turns off
render caching globally from then on.
int SoSepGetNumRenderCaches()
Returns the current number of render caches.
SoType SoSepGetClassTypeId()
Returns type identifier for this class.
Page 3SoSeparator(3IV)ACTION BEHAVIOR
SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction,
SoGetMatrixAction, SoHandleEventAction, SoRayPickAction, SoSearchAction
Saves the current traversal state, traverses all children, and
restores the previous traversal state.
FILE FORMAT/DEFAULTS
Separator {
renderCaching AUTO
boundingBoxCaching AUTO
renderCulling AUTO
pickCulling AUTO
}
SEE ALSO
SoSelection, SoTransformSeparator
Page 4