![]() |
http://www.sim.no http://www.coin3d.org |
The SoOverrideElement maintains a list of overridable elements and a list over which elements should be overridden. More...
#include <Inventor/elements/SoOverrideElement.h>
Public Types | |
enum | FlagBits { AMBIENT_COLOR = 0x00000001 , COLOR_INDEX = 0x00000002 , COMPLEXITY = 0x00000004 , COMPLEXITY_TYPE = 0x00000008 , CREASE_ANGLE = 0x00000010 , DIFFUSE_COLOR = 0x00000020 , DRAW_STYLE = 0x00000040 , EMISSIVE_COLOR = 0x00000080 , FONT_NAME = 0x00000100 , FONT_SIZE = 0x00000200 , LIGHT_MODEL = 0x00000400 , LINE_PATTERN = 0x00000800 , LINE_WIDTH = 0x00001000 , MATERIAL_BINDING = 0x00002000 , POINT_SIZE = 0x00004000 , PICK_STYLE = 0x00008000 , SHAPE_HINTS = 0x00010000 , SHININESS = 0x00020000 , SPECULAR_COLOR = 0x00040000 , POLYGON_OFFSET = 0x00080000 , TRANSPARENCY = 0x00100000 , TRANSPARENCY_TYPE = 0x00200000 , NORMAL_VECTOR = 0x00400000 , NORMAL_BINDING = 0x00800000 } |
Public Member Functions | |
virtual void | init (SoState *state) |
FIXME: write doc. More... | |
virtual void | push (SoState *state) |
FIXME: write doc. More... | |
virtual SbBool | matches (const SoElement *element) const |
FIXME: write doc. More... | |
virtual SoElement * | copyMatchInfo (void) const |
FIXME: write doc. More... | |
virtual void | print (FILE *file) const |
FIXME: write doc. More... | |
![]() | |
const SoType | getTypeId (void) const |
int | getStackIndex (void) const |
virtual void | init (SoState *state) |
virtual void | push (SoState *state) |
virtual void | pop (SoState *state, const SoElement *prevTopElement) |
virtual SbBool | matches (const SoElement *element) const =0 |
virtual SoElement * | copyMatchInfo (void) const =0 |
void | setDepth (const int depth) |
int | getDepth (void) const |
virtual void | print (FILE *file=stdout) const |
virtual | ~SoElement () |
Static Public Member Functions | |
static SoType | getClassTypeId (void) |
static int | getClassStackIndex (void) |
static void * | createInstance (void) |
static void | initClass (void) |
static uint32_t | getFlags (SoState *const state) |
static SbBool | getAmbientColorOverride (SoState *const state) |
static SbBool | getColorIndexOverride (SoState *const state) |
static SbBool | getComplexityOverride (SoState *const state) |
static SbBool | getComplexityTypeOverride (SoState *const state) |
static SbBool | getCreaseAngleOverride (SoState *const state) |
static SbBool | getDiffuseColorOverride (SoState *const state) |
static SbBool | getDrawStyleOverride (SoState *const state) |
static SbBool | getEmissiveColorOverride (SoState *const state) |
static SbBool | getFontNameOverride (SoState *const state) |
static SbBool | getFontSizeOverride (SoState *const state) |
static SbBool | getLightModelOverride (SoState *const state) |
static SbBool | getLinePatternOverride (SoState *const state) |
static SbBool | getLineWidthOverride (SoState *const state) |
static SbBool | getMaterialBindingOverride (SoState *const state) |
static SbBool | getPickStyleOverride (SoState *const state) |
static SbBool | getPointSizeOverride (SoState *const state) |
static SbBool | getPolygonOffsetOverride (SoState *const state) |
static SbBool | getShapeHintsOverride (SoState *const state) |
static SbBool | getShininessOverride (SoState *const state) |
static SbBool | getSpecularColorOverride (SoState *const state) |
static SbBool | getTransparencyOverride (SoState *const state) |
static SbBool | getTransparencyTypeOverride (SoState *const state) |
static SbBool | getNormalVectorOverride (SoState *const state) |
static SbBool | getNormalBindingOverride (SoState *const state) |
static void | setAmbientColorOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setColorIndexOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setComplexityOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setComplexityTypeOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setCreaseAngleOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setDiffuseColorOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setDrawStyleOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setEmissiveColorOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setFontNameOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setFontSizeOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setLightModelOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setLinePatternOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setLineWidthOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setMaterialBindingOverride (SoState *const state, SoNode *const node, const SbBool override) |
FIXME: write doc. | |
static void | setPickStyleOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setPointSizeOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setPolygonOffsetOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setShapeHintsOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setShininessOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setSpecularColorOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setTransparencyOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setTransparencyTypeOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setNormalVectorOverride (SoState *const state, SoNode *const node, const SbBool override) |
static void | setNormalBindingOverride (SoState *const state, SoNode *const node, const SbBool override) |
![]() | |
static void | initClass (void) |
static SoType | getClassTypeId (void) |
static int | getClassStackIndex (void) |
static void | initElements (void) |
static int | getNumStackIndices (void) |
static SoType | getIdFromStackIndex (const int stackIndex) |
Protected Member Functions | |
virtual | ~SoOverrideElement () |
![]() | |
SoElement (void) | |
void | capture (SoState *const state) const |
virtual void | captureThis (SoState *state) const |
void | setTypeId (const SoType typeId) |
void | setStackIndex (const int index) |
SoElement * | getNextInStack (void) const |
SoElement * | getNextFree (void) const |
Additional Inherited Members | |
![]() | |
static SoElement * | getElement (SoState *const state, const int stackIndex) |
static const SoElement * | getConstElement (SoState *const state, const int stackIndex) |
static int | createStackIndex (const SoType id) |
![]() | |
SoType | typeId |
int | stackIndex |
int | depth |
![]() | |
static int | classStackIndex |
static SoTypeList * | stackToType |
The SoOverrideElement maintains a list of overridable elements and a list over which elements should be overridden.
Only certain elements can be overridden.
The remaining class documentation describes a single, special case:
A common request for functionality is to override only the transparency of the full scene graph, or parts of the scene graph.
In the original SGI Inventor, this is nigh impossible, as the API was designed to only make it possible to override all or none of the fields of a node. So calling SoNode::setOverride() on an SoMaterial node will cause all material settings of that node to override all material settings further on in the scene graph, and there is no way to override only the transparency settings.
In Coin, we have added in a little hack to overcome this problem, since it is such a common request for functionality: to have separate transparency override settings, set the environment variable COIN_SEPARATE_DIFFUSE_TRANSPARENCY_OVERRIDE
to "1" to enable this hack.
(Do however note that this will not work when the SoPackedColor or SoVertexProperty node is used to specify diffuse color and transparency – only with the SoMaterial node.)
Here is a complete, stand-alone example which demonstrates how to accomplish this:
FIXME: write doc.
|
protectedvirtual |
The destructor.
|
static |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
|
static |
This static method initializes static data for the SoOverrideElement class.
Referenced by SoElement::initElements().
|
virtual |
|
virtual |
FIXME: write doc.
Reimplemented from SoElement.
References SoElement::getNextInStack(), and SoElement::push().
|
virtual |
FIXME: write doc.
Implements SoElement.
|
virtual |
FIXME: write doc.
Implements SoElement.
References SoType::createInstance(), and SoElement::getTypeId().
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
Referenced by SoColorIndex::GLRender().
|
static |
FIXME: write doc.
Referenced by SoComplexity::doAction(), and SoComplexity::getPrimitiveCount().
|
static |
FIXME: write doc.
Referenced by SoComplexity::doAction().
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
Referenced by SoBaseColor::doAction(), SoPackedColor::doAction(), and SoVRMLColor::doAction().
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
Referenced by SoLightModel::doAction().
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
Referenced by SoMaterialBinding::doAction().
|
static |
FIXME: write doc.
Referenced by SoPickStyle::doAction().
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
Referenced by SoPolygonOffset::doAction().
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
|
static |
FIXME: write doc.
Referenced by SoTransparencyType::doAction().
|
static |
Returns normal vector override value.
\CLASS_FUNCTION_EXTENSION
Referenced by SoNormal::doAction().
|
static |
Returns normal binding override value.
\CLASS_FUNCTION_EXTENSION
Referenced by SoNormalBinding::doAction().
|
static |
FIXME: write doc.
Referenced by SoMaterial::doAction(), and SoVRMLMaterial::doAction().
|
static |
FIXME: write doc.
Referenced by SoColorIndex::GLRender().
|
static |
FIXME: write doc.
Referenced by SoComplexity::doAction().
|
static |
FIXME: write doc.
Referenced by SoComplexity::doAction().
|
static |
FIXME: write doc.
Referenced by SoShapeHints::doAction().
|
static |
Can be used to set diffuse color override. This will also set the transparency override. Since we feel this is a design flaw, it is possible to override this behaviour by setting an environement value called COIN_SEPARATE_DIFFUSE_TRANSPARENCY_OVERRIDE to 1.
Please note that separate override will not work for the PackedColor or SoVertexProperty nodes.
Referenced by SoBaseColor::doAction(), SoMaterial::doAction(), SoPackedColor::doAction(), SoVertexProperty::doAction(), SoVRMLColor::doAction(), and SoVRMLMaterial::doAction().
|
static |
FIXME: write doc.
Referenced by SoDrawStyle::doAction().
|
static |
FIXME: write doc.
Referenced by SoMaterial::doAction(), and SoVRMLMaterial::doAction().
|
static |
FIXME: write doc.
Referenced by SoFont::doAction(), and SoFontStyle::doAction().
|
static |
FIXME: write doc.
Referenced by SoFont::doAction(), and SoFontStyle::doAction().
|
static |
FIXME: write doc.
Referenced by SoLightModel::doAction().
|
static |
FIXME: write doc.
Referenced by SoDrawStyle::doAction().
|
static |
FIXME: write doc.
Referenced by SoDrawStyle::doAction().
|
static |
FIXME: write doc.
Referenced by SoPickStyle::doAction().
|
static |
FIXME: write doc.
Referenced by SoDrawStyle::doAction().
|
static |
FIXME: write doc.
Referenced by SoPolygonOffset::doAction().
|
static |
FIXME: write doc.
Referenced by SoShapeHints::doAction(), and SoShadowCulling::GLRender().
|
static |
FIXME: write doc.
Referenced by SoMaterial::doAction(), and SoVRMLMaterial::doAction().
|
static |
FIXME: write doc.
Referenced by SoMaterial::doAction(), and SoVRMLMaterial::doAction().
|
static |
Can be used to set the transparency override.
Referenced by SoMaterial::doAction(), and SoVRMLMaterial::doAction().
|
static |
Can be used to set the transparency type override.
Referenced by SoTransparencyType::doAction().
|
static |
Can be used to set normal vector override.
\CLASS_FUNCTION_EXTENSION
Referenced by SoNormal::doAction(), and SoVertexProperty::doAction().
|
static |
Can be used to set normal binding override.
\CLASS_FUNCTION_EXTENSION
Referenced by SoNormalBinding::doAction(), and SoVertexProperty::doAction().
|
virtual |
FIXME: write doc.
Reimplemented from SoElement.
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Wed Jul 20 2022 for Coin by Doxygen. 1.9.5