51#ifndef _SO_OVERRIDE_ELEMENT
52#define _SO_OVERRIDE_ELEMENT
55#include <Inventor/STL/bitset>
61#define SO_GET_OVERRIDE(flag) \
62 const SoOverrideElement *elt; \
63 elt = SoElement::getConstElement<SoOverrideElement>(state); \
64 return (elt->m_flags.test(flag));
69#define SO_SET_OVERRIDE(flag) \
70 SoOverrideElement *elt; \
71 elt = SoElement::getElement<SoOverrideElement>(state); \
73 elt->m_flags.set(flag); \
75 elt->m_flags.reset(flag);
486 virtual SoElement* copyMatchInfo()
const;
489 enum Defined_Override_Bit {
514 FULL_SCENE_ANTIALIASING,
518 DEPTH_BUFFER_FUNCTION,
521 TEXTPRP_ANTIALIASING_FACTOR,
522 TEXTPRP_ALIGNEMENT_H,
523 TEXTPRP_ALIGNEMENT_V,
524 TEXTPRP_BACKFRAMELINE,
527 TEXTPRP_TEXTUREQUALITY,
531 TEXTPRP_STYLECOLORS_USE_CURRENT_MATERIAL,
532 TEXTPRP_CHARACTER_SPACING,
536 typedef std::bitset<LAST_OVERRIDE_BIT> BitSetType;
539 static void initClass();
540 static void exitClass();
543 static void setOverrideFlag(
SoState* state,
SoNode* SO_UNUSED_PARAM(node), Defined_Override_Bit flag,
bool override)
551 bool compareWithMask(
const SoOverrideElement& in,
const BitSetType* testBitMask = NULL )
const;
558 explicit BitSetGetter(
SoState* state )
563 virtual ~BitSetGetter()
568 inline bool testBit(
int i )
570 return m_BufferedFlags.test(i);
574 BitSetGetter &
operator=(
const BitSetGetter & ) {
return *
this; }
575 const BitSetType& m_BufferedFlags;
583 explicit BitSetSetter(
SoState* state )
588 virtual ~BitSetSetter()
593 inline void setBit(
size_t i,
bool value )
595 m_BufferedFlags.set(i, value);
599 BitSetSetter &
operator=(
const BitSetSetter & );
600 BitSetType& m_BufferedFlags;
604 static void resetOverrideFlag(
SoState* state);
608 void pFlag(FILE *,
int)
const;
#define SoEXTENDER_Documented
#define SO_GET_OVERRIDE(flag)
#define SO_SET_OVERRIDE(flag)
#define SO_ELEMENT_HEADER(className)
valueRef operator=(valueRef newValue)
Sets this field to newValue.
Abstract base class for all state elements.
Abstract base class for all database nodes.
Stores a flag for each type of element which can be overridden.
static SbBool getMaterialBindingOverride(SoState *state)
Returns TRUE if SoMaterialBindingElement is overridden.
static SbBool getPatternOverride(SoState *state)
Returns TRUE if SoPatternElement is overriden.
static SbBool getShininessOverride(SoState *state)
Returns TRUE if SoShininessElement is overridden.
static void setLinePatternOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoLinePatternElement.
static void setFullSceneAntialiasingOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoFullSceneAntialiasingElement.
static void setShininessOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoShininessElement.
static void setComplexityTypeOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoComplexityTypeElement.
static void setPatternOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoPatternElement.
static void setLightModelOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoLightModelElement.
static SbBool getDrawStyleOverride(SoState *state)
Returns TRUE if SoDrawStyleElement is overridden.
static SbBool getTransparencyTypeOverride(SoState *state)
Returns TRUE if SoTransparencyTypeElement is overridden.
static void setMaterialBindingOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoMaterialBindingElement.
static void setColorIndexOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoColorIndexElement.
static void setTransparencyOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoTransparencyElement.
static SbBool getComplexityOverride(SoState *state)
Returns TRUE if SoComplexityElement is overridden.
static void setDiffuseColorOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoDiffuseColorElement.
static SbBool getNeighborToleranceOverride(SoState *state)
Returns TRUE if SoNeighborToleranceElement is overridden.
static SbBool getTransparencyOverride(SoState *state)
Returns TRUE if SoTransparencyElement is overridden.
static SbBool getFontSizeOverride(SoState *state)
Returns TRUE if SoFontSizeElement is overridden.
static void setLineWidthOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoLineWidthElement.
static SbBool getComplexityTypeOverride(SoState *state)
Returns TRUE if SoComplexityTypeElement is overridden.
static void setAmbientColorOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoAmbientColorElement.
static SbBool getLinePatternOverride(SoState *state)
Returns TRUE if SoLinePatternElement is overridden.
static SbBool getLightModelOverride(SoState *state)
Returns TRUE if SoLightModelElement is overridden.
static SbBool getCreaseAngleOverride(SoState *state)
Returns TRUE if SoCreaseAngleElement is overridden.
static void setComplexityOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoComplexityElement.
static SbBool getDepthBufferRangeOverride(SoState *state)
Returns TRUE if SoDepthBuffer::range is overridden.
static SbBool getPolygonOffsetOverride(SoState *state)
Returns TRUE if SoPolygonOffsetElement is overridden.
static void setEnvironmentOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoEnvironmentElement.
static void setSpecularColorOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoSpecularColorElement.
static SbBool getPointSizeOverride(SoState *state)
Returns TRUE if SoPointSizeElement is overridden.
virtual void push(SoState *state)
Overrides push() method to copy values from next instance in the stack, and set up cache dependencies...
static void setNeighborToleranceOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoNeighborToleranceElement.
static void setFontNameOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoFontNameElement.
static void setEmissiveColorOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoEmissiveColorElement.
static void setFontRenderStyleOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoFontRenderStyleElement.
static SbBool getSpecularColorOverride(SoState *state)
Returns TRUE if SoSpecularColorElement is overridden.
static void setFontSizeOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoFontSizeElement.
static SbBool getPickStyleOverride(SoState *state)
Returns TRUE if SoPickStyleElement is overridden.
static SbBool getDepthBufferFunctionOverride(SoState *state)
Returns TRUE if SoDepthBuffer::function is overridden.
static SbBool getEmissiveColorOverride(SoState *state)
Returns TRUE if SoEmissiveColorElement is overridden.
static SbBool getFontRenderStyleOverride(SoState *state)
Returns TRUE if SoFontRenderStyleElement is overridden.
static void setDepthBufferRangeOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoDepthBuffer::range.
static SbBool getColorIndexOverride(SoState *state)
Returns TRUE if SoColorIndexElement is overridden.
static SbBool getBBoxTypeOverride(SoState *state)
Returns TRUE if SoComplexityType::bboxType is overridden.
static SbBool getFontNameOverride(SoState *state)
Returns TRUE if SoFontNameElement is overridden.
static SbBool getEnvironmentOverride(SoState *state)
Returns TRUE if SoEnvironmentElement is overridden.
static SbBool getShapeHintsOverride(SoState *state)
Returns TRUE if SoShapeHintsElement is overridden.
static void setCreaseAngleOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoCreaseAngleElement.
static void setPickStyleOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoPickStyleElement.
static void setPolygonOffsetOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoPolygonOffsetElement.
static void setDepthBufferFunctionOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoDepthBuffer::function.
static void setPointSizeOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoPointSizeElement.
static SbBool getFullSceneAntialiasingOverride(SoState *state)
Returns TRUE if SoFullSceneAntialiasingElement is overridden.
static SbBool getAmbientColorOverride(SoState *state)
Returns TRUE if SoAmbientColorElement is overridden.
static SbBool getLineWidthOverride(SoState *state)
Returns TRUE if SoLineWidthElement is overridden.
virtual void print(FILE *fp) const
Prints element (for debugging).
static SbBool getDiffuseColorOverride(SoState *state)
Returns TRUE if SoDiffuseColorElement is overridden.
static void setShapeHintsOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoShapeHintsElement.
static void setDrawStyleOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoDrawStyleElement.
static void setBBoxTypeOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoComplexity::bboxType.
static void setTransparencyTypeOverride(SoState *state, SoNode *, SbBool override)
Set override flag for SoTransparencyTypeElement.