Man Linux: Main Page and Category List

NAME

       SoOverrideElement -

       The SoOverrideElement maintains a list of overridable elements and a
       list over which elements should be overridden.

       Only certain elements can be overridden.

SYNOPSIS

       #include <Inventor/elements/SoOverrideElement.h>

       Inherits SoElement.

   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.
       virtual void push (SoState *state)
           FIXME: write doc.
       virtual SbBool matches (const SoElement *element) const
           FIXME: write doc.
       virtual SoElement * copyMatchInfo (void) const
           FIXME: write doc.
       virtual void print (FILE *file) const
           FIXME: write doc.

   Static Public Member Functions
       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)

   Protected Member Functions
       virtual ~SoOverrideElement ()

Detailed Description

       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:

         #include <Inventor/Qt/SoQt.h>
         #include <Inventor/Qt/viewers/SoQtExaminerViewer.h>
         #include <Inventor/nodes/SoSeparator.h>
         #include <Inventor/nodes/SoMaterial.h>

         // *************************************************************************

         const char * scene = ’#Inventor V2.1 asci0
         ’0
         ’Separator {’
         ’   Cone { }’
         ’   Translation { translation 1 0 5 }’
         ’’
         ’   DEF OVERRIDEMATERIAL Material { transparency 0.5 }’
         ’’
         ’   DEF OBJMATERIAL Material {’
         ’      diffuseColor 0.5 0 0’
         ’      transparency 0’
         ’   }’
         ’   Sphere { }’
         ’}’
         ;

         int
         main(int argc, char ** argv)
         {
           QWidget * window = SoQt::init(argv[0]);

           (void)coin_setenv(’COIN_SEPARATE_DIFFUSE_TRANSPARENCY_OVERRIDE’, ’1’, TRUE);

           SoInput * in = new SoInput;
           in->setBuffer((void *)scene, strlen(scene));
           SoSeparator * root = SoDB::readAll(in);
           assert(root);
           delete in;

           root->ref();

           SoMaterial * overridemat = (SoMaterial *)
             SoBase::getNamedBase(’OVERRIDEMATERIAL’, SoMaterial::getClassTypeId());
           assert(overridemat);

           overridemat->diffuseColor.setIgnored(TRUE);
           overridemat->setOverride(TRUE);

           SoQtExaminerViewer * viewer = new SoQtExaminerViewer(window);
           viewer->setSceneGraph(root);
           viewer->show();

           SoQt::show(window);
           SoQt::mainLoop();

           delete viewer;
           root->unref();

           return 0;
         }

Member Enumeration Documentation

   enum SoOverrideElement::FlagBits FIXME: write doc.

Constructor & Destructor Documentation

   SoOverrideElement::~SoOverrideElement (void) [protected, virtual] The
       destructor.

Member Function Documentation

   void SoOverrideElement::initClass (void) [static] This static method
       initializes static data for the SoOverrideElement class.
       Reimplemented from SoElement.

   SbBool SoOverrideElement::getAmbientColorOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getColorIndexOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getComplexityOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getComplexityTypeOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getCreaseAngleOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getDiffuseColorOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getDrawStyleOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getEmissiveColorOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getFontNameOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getFontSizeOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getLightModelOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getLinePatternOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getLineWidthOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getMaterialBindingOverride (SoState *const
       state) [static] FIXME: write doc.
   SbBool SoOverrideElement::getPickStyleOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getPointSizeOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getPolygonOffsetOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getShapeHintsOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getShininessOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getSpecularColorOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getTransparencyOverride (SoState *const  state)
       [static] FIXME: write doc.
   SbBool SoOverrideElement::getTransparencyTypeOverride (SoState *const
       state) [static] FIXME: write doc.
   SbBool SoOverrideElement::getNormalVectorOverride (SoState *const  state)
       [static] Returns normal vector override value.
       Since:
           Coin 2.0

   SbBool SoOverrideElement::getNormalBindingOverride (SoState *const  state)
       [static] Returns normal binding override value.
       Since:
           Coin 2.0

   void SoOverrideElement::setAmbientColorOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setColorIndexOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setComplexityOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setComplexityTypeOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setCreaseAngleOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setDiffuseColorOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [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.

   void SoOverrideElement::setDrawStyleOverride (SoState *const  state, SoNode
       *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setEmissiveColorOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setFontNameOverride (SoState *const  state, SoNode
       *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setFontSizeOverride (SoState *const  state, SoNode
       *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setLightModelOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setLinePatternOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setLineWidthOverride (SoState *const  state, SoNode
       *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setPickStyleOverride (SoState *const  state, SoNode
       *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setPointSizeOverride (SoState *const  state, SoNode
       *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setPolygonOffsetOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setShapeHintsOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setShininessOverride (SoState *const  state, SoNode
       *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setSpecularColorOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] FIXME: write doc.
   void SoOverrideElement::setTransparencyOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] Can be used to set
       the transparency override.
       See also:
           setDiffuseColorOverride().

   void SoOverrideElement::setTransparencyTypeOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] Can be used to set
       the transparency type override.
       See also:
           setDiffuseColorOverride().

   void SoOverrideElement::setNormalVectorOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] Can be used to set
       normal vector override.
       Since:
           Coin 2.0

   void SoOverrideElement::setNormalBindingOverride (SoState *const  state,
       SoNode *const node, const SbBool override) [static] Can be used to set
       normal binding override.
       Since:
           Coin 2.0

Author

       Generated automatically by Doxygen for Coin from the source code.