SOSFPATH(3iv)

πŸ’… SoSFPath πŸ’…

okay bestie, welcome to the SoSFPath(3IV) page β€” yes, that's the manual name right there, we're not doing the boring header line, we're doing this instead ✨

This is the page for a little field whose whole personality is "I contain a pointer to an SoPath". Short king. Iconic behavior. Let's get into it 🫢


NAME 🌸

SoSFPath β€” a field containing a pointer to an SoPath. that's it. that's the whole job. and she does it flawlessly.


INHERITS FROM 🧬

SoField > SoSField > SoSFPath

so the family tree goes all the way up, and she's collecting every single trait on the way down. main character lineage fr fr πŸ‘‘


SYNOPSIS ✨

#include <Inventor/fields/SoSFPath.h>

Methods from class SoSFPath:

static SoType       getClassTypeId()
virtual void        getTypeId() const
SoPath *            getValue() const
SoPath *            operator =(SoPath * newValue)
void                setValue(SoPath * newValue)
int                 operator ==(const SoSFPath &f) const
int                 operator !=(const SoSFPath &f) const

Methods from class SoField:

void                setIgnored(SbBool ignore)
SbBool              isIgnored() const
SbBool              isDefault() const
virtual SbBool      isOfType(SoType type) const
SbBool              set(const char *valueString)
void                get(SbString &valueString)
void                touch()
SbBool              connectFrom(SoField *fromField)
SbBool              connectFrom(SoEngineOutput *fromEngine)
void                disconnect()
SbBool              isConnected() const
SbBool              isConnectedFromField() const
SbBool              getConnectedField(SoField *&writingField) const
SbBool              isConnectedFromEngine() const
SbBool              getConnectedEngine(SoEngineOutput *&engineOutput)
                         const
void                enableConnection(SbBool flag)
SbBool              isConnectionEnabled() const
int                 getForwardConnections(SoFieldList &list) const
SoFieldContainer *  getContainer() const

look at all those inherited methods. she got them from her mama SoField. generational wealth πŸ’–


DESCRIPTION πŸ¦‹

So this field keeps a pointer to an SoPath instance, and β€” this is the important part, don't skip it β€” it correctly maintains its reference count. so nobody's out here freeing your path out from under you. she's responsible. she's got a system. we love that for her.

SoSFPaths get written to file as the path they point to. like, the whole path, just vibing there in your file. want the tea on what that file format actually looks like? the SoPath manual page has the full description. go read it. iykyk πŸ“–


METHODS πŸ”₯

static SoType getClassTypeId() and virtual void getTypeId() const

Returns the type for this class, or for a particular object of this class. yes, both. one's for the class, one's for the individual object. know the difference, it matters πŸ’…

SoPath * getValue() const

Returns this field's value. that's the pointer. that's her. that's the whole thing she's been holding this entire time πŸ₯Ή

SoPath * operator =(SoPath * newValue) and void setValue(SoPath * newValue)

Sets this field to newValue. two ways in, same destination. pick your fighter ⭐

int operator ==(const SoSFPath &f) const and int operator !=(const SoSFPath &f) const

Returns TRUE if f is of the same type and has the same value as this field. both of them check both things β€” same type and same value. no shortcuts, no half-checking, she's thorough 😀


SEE ALSO πŸ‘€

SoField, SoSField, SoMFPath, SoPath

go read those too. the whole friend group is worth knowing 🌈


and that's the page bestie!! πŸ’– the footer down at the bottom just says SoSFPath(3IV)() β€” no version number, no date, nothing. absolutely no notes, no receipts, just the title echoed back at you like a mirror. mysterious. minimalist. kind of a slay honestly πŸŽ€βœ¨

bye now, go set some values 🫢