SOSFENGINE(3iv)
β¨ NAME β¨
SoSFEngine β it's a field, bestie, and what it holds is a pointer to an engine. That's the whole vibe. π
π¦ INHERITS FROM π¦
SoField > SoSField > SoSFEngine
so likeβ¦ it's deep in the family tree, iykyk. π
πΈ SYNOPSIS πΈ
#include <Inventor/fields/SoSFEngine.h>
Methods from class SoSFEngine:
static SoType getClassTypeId()
virtual void getTypeId() const
SoEngine * getValue() const
SoEngine * operator =(SoEngine * newValue)
void setValue(SoEngine * newValue)
int operator ==(const SoSFEngine &f) const
int operator !=(const SoSFEngine &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
like okay, that's a LOT of inherited methods but every single one is in there, no cap. π
π DESCRIPTION π
So this field keeps a pointer to an SoEngine instance, and β this is the important part β it keeps that engine's reference count correct while it does it. Responsible queen behavior fr fr. π«Ά
When you write an SoSFEngine out to a file, what gets written is the engine it's pointing at. Obsessed. Example:
mySoSFEngineField ElapsedTime {}
That right there is an SoSFEngine field named mySoSFEngineField, and it points to an SoElapsedTime engine. Iconic.
And if that engine is already being used somewhere else? Then the regular DEF/USE instancing mechanism kicks in, like always:
anotherSoSFEngineField USE calculator
That's an SoSFEngine field pointing to a engine named calculator that was DEF'ed earlier in the scene. Reuse, recycle, slay. π
π METHODS π
static SoType getClassTypeId()virtual void getTypeId() const
Hands you the type β either for the class itself, or for one specific object of this class. Depends which one you call, bestie. β¨
SoEngine * getValue() const
Returns this field's value. That's it, that's the whole job. π
SoEngine * operator =(SoEngine * newValue)void setValue(SoEngine * newValue)
Sets this field to newValue. Both doors, same room. πͺ
int operator ==(const SoSFEngine &f) constint operator !=(const SoSFEngine &f) const
Returns TRUE if f is the same type as this field and has the same value as this field. Both things. No shortcuts. π
π₯ SEE ALSO π₯
SoField, SoSField, SoMFEngine, SoEngine
and that's the whole page, angel π this was SoSFEngine(3IV)() from the 3IV manual, footer and all β go forth and point at engines responsibly. π¦β¨
π¦ where this page comes from
- debian bookworm: inventor-doc 2.1.5-10+dfsg-2 Β· LGPL-2.0-or-later
- debian trixie: inventor-doc 2.1.6+ds-2 Β· LGPL-2.0-or-later
- ubuntu jammy: inventor-doc 2.1.5-10-24
- ubuntu noble: inventor-doc 2.1.5-10+dfsg-2.1build2 Β· LGPL-2.0-or-later
- ubuntu questing: inventor-doc 2.1.6+ds-2
- ubuntu resolute: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- ubuntu stonking: inventor-doc 2.1.6.1+ds-1 Β· LGPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms