SOENGINE(3iv)

πŸ’– SoEngine πŸ’–

okay bestie, gather round, because today we're talking about SoEngine β€” the base class for ALL engines. yeah. the mother of them all. the blueprint. the blueprint that ate. πŸ‘‘

It lives in manual page SoEngine(3IV) btw, so if you ever forget where you read this masterpiece, that's the one. πŸ’…


🌸 NAME 🌸

SoEngine β€” base class for all engines


🧬 INHERITS FROM 🧬

SoBase > SoFieldContainer > SoEngine

the family tree is giving legacy and honestly? iconic lineage. πŸ‘‘


✨ SYNOPSIS ✨

#include <Inventor/engines/SoEngine.h>

okay so here's the whole lineup of methods you get, sorted by which ancestor they came from, no cap:

Methods from class SoEngine:

static SoType       getClassTypeId()
virtual int         getOutputs(SoEngineOutputList &list) const
SoEngineOutput *    getOutput(const SbName &outputName) const
SbBool              getOutputName(const SoEngineOutput *output, SbName
                         &outputName) const
SoEngine *          copy() const
static SoEngine *   getByName(const SbName &name)
static int          getByName(const SbName &name, SoEngineList &list)

Methods from class SoFieldContainer:

void                setToDefaults()
SbBool              hasDefaultValues() const
SbBool              fieldsAreEqual(const SoFieldContainer *fc) const
void                copyFieldValues(const SoFieldContainer *fc, SbBool
                         copyConnections = FALSE)
SbBool              set(const char *fieldDataString)
void                get(SbString &fieldDataString)
virtual int         getFields(SoFieldList &resultList) const
virtual SoField *   getField(const SbName &fieldName) const
SbBool              getFieldName(const SoField *field, SbName &fieldName)
                         const
SbBool              isNotifyEnabled() const
SbBool              enableNotify(SbBool flag)

Methods from class SoBase:

void                ref()
void                unref() const
void                unrefNoDelete() const
void                touch()
virtual SoType      getTypeId() const
SbBool              isOfType(SoType type) const
virtual void        setName(const SbName &name)
virtual SbName      getName() const

πŸ¦‹ DESCRIPTION πŸ¦‹

so SoEngine is the abstract base class for all engines. and what are engines, you ask? they're objects used for animation and behavior. they're these cute little lightweight objects that get connected between nodes, the clock, and other engines so you can build interesting behaviorial objects β€” like, say, a spinning windmill 🌈🌬️ periodt.

Engines animate parts of a scene and/or constrain one part of a scene in relation to some other part of the scene. the vibe is: an engine receives a bunch of input values, does some operation on them, and then copies the results into one or more output fields. and get this β€” both the inputs and the outputs can be connected to other fields or engines in the scene graph. so when an engine's output values change, those new values get sent straight to any fields or engines connected to them. it's giving group chat but make it scene graph. πŸ“²βœ¨


πŸŽ€ METHODS πŸŽ€

  • static SoType getClassTypeId() β€” returns the type identifier for the SoEngine class. your lil name tag. 🏷️
  • virtual int getOutputs(SoEngineOutputList &list) const β€” returns a list of outputs in this engine. use getOutputName to get the names of the outputs, and use SoEngineOutput::getConnectionType to determine their types. iykyk. πŸ‘€
  • SoEngineOutput * getOutput(const SbName &outputName) const β€” returns a pointer to the engine output with the given name. if no such output exists, NULL is returned. no output, no pointer, sad but true. 😭
  • SbBool getOutputName(const SoEngineOutput *output, SbName &outputName) const β€” returns (in outputName) the name of the engine output (output). returns FALSE if the engine output is not contained within the engine instance. like, not my engine, not my output. πŸ™ˆ
  • SoEngine * copy() const β€” creates and returns an exact copy of the engine. all connections to inputs are copied as is (without copying what's at the other end). so it's a twin, not a whole clone of the friend group. πŸ‘―
  • static SoEngine * getByName(const SbName &name)
  • static int getByName(const SbName &name, SoEngineList &list) β€” look up engine(s) by name. find your engine bestie by name, fr fr. πŸ”

πŸ“ FILE FORMAT/DEFAULTS πŸ“

This is an abstract class. See the reference page of a derived class for the format and default values.

translation: nothing to see here, bestie, the actual tea lives in the derived classes. this one's just the blueprint. πŸ’…

πŸ‘€ SEE ALSO πŸ‘€

SoBoolOperation, SoCalculator, SoComposeMatrix, SoComposeRotation, SoComposeRotationFromTo, SoComposeVec2f, SoComposeVec3f, SoComposeVec4f, SoComputeBoundingBox, SoConcatenate, SoCounter, SoDecomposeMatrix, SoDecomposeRotation, SoDecomposeVec2f, SoDecomposeVec3f, SoDecomposeVec4f, SoElapsedTime, SoGate, SoInterpolate, SoOnOff, SoOneShot, SoSelectOne, SoTimeCounter, SoTransformVec3f, SoTriggerAny


and that's the whole page, bestie 🫢 this was SoEngine(3IV) β€” and yeah, the source/version and date slots on this one are literally empty parens (), so consider this the cutest blank signature you've ever seen. slay, stay connected, and don't forget to unref() responsibly. βœ¨πŸŽ€πŸ’–