SoDepthBuffer(3)
πΈ SoDepthBuffer π
okay bestie, sit down, hydrate, because this is the Coin manual page for SoDepthBuffer(3) and it is long. This is part 1 of 2 β more is coming, so don't wander off. β¨
π NAME π
SoDepthBuffer β the SoDepthBuffer class is a node used to control the GL depth buffer. that's it. that's the whole job. and it does it gorgeously. π
β¨ SYNOPSIS β¨
#include <Inventor/nodes/SoDepthBuffer.h>
Inherits SoNode. yeah bestie, it's a node, it said what it said π
π¦ Public Types π¦
the depth write function enum, in all its glory:
enum DepthWriteFunction { NEVER = SoDepthBufferElement::NEVER, ALWAYS = SoDepthBufferElement::ALWAYS, LESS = SoDepthBufferElement::LESS, LEQUAL = SoDepthBufferElement::LEQUAL, EQUAL = SoDepthBufferElement::EQUAL, GEQUAL = SoDepthBufferElement::GEQUAL, GREATER = SoDepthBufferElement::GREATER, NOTEQUAL = SoDepthBufferElement::NOTEQUAL }
π« Public Types inherited from SoNode π«
enum NodeType { INVENTOR = 0x0000, VRML1 = 0x0001, VRML2 = 0x0002, INVENTOR_1 = 0x0004, INVENTOR_2_0 = 0x0008, INVENTOR_2_1 = 0x0010, INVENTOR_2_5 = 0x0020, INVENTOR_2_6 = 0x0040, COIN_1_0 = 0x0080, COIN_2_0 = 0x0100, EXTENSION = 0x0200, COIN_2_2 = 0x0400, COIN_2_3 = 0x0800, COIN_2_4 = 0x1000, INVENTOR_5_0 = 0x2000, COIN_2_5 = 0x4000, COIN_3_0 = 0x8000, INVENTOR_6_0 = 0x10000, COIN_4_0 = 0x20000 }
π Public Member Functions π
these are hers. the ones SoDepthBuffer brings to the party herself:
virtual SoType getTypeId (void) constβ the classic, every Coin class has one, she's not special for this πSoDepthBuffer (void)β the constructor. hi bestie πvirtual void GLRender (SoGLRenderAction *action)β she does the render thing, the whole reason she exists β¨
π Public Member Functions inherited from SoNode π
void setOverride (const SbBool state)
SbBool isOverride (void) const
void setNodeType (const NodeType type)
NodeType getNodeType (void) const
virtual SoNode * copy (SbBool copyconnections=FALSE) const
virtual SbBool affectsState (void) const
virtual void doAction (SoAction *action)
virtual void GLRenderBelowPath (SoGLRenderAction *action)
virtual void GLRenderInPath (SoGLRenderAction *action)
virtual void GLRenderOffPath (SoGLRenderAction *action)
virtual void callback (SoCallbackAction *action)
virtual void getBoundingBox (SoGetBoundingBoxAction *action)
virtual void getMatrix (SoGetMatrixAction *action)
virtual void handleEvent (SoHandleEventAction *action)
virtual void pick (SoPickAction *action)
virtual void rayPick (SoRayPickAction *action)
virtual void search (SoSearchAction *action)
virtual void write (SoWriteAction *action)
virtual void audioRender (SoAudioRenderAction *action)
virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)
virtual void grabEventsSetup (void)
virtual void grabEventsCleanup (void)
virtual void startNotify (void)
virtual void notify (SoNotList *l)
SbUniqueId getNodeId (void) const
virtual SoChildList * getChildren (void) const
virtual void writeInstance (SoOutput *out)
virtual SoNode * addToCopyDict (void) const
virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)
virtual SoFieldContainer * copyThroughConnection (void) const
π«Ά Public Member Functions inherited from SoFieldContainer π«Ά
void setToDefaults (void)
SbBool hasDefaultValues (void) const
SbBool fieldsAreEqual (const SoFieldContainer *container) const
void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)
SbBool set (const char *const fielddata)
void get (SbString &fielddata)
virtual int getFields (SoFieldList &l) const
virtual int getAllFields (SoFieldList &l) const
virtual SoField * getField (const SbName &name) const
virtual SoField * getEventIn (const SbName &name) const
virtual SoField * getEventOut (const SbName &name) const
SbBool getFieldName (const SoField *const field, SbName &name) const
SbBool enableNotify (const SbBool flag)
SbBool isNotifyEnabled (void) const
SbBool set (const char *fielddata, SoInput *input)
void get (SbString &fielddata, SoOutput *out)
virtual SbBool validateNewFieldValue (SoField *field, void *newval)
virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)
SbBool getIsBuiltIn (void) const
virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) const
void setUserData (void *userdata) const
void * getUserData (void) const
π Public Member Functions inherited from SoBase π
void ref (void) const
void unref (void) const
void unrefNoDelete (void) const
int32_t getRefCount (void) const
void touch (void)
SbBool isOfType (SoType type) const
virtual SbName getName (void) const
virtual void setName (const SbName &newname)
void addAuditor (void *const auditor, const SoNotRec::Type type)
void removeAuditor (void *const auditor, const SoNotRec::Type type)
const SoAuditorList & getAuditors (void) const
SbBool shouldWrite (void)
void assertAlive (void) const
and one lil note on that isOfType, since it actually explains itself: it Returns TRUE if the type of this object is either of the same type or inherited from type. π
π Static Public Member Functions π
the static girlies, they belong to the class itself not the instance, iykyk:
static SoType getClassTypeId (void)β class-level type id, she's got one πstatic void initClass (void)β Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. the classic Coin ritual, do it once and slay β¨
β Static Public Member Functions inherited from SoNode β
static uint32_t getCompatibilityTypes (const SoType &nodetype)
static SoType getClassTypeId (void)
static SoNode * getByName (const SbName &name)
static int getByName (const SbName &name, SoNodeList &l)
static void initClass (void)
static void initClasses (void)
static SbUniqueId getNextNodeId (void)
static int getActionMethodIndex (const SoType type)
static void getBoundingBoxS (SoAction *action, SoNode *node)
static void GLRenderS (SoAction *action, SoNode *node)
static void callbackS (SoAction *action, SoNode *node)
static void getMatrixS (SoAction *action, SoNode *node)
static void handleEventS (SoAction *action, SoNode *node)
static void pickS (SoAction *action, SoNode *node)
static void rayPickS (SoAction *action, SoNode *node)
static void searchS (SoAction *action, SoNode *node)
static void writeS (SoAction *action, SoNode *node)
static void audioRenderS (SoAction *action, SoNode *node)
static void getPrimitiveCountS (SoAction *action, SoNode *node)
and yes, that initClass there does the same thing the other one does: Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system. π
πΈ Static Public Member Functions inherited from SoFieldContainer πΈ
static void initClass (void)
static SoType getClassTypeId (void)
static void cleanupClass (void)
static void initCopyDict (void)
static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)
static SoFieldContainer * checkCopy (const SoFieldContainer *orig)
static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)
static void copyDone (void)
with two lil descriptions, because they came with them:
static void initClass (void)β Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.static SoType getClassTypeId (void)β This static method returns theSoTypeobject associated with objects of this class.
π Static Public Member Functions inherited from SoBase π
static void initClass (void)
static SoType getClassTypeId (void)
static void addName (SoBase *const base, const char *const name)
static void removeName (SoBase *const base, const char *const name)
static void incrementCurrentWriteCounter (void)
static void decrementCurrentWriteCounter (void)
static SoBase * getNamedBase (const SbName &name, SoType type)
static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)
static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)
static void setInstancePrefix (const SbString &c)
static void setTraceRefs (SbBool trace)
static SbBool getTraceRefs (void)
static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)
static SbBool readRoute (SoInput *input)
same energy, same descriptions:
static void initClass (void)β Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.static SoType getClassTypeId (void)β This static method returns theSoTypeobject associated with objects of this class.
π§ Public Attributes π§
the actual fields you'll be poking at. no descriptions given here in the synopsis, they're coming later, don't @ me:
SoSFBool testSoSFBool writeSoSFEnum functionSoSFVec2f range
π Protected Member Functions π
for the inheritance girlies only, hands off:
virtual const SoFieldData * getFieldData (void) constvirtual ~SoDepthBuffer ()β the destructor, she's protected, she said no visitors π
π« Protected Member Functions inherited from SoNode π«
SoNode (void)
virtual ~SoNode ()
virtual SbBool readInstance (SoInput *in, unsigned short flags)
β¨ Protected Member Functions inherited from SoFieldContainer β¨
SoFieldContainer (void)
virtual ~SoFieldContainer ()
π¦ Protected Member Functions inherited from SoBase π¦
SoBase (void)
virtual ~SoBase ()
virtual void destroy (void)
SbBool hasMultipleWriteRefs (void) const
SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const
void writeFooter (SoOutput *out) const
virtual const char * getFileFormatName (void) const
virtual SoNotRec createNotRec (void)
π Static Protected Member Functions π
static const SoFieldData ** getFieldDataPtr (void)
π Static Protected Member Functions inherited from SoNode π
static const SoFieldData ** getFieldDataPtr (void)
static void setNextActionMethodIndex (int index)
static int getNextActionMethodIndex (void)
static void incNextActionMethodIndex (void)
static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)
πΈ Static Protected Member Functions inherited from SoBase πΈ
static uint32_t getCurrentWriteCounter (void)
static void staticDataLock (void)
static void staticDataUnlock (void)
π«Ά Additional Inherited Members π«Ά
the little extras that trickle down from the ancestors, all still protected, all still not yours:
π Protected Types inherited from SoBase π
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }
β Protected Attributes inherited from SoNode β
SbUniqueId uniqueId
π Protected Attributes inherited from SoFieldContainer π
SbBool isBuiltIn
π Static Protected Attributes inherited from SoNode π
static SbUniqueId nextUniqueId = 1
static int nextActionMethodIndex = 0
okay that's the whole synopsis bestie and we are nowhere near done β part 2 is coming, don't go anywhere π
π DETAILED DESCRIPTION π
okay so the tea on SoDepthBuffer is that it's a node, and its whole job is controlling the GL depth buffer. that's it, that's the gig. π
with this node you can control properties related to the OpenGL depth buffer in a whole bunch of ways, and bestie, the list is giving range:
- you can enable and disable depth buffer testing during rendering,
- you can enable and disable writing to the depth buffer during rendering,
- you can set the function used for the depth buffer testing, and
- you can set the value range used in the depth buffer.
the value range setting is lowkey the main character here. it's useful if you need to segment the 3D world into different segments with different depth buffer resolutions, so you get a more optimal depth buffer resolution distribution than what a single, uniform depth buffer value range can give you. like, one uniform range is fine but sometimes you gotta β¨diversifyβ¨.
FILE FORMAT/DEFAULTS:
DepthBuffer {
test TRUE
write TRUE
function LESS
range 0 1
}
π¨ heads up bestie: this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API. so don't go looking for it there, it's not there, no cap.
Since: Coin 3.0 β yes she's been around a minute π
π MEMBER ENUMERATION DOCUMENTATION π
πΈ enum SoDepthBuffer::DepthWriteFunction
enumeration for the various depth functions. a whole lineup of them. here's the roster:
NEVERβ never passes. literally never. not once. πALWAYSβ always passes. no notes, she's an icon. πLESSβ passes if the incoming depth value is less than the stored depth value.LEQUALβ passes if the incoming depth value is less than or equal to the stored depth value.EQUALβ passes if the incoming depth value is equal to the stored depth value.GEQUALβ passes if the incoming depth value is greater than or equal to the stored depth value.GREATERβ passes if the incoming depth value is greater than the stored depth value.NOTEQUALβ passes if the incoming depth value is not equal to the stored depth value.
β¨ CONSTRUCTOR & DESTRUCTOR DOCUMENTATION β¨
π SoDepthBuffer::SoDepthBuffer (void )
constructor. makes the thing. slay. β¨
π SoDepthBuffer::~SoDepthBuffer () [protected], [virtual]
destructor. un-makes the thing. π¦
π MEMBER FUNCTION DOCUMENTATION π
β SoType SoDepthBuffer::getClassTypeId (void ) [static]
this static method returns the SoType object associated with objects of this class.
β SoType SoDepthBuffer::getTypeId (void ) const [virtual]
returns the type identification of an object derived from a class inheriting SoBase. this is used for runtime type checking and "downward" casting, iykyk.
implements SoBase.
β const SoFieldData ** SoDepthBuffer::getFieldDataPtr (void ) [static], [protected]
this API member is considered internal to the library, as it is not likely to be of interest to the application programmer. so like, not your business bestie, but okay, here it is anyway.
returns the SoFieldData class which holds information about fields in this node.
β const SoFieldData * SoDepthBuffer::getFieldData (void ) const [protected], [virtual]
returns a pointer to the class-wide field data storage object for this instance. if no fields are present, returns NULL.
reimplemented from SoFieldContainer.
β void SoDepthBuffer::GLRender (SoGLRenderAction * action) [virtual]
action method for the SoGLRenderAction.
this is called during rendering traversals. nodes influencing the rendering state in any way, or that want to throw geometry primitives at OpenGL, override this method.
reimplemented from SoNode.
π MEMBER DATA DOCUMENTATION π
π«Ά SoSFBool SoDepthBuffer::test
enable depth buffer testing. defaults to TRUE.
π«Ά SoSFBool SoDepthBuffer::write
enable depth buffer writing. defaults to TRUE.
π«Ά SoSFEnum SoDepthBuffer::function
which depth function to use. defaults to LESS.
π«Ά SoSFVec2f SoDepthBuffer::range
the value range for the depth buffer data. defaults to [0.0, 1.0]. the range will be clamped to [0.0, 1.0] β so don't get cute with it, it's not going outside that box. π
π¦ AUTHOR π¦
generated automatically by Doxygen for Coin from the source code. the robot wrote it, not me. π€β¨
and that's the whole page bestie!! this was Coin version 4.0.10, dated Thu Jun 25 2026 00:00:00, and you just read SoDepthBuffer(3). go forth and depth-buffer your little heart out. mwah. πππ¦
π¦ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms