osg::Stencil Class Reference

`#include <Stencil>`

Inheritance diagram for osg::Stencil:

## Public Types

enum | Function { NEVER = GL_NEVER , LESS = GL_LESS , EQUAL = GL_EQUAL , LEQUAL = GL_LEQUAL , GREATER = GL_GREATER , NOTEQUAL = GL_NOTEQUAL , GEQUAL = GL_GEQUAL , ALWAYS = GL_ALWAYS }
enum | Operation { KEEP = GL_KEEP , ZERO = GL_ZERO , REPLACE = GL_REPLACE , INCR = GL_INCR , DECR = GL_DECR , INVERT = GL_INVERT , INCR_WRAP = GL_INCR_WRAP , DECR_WRAP = GL_DECR_WRAP }
Public Types inherited from osg::StateAttribute
enum | Values { OFF = 0x0 , ON = 0x1 , OVERRIDE = 0x2 , PROTECTED = 0x4 , INHERIT = 0x8 }

enum

Type {
TEXTURE , POLYGONMODE , POLYGONOFFSET , MATERIAL ,
ALPHAFUNC , ANTIALIAS , COLORTABLE , CULLFACE ,
FOG , FRONTFACE , LIGHT , POINT ,
LINEWIDTH , LINESTIPPLE , POLYGONSTIPPLE , SHADEMODEL ,
TEXENV , TEXENVFILTER , TEXGEN , TEXMAT ,
LIGHTMODEL , BLENDFUNC , BLENDEQUATION , LOGICOP ,
STENCIL , COLORMASK , DEPTH , VIEWPORT ,
SCISSOR , BLENDCOLOR , MULTISAMPLE , CLIPPLANE ,
COLORMATRIX , VERTEXPROGRAM , FRAGMENTPROGRAM , POINTSPRITE ,
PROGRAM , CLAMPCOLOR , HINT , SAMPLEMASKI ,
PRIMITIVERESTARTINDEX , CLIPCONTROL , VALIDATOR , VIEWMATRIXEXTRACTOR ,
OSGNV_PARAMETER_BLOCK , OSGNVEXT_TEXTURE_SHADER , OSGNVEXT_VERTEX_PROGRAM , OSGNVEXT_REGISTER_COMBINERS ,
OSGNVCG_PROGRAM , OSGNVSLANG_PROGRAM , OSGNVPARSE_PROGRAM_PARSER , UNIFORMBUFFERBINDING ,
TRANSFORMFEEDBACKBUFFERBINDING , ATOMICCOUNTERBUFFERBINDING , PATCH_PARAMETER , FRAME_BUFFER_OBJECT ,
VERTEX_ATTRIB_DIVISOR , SHADERSTORAGEBUFFERBINDING , INDIRECTDRAWBUFFERBINDING , VIEWPORTINDEXED ,
DEPTHRANGEINDEXED , SCISSORINDEXED , BINDIMAGETEXTURE , SAMPLER ,
CAPABILITY = 100
}

typedef GLenum | GLMode
typedef unsigned int | GLModeValue
typedef unsigned int | OverrideValue
typedef std::pair< Type, unsigned int > | TypeMemberPair
typedef std::vector< StateSet * > | ParentList
typedef osg::StateAttributeCallback | Callback
Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

## Public Member Functions

| Stencil ()
| Stencil (const Stencil &stencil, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
| META_StateAttribute (osg, Stencil, STENCIL)
virtual int | compare (const StateAttribute &sa) const
virtual bool | getModeUsage (StateAttribute::ModeUsage &usage) const
void | setFunction (Function func, int ref, unsigned int mask)
void | setFunction (Function func)
Function | getFunction () const
void | setFunctionRef (int ref)
int | getFunctionRef () const
void | setFunctionMask (unsigned int mask)
unsigned int | getFunctionMask () const
void | setOperation (Operation sfail, Operation zfail, Operation zpass)
void | setStencilFailOperation (Operation sfail)
Operation | getStencilFailOperation () const
void | setStencilPassAndDepthFailOperation (Operation zfail)
Operation | getStencilPassAndDepthFailOperation () const
void | setStencilPassAndDepthPassOperation (Operation zpass)
Operation | getStencilPassAndDepthPassOperation () const
void | setWriteMask (unsigned int mask)
unsigned int | getWriteMask () const
virtual void | apply (State &state) const
Public Member Functions inherited from osg::StateAttribute
| StateAttribute ()
| StateAttribute (const StateAttribute &sa, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * | cloneType () const =0
virtual Object * | clone (const CopyOp &) const =0
virtual bool | isSameKindAs (const Object *obj) const
virtual const char * | libraryName () const
virtual const char * | className () const
virtual StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () const
virtual Texture * | asTexture ()
virtual const Texture * | asTexture () const
virtual Type | getType () const =0
virtual unsigned int | getMember () const
TypeMemberPair | getTypeMemberPair () const
virtual bool | isTextureAttribute () const
bool | operator< (const StateAttribute &rhs) const
bool | operator== (const StateAttribute &rhs) const
bool | operator!= (const StateAttribute &rhs) const
const ParentList & | getParents () const
StateSet * | getParent (unsigned int i)
const StateSet * | getParent (unsigned int i) const
unsigned int | getNumParents () const
void | setShaderComponent (ShaderComponent *sc)
ShaderComponent * | getShaderComponent ()
const ShaderComponent * | getShaderComponent () const
virtual bool | checkValidityOfAssociatedModes (osg::State &) const
void | setUpdateCallback (StateAttributeCallback *uc)
StateAttributeCallback * | getUpdateCallback ()
const StateAttributeCallback * | getUpdateCallback () const
void | setEventCallback (StateAttributeCallback *ec)
StateAttributeCallback * | getEventCallback ()
const StateAttributeCallback * | getEventCallback () const
virtual void | compileGLObjects (State &) const
virtual void | resizeGLObjectBuffers (unsigned int)
virtual void | releaseGLObjects (State *=0) const
Public Member Functions inherited from osg::Object
| Object ()
| Object (bool threadSafeRefUnref)
| Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
std::string | getCompoundClassName () const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual NodeVisitor * | asNodeVisitor ()
virtual const NodeVisitor * | asNodeVisitor () const
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
virtual Image * | asImage ()
virtual const Image * | asImage () const
virtual void | setThreadSafeRefUnref (bool threadSafe)
virtual void | setName (const std::string &name)
void | setName (const char *name)
const std::string & | getName () const
void | setDataVariance (DataVariance dv)
DataVariance | getDataVariance () const
virtual void | computeDataVariance ()
void | setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
virtual Referenced * | getUserData ()
virtual const Referenced * | getUserData () const
template<typename T>
bool | getUserValue (const std::string &name, T &value) const
template<typename T>
void | setUserValue (const std::string &name, const T &value)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
bool | getThreadSafeRefUnref () const
OpenThreads::Mutex * | getRefMutex () const
int | ref () const
int | unref () const
int | unref_nodelete () const
int | referenceCount () const
ObserverSet * | getObserverSet () const
ObserverSet * | getOrCreateObserverSet () const
void | addObserver (Observer *observer) const
void | removeObserver (Observer *observer) const

## Protected Member Functions

virtual | ~Stencil ()
Protected Member Functions inherited from osg::StateAttribute
virtual | ~StateAttribute ()
void | addParent (osg::StateSet *object)
void | removeParent (osg::StateSet *object)
Protected Member Functions inherited from osg::Object
virtual | ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

Function | _func
int | _funcRef
unsigned int | _funcMask
Operation | _sfail
Operation | _zfail
Operation | _zpass
unsigned int | _writeMask
Protected Attributes inherited from osg::StateAttribute
ParentList | _parents
ref_ptr< ShaderComponent > | _shaderComponent
ref_ptr< StateAttributeCallback > | _updateCallback
ref_ptr< StateAttributeCallback > | _eventCallback
Protected Attributes inherited from osg::Object
std::string | _name
DataVariance | _dataVariance
osg::UserDataContainer * | _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Detailed Description

Encapsulate OpenGL glStencilFunc/Op/Mask functions.

All functionality except INCR_WRAP and DECR_WRAP is supported by OpenGL 1.1. INCR_WRAP an DECR_WRAP are available since OpenGL 1.4 or when GL_EXT_stencil_wrap extension is present.

If INCR_WRAP or DECR_WRAP values are used while they are detected to be not supported, the INCR or DECR values are sent to OpenGL instead.

OpenGL 2.0 introduced two side stenciling that is available through osg::StencilTwoSided class.

## Member Enumeration Documentation

## Function

enum osg::Stencil::Function

Enumerator
NEVER |
LESS |
EQUAL |
LEQUAL |
GREATER |
NOTEQUAL |
GEQUAL |
ALWAYS |

## Operation

enum osg::Stencil::Operation

Enumerator
KEEP |
ZERO |
REPLACE |
INCR |
DECR |
INVERT |
INCR_WRAP |
DECR_WRAP |

## Constructor & Destructor Documentation

## Stencil() [1/2]

osg::Stencil::Stencil | ( |  | ) |

Referenced by compare(), META_StateAttribute(), and Stencil().

## Stencil() [2/2]

osg::Stencil::Stencil | ( | const Stencil & | stencil,
|  | const CopyOp & | copyop = CopyOp::SHALLOW_COPY )

inline

Copy constructor using CopyOp to manage deep vs shallow copy.

References _func, _funcMask, _funcRef, _sfail, _writeMask, _zfail, _zpass, osg::CopyOp::SHALLOW_COPY, osg::StateAttribute::StateAttribute(), and Stencil().

## ~Stencil()

virtual osg::Stencil::~Stencil | ( |  | ) |

protected virtual

## Member Function Documentation

## apply()

virtual void osg::Stencil::apply | ( | State & |  | ) | const

virtual

apply the OpenGL state attributes. The render info for the current OpenGL context is passed in to allow the StateAttribute to obtain details on the the current context and state.

Reimplemented from osg::StateAttribute.

## compare()

virtual int osg::Stencil::compare | ( | const StateAttribute & | sa | ) | const

inline virtual

return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.

Implements osg::StateAttribute.

References _func, _funcMask, _funcRef, _sfail, _writeMask, _zfail, _zpass, COMPARE_StateAttribute_Parameter, COMPARE_StateAttribute_Types, osg::StateAttribute::StateAttribute(), and Stencil().

## getFunction()

Function osg::Stencil::getFunction | ( |  | ) | const

inline

References _func.

## getFunctionMask()

unsigned int osg::Stencil::getFunctionMask | ( |  | ) | const

inline

References _funcMask.

## getFunctionRef()

int osg::Stencil::getFunctionRef | ( |  | ) | const

inline

References _funcRef.

## getModeUsage()

virtual bool osg::Stencil::getModeUsage | ( | StateAttribute::ModeUsage & |  | ) | const

inline virtual

Return the modes associated with this StateAttribute.

Reimplemented from osg::StateAttribute.

References osg::StateAttribute::ModeUsage::usesMode().

## getStencilFailOperation()

Operation osg::Stencil::getStencilFailOperation | ( |  | ) | const

inline

get the operation when the stencil test fails.

References _sfail.

## getStencilPassAndDepthFailOperation()

Operation osg::Stencil::getStencilPassAndDepthFailOperation | ( |  | ) | const

inline

get the operation when the stencil test passes but the depth test fails.

References _zfail.

## getStencilPassAndDepthPassOperation()

Operation osg::Stencil::getStencilPassAndDepthPassOperation | ( |  | ) | const

inline

get the operation when both the stencil test and the depth test pass.

References _zpass.

## getWriteMask()

unsigned int osg::Stencil::getWriteMask | ( |  | ) | const

inline

References _writeMask.

## META_StateAttribute()

osg::Stencil::META_StateAttribute | ( | osg | ,
|  | Stencil | ,
|  | STENCIL | )

References osg::StateAttribute::STENCIL, and Stencil().

## setFunction() [1/2]

void osg::Stencil::setFunction | ( | Function | func | ) |

inline

References _func.

## setFunction() [2/2]

void osg::Stencil::setFunction | ( | Function | func,
|  | int | ref,
|  | unsigned int | mask )

inline

References _func, _funcMask, _funcRef, and osg::Referenced::ref().

## setFunctionMask()

void osg::Stencil::setFunctionMask | ( | unsigned int | mask | ) |

inline

References _funcMask.

## setFunctionRef()

void osg::Stencil::setFunctionRef | ( | int | ref | ) |

inline

References _funcRef, and osg::Referenced::ref().

## setOperation()

void osg::Stencil::setOperation | ( | Operation | sfail,
|  | Operation | zfail,
|  | Operation | zpass )

inline

set the operations to apply when the various stencil and depth tests fail or pass. First parameter is to control the operation when the stencil test fails. The second parameter is to control the operation when the stencil test passes, but depth test fails. The third parameter controls the operation when both the stencil test and depth pass. Ordering of parameter is the same as if using glStencilOp(,,).

References _sfail, _zfail, and _zpass.

## setStencilFailOperation()

void osg::Stencil::setStencilFailOperation | ( | Operation | sfail | ) |

inline

set the operation when the stencil test fails.

References _sfail.

## setStencilPassAndDepthFailOperation()

void osg::Stencil::setStencilPassAndDepthFailOperation | ( | Operation | zfail | ) |

inline

set the operation when the stencil test passes but the depth test fails.

References _zfail.

## setStencilPassAndDepthPassOperation()

void osg::Stencil::setStencilPassAndDepthPassOperation | ( | Operation | zpass | ) |

inline

set the operation when both the stencil test and the depth test pass.

References _zpass.

## setWriteMask()

void osg::Stencil::setWriteMask | ( | unsigned int | mask | ) |

inline

References _writeMask.

## Member Data Documentation

## _func

Function osg::Stencil::_func

protected

Referenced by compare(), getFunction(), setFunction(), setFunction(), and Stencil().

## _funcMask

unsigned int osg::Stencil::_funcMask

protected

Referenced by compare(), getFunctionMask(), setFunction(), setFunctionMask(), and Stencil().

## _funcRef

int osg::Stencil::_funcRef

protected

Referenced by compare(), getFunctionRef(), setFunction(), setFunctionRef(), and Stencil().

## _sfail

Operation osg::Stencil::_sfail

protected

Referenced by compare(), getStencilFailOperation(), setOperation(), setStencilFailOperation(), and Stencil().

## _writeMask

unsigned int osg::Stencil::_writeMask

protected

Referenced by compare(), getWriteMask(), setWriteMask(), and Stencil().

## _zfail

Operation osg::Stencil::_zfail

protected

Referenced by compare(), getStencilPassAndDepthFailOperation(), setOperation(), setStencilPassAndDepthFailOperation(), and Stencil().

## _zpass

Operation osg::Stencil::_zpass

protected

Referenced by compare(), getStencilPassAndDepthPassOperation(), setOperation(), setStencilPassAndDepthPassOperation(), and Stencil().

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

- Stencil