SoShuttle(3)
π NAME π
SoShuttle β okay so bestie, this class is the one that oscillates between two translations. Two spots, back and forth, forever, like your fave pendulum but make it 3D. That's it, that's the whole vibe. β¨
This is SoShuttle(3), from the Coin manual. Buckle up, it's a long one β we're doing part 1 today. π
π SYNOPSIS π
#include <Inventor/nodes/SoShuttle.h>
Inherits SoTranslation. Yes she has a whole ancestry, we'll get into it. π
πΈ Public Member Functions πΈ
π¦ SoShuttle's own, the main characters
virtual SoType getTypeId (void) constβ the standard "what even am I" type-id call, virtual edition.SoShuttle (void)β the constructor, aka the birth of your shuttle. π«Άvirtual void write (SoWriteAction *action)β writes the node out via the given action.
π Public Member Functions inherited from SoTranslation
SoTranslation (void)β constructor.virtual void doAction (SoAction *action)β no cap, it just does the action.virtual void callback (SoCallbackAction *action)β routes a callback action through.virtual void GLRender (SoGLRenderAction *action)β the render pass, iconic.virtual void getBoundingBox (SoGetBoundingBoxAction *action)β fills in the bounding box.virtual void getMatrix (SoGetMatrixAction *action)β hands over the matrix.virtual void pick (SoPickAction *action)β picking, for when you click on stuff.virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action)β counts primitives, lowkey a nerd but we love her.
π§ Public Member Functions inherited from SoNode
void setOverride (const SbBool state)β flip override mode on/off.SbBool isOverride (void) constβ are we overriding? yes or no.void setNodeType (const NodeType type)β set the node type.NodeType getNodeType (void) constβ get the node type.virtual SbBool affectsState (void) constβ does this node mess with the state?virtual void GLRenderBelowPath (SoGLRenderAction *action)β render below path, the sequel.virtual void GLRenderInPath (SoGLRenderAction *action)β render in path.virtual void GLRenderOffPath (SoGLRenderAction *action)β render off path, the third one, she's consistent.virtual void handleEvent (SoHandleEventAction *action)β events get handled here.virtual void rayPick (SoRayPickAction *action)β ray picking, the fancy kind of picking.virtual void search (SoSearchAction *action)β search action goes brrr.virtual void audioRender (SoAudioRenderAction *action)β yes there's audio, she does it all.virtual void grabEventsSetup (void)β set up event grabbing.virtual void grabEventsCleanup (void)β and clean it up after.virtual void startNotify (void)β kicks off notification.virtual void notify (SoNotList *l)β the notification itself, with the list.SbUniqueId getNodeId (void) constβ every node has a unique id, her little passport. πͺͺvirtual SoChildList * getChildren (void) constβ get the kids (children list).virtual void writeInstance (SoOutput *out)β write this instance out.virtual SoNode * addToCopyDict (void) constβ adds itself to the copy dictionary.virtual void copyContents (const SoFieldContainer *from, SbBool copyconnections)β copies the contents over.virtual SoFieldContainer * copyThroughConnection (void) constβ copy through a connection, returns the container.
π«Ά Public Member Functions inherited from SoFieldContainer
void setToDefaults (void)β reset everything to defaults, a clean slate moment.SbBool hasDefaultValues (void) constβ still on defaults? check.SbBool fieldsAreEqual (const SoFieldContainer *container) constβ are the fields equal to that other container's?void copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE)β copy field values, withcopyconnectionsdefaulting toFALSE.SbBool set (const char *const fielddata)β set from a field-data string.void get (SbString &fielddata)β get the field data as a string.virtual int getFields (SoFieldList &l) constβ grab the fields into a list.virtual int getAllFields (SoFieldList &l) constβ grab all the fields, no filter.virtual SoField * getField (const SbName &name) constβ find a field by name.virtual SoField * getEventIn (const SbName &name) constβ get an event-in by name.virtual SoField * getEventOut (const SbName &name) constβ get an event-out by name.SbBool getFieldName (const SoField *const field, SbName &name) constβ reverse lookup, field to name.SbBool enableNotify (const SbBool flag)β turn notifications on or off.SbBool isNotifyEnabled (void) constβ are notifications on?SbBool set (const char *fielddata, SoInput *input)β the set variant that takes an input too.void get (SbString &fielddata, SoOutput *out)β the get variant that takes an output too.virtual SbBool validateNewFieldValue (SoField *field, void *newval)β validate a new field value before it lands.virtual void addWriteReference (SoOutput *out, SbBool isfromfield=FALSE)β add a write reference,isfromfielddefaults toFALSE.SbBool getIsBuiltIn (void) constβ is it built in?virtual void getFieldsMemorySize (size_t &managed, size_t &unmanaged) constβ reports the memory sizes of fields, split into managed and unmanaged.void setUserData (void *userdata) constβ attach your own user data pointer.void * getUserData (void) constβ and get it back.
π Public Member Functions inherited from SoBase
void ref (void) constβ bump the ref count.void unref (void) constβ drop the ref count.void unrefNoDelete (void) constβ drop the ref count but don't delete. sneaky but valid.int32_t getRefCount (void) constβ how many refs we got?void touch (void)β touch it so everything downstream knows something changed.SbBool isOfType (SoType type) constβ returnsTRUEif the type of this object is either of the same type or inherited from type.virtual SbName getName (void) constβ get the name.virtual void setName (const SbName &newname)β set a new name.void addAuditor (void *const auditor, const SoNotRec::Type type)β add an auditor of the given type.void removeAuditor (void *const auditor, const SoNotRec::Type type)β remove that auditor.const SoAuditorList & getAuditors (void) constβ get the whole auditor list.SbBool shouldWrite (void)β should this be written?void assertAlive (void) constβ assert that the object is still alive. π (dramatic but useful)
β Static Public Member Functions β
β¨ SoShuttle's own
static SoType getClassTypeId (void)β the class-level type id.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 Public Member Functions inherited from SoTranslation
static SoType getClassTypeId (void)β class type id, inherited edition.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 Public Member Functions inherited from SoTransformation
static SoType getClassTypeId (void)β class type id, yes again, it's a family trait.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 Public Member Functions inherited from SoNode
static uint32_t getCompatibilityTypes (const SoType &nodetype)β get the compatibility type bitmask for a node type.static SoType getClassTypeId (void)β class type id.static SoNode * getByName (const SbName &name)β find a node by name.static int getByName (const SbName &name, SoNodeList &l)β find by name and stuff the results into a list.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 void initClasses (void)β plural, init all the classes.static SbUniqueId getNextNodeId (void)β grab the next unique node id.static int getActionMethodIndex (const SoType type)β the action method index for a type.static void getBoundingBoxS (SoAction *action, SoNode *node)β static bounding box helper.static void GLRenderS (SoAction *action, SoNode *node)β static render helper.static void callbackS (SoAction *action, SoNode *node)β static callback helper.static void getMatrixS (SoAction *action, SoNode *node)β static matrix helper.static void handleEventS (SoAction *action, SoNode *node)β static event helper.static void pickS (SoAction *action, SoNode *node)β static pick helper.static void rayPickS (SoAction *action, SoNode *node)β static ray pick helper.static void searchS (SoAction *action, SoNode *node)β static search helper.static void writeS (SoAction *action, SoNode *node)β static write helper.static void audioRenderS (SoAction *action, SoNode *node)β static audio render helper.static void getPrimitiveCountS (SoAction *action, SoNode *node)β static primitive count helper. that's the whole set bestie, she's thorough. π
π«Ά Static Public Member Functions inherited from SoFieldContainer
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 void cleanupClass (void)β clean up after the class.static void initCopyDict (void)β initialize the copy dictionary.static void addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy)β register an original/copy pair.static SoFieldContainer * checkCopy (const SoFieldContainer *orig)β check for the copy of an original.static SoFieldContainer * findCopy (const SoFieldContainer *orig, const SbBool copyconnections)β find a copy, with acopyconnectionsflag.static void copyDone (void)β copying's done, wrap it up. π¬
π Static Public Member Functions inherited from SoBase
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 void addName (SoBase *const base, const char *const name)β give a base object a name.static void removeName (SoBase *const base, const char *const name)β take that name away.static void incrementCurrentWriteCounter (void)β bump the current write counter.static void decrementCurrentWriteCounter (void)β drop the current write counter.static SoBase * getNamedBase (const SbName &name, SoType type)β fetch a named base of a given type.static int getNamedBases (const SbName &name, SoBaseList &baselist, SoType type)β fetch all matching named bases into a list.static SbBool read (SoInput *input, SoBase *&base, SoType expectedtype)β read a base from input.static void setInstancePrefix (const SbString &c)β set the instance prefix string.static void setTraceRefs (SbBool trace)β toggle ref tracing.static SbBool getTraceRefs (void)β is ref tracing on?static SbBool connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname)β wire up a route between a from node/field and a to node/field.static SbBool readRoute (SoInput *input)β read a route in from input.
π Public Attributes π
SoSFVec3f translation0β first translation stop. π °οΈSoSFVec3f translation1β second translation stop. π ±οΈSoSFFloat speedβ how fast she shuttles.SoSFBool onβ the on/off switch, the main character toggle.
π Public Attributes inherited from SoTranslation
SoSFVec3f translationβ the plain old translation field, inherited.
π‘οΈ Protected Member Functions π‘οΈ
π¦ SoShuttle's own
virtual const SoFieldData * getFieldData (void) constβ get the field data.virtual ~SoShuttle ()β the destructor. rest in peace queen. π
π Protected Member Functions inherited from SoTranslation
virtual ~SoTranslation ()β destructor.
πΈ Protected Member Functions inherited from SoTransformation
SoTransformation (void)β constructor.virtual ~SoTransformation ()β destructor.
π§ Protected Member Functions inherited from SoNode
SoNode (void)β constructor.virtual ~SoNode ()β destructor.virtual SbBool readInstance (SoInput *in, unsigned short flags)β read an instance from input with flags.
π«Ά Protected Member Functions inherited from SoFieldContainer
SoFieldContainer (void)β constructor.virtual ~SoFieldContainer ()β destructor.
π Protected Member Functions inherited from SoBase
SoBase (void)β constructor.virtual ~SoBase ()β destructor.virtual void destroy (void)β destroy, the internal way.SbBool hasMultipleWriteRefs (void) constβ got multiple write refs?SbBool writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) constβ write the header, with group/engine flags.void writeFooter (SoOutput *out) constβ write the footer, matching the header obviously.virtual const char * getFileFormatName (void) constβ the file format name as a C string.virtual SoNotRec createNotRec (void)β create a notification record.
π Static Protected Member Functions π
β¨ SoShuttle's own
static const SoFieldData ** getFieldDataPtr (void)β the static pointer to the field data.
π Static Protected Member Functions inherited from SoTranslation
static const SoFieldData ** getFieldDataPtr (void)β static field data pointer.
πΈ Static Protected Member Functions inherited from SoTransformation
static const SoFieldData ** getFieldDataPtr (void)β static field data pointer.
π§ Static Protected Member Functions inherited from SoNode
static const SoFieldData ** getFieldDataPtr (void)β static field data pointer.static void setNextActionMethodIndex (int index)β set the next action method index.static int getNextActionMethodIndex (void)β get the next action method index.static void incNextActionMethodIndex (void)β increment the next action method index.static void setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask)β set compatibility types for a node type with a bitmask.
π Static Protected Member Functions inherited from SoBase
static uint32_t getCurrentWriteCounter (void)β get the current write counter.static void staticDataLock (void)β lock the static data.static void staticDataUnlock (void)β unlock it, we're done. π
π Additional Inherited Members π
π
Public Types inherited from SoNode
The NodeType enum, in all her glory:
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 }
π‘οΈ Protected Types inherited from SoBase
enum BaseFlags { IS_ENGINE = 0x01, IS_GROUP = 0x02 }
𧬠Protected Attributes inherited from SoNode
SbUniqueId uniqueIdβ her unique id, living as a protected attribute.
𧬠Protected Attributes inherited from SoFieldContainer
SbBool isBuiltInβ the built-in flag.
𧬠Static Protected Attributes inherited from SoNode
static SbUniqueId nextUniqueId = 1β the running counter, starts at1.static int nextActionMethodIndex = 0β starts at0.
okay bestie that's the whole SYNOPSIS, every single inherited member accounted for, not a crumb left behind. π this is only part 1 though β there's more of this page coming, so don't go anywhere. π
β¨ Detailed Description β¨
okay so the SoShuttle class is literally just here to oscillate between two translations. That's the whole vibe. Two spots, back and forth, forever. π¦
The glow-up between translation0 and translation1 is smooth because it's built on a cosine function β no jump cuts, no awkward transitions, just a gorgeous little curve. Here's the timeline bestie:
- At the very beginning of the cycle, we're at
translation0. - Halfway through the cycle, the resulting translation equals
translation1. - And at the end of the cycle? We're back at
translation0again. full circle, literally. π
π FILE FORMAT/DEFAULTS π
Shuttle {
translation 0 0 0
translation0 0 0 0
translation1 0 0 0
speed 1
on TRUE
}
π Constructor & Destructor Documentation π
πΈ SoShuttle::SoShuttle (void )
Constructor. She's born. π
πΈ SoShuttle::~SoShuttle () [protected], [virtual]
Destructor. She's gone. π (protected AND virtual, for the record β iykyk.)
π₯ Member Function Documentation π₯
β SoType SoShuttle::getClassTypeId (void ) [static]
This static method returns the SoType object associated with objects of this class. It's giving class identity, periodt. π
β SoType SoShuttle::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.
Reimplemented from SoTranslation.
β const SoFieldData ** SoShuttle::getFieldDataPtr (void ) [static], [protected]
ngl this API member is considered internal to the library, since it is not likely to be of interest to the application programmer. not your business bestie, no offense. π
Returns the SoFieldData class which holds information about fields in this node.
β const SoFieldData * SoShuttle::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 SoTranslation.
β void SoShuttle::write (SoWriteAction * action) [virtual]
Action method for SoWriteAction.
Writes out a node object, and any connected nodes, engines etc, if necessary. basically it spills the tea onto disk. βοΈ
Reimplemented from SoNode.
π Member Data Documentation π
SoSFVec3f SoShuttle::translation0β Translation at the start and end of the cycle. Default value is(0, 0, 0).SoSFVec3f SoShuttle::translation1β Translation at the middle of the cycle. Default value is(0, 0, 0).SoSFFloat SoShuttle::speedβ Number of cycles per second. Default value is1.SoSFBool SoShuttle::onβ Toggles animation on or off. Defaults toTRUE.
π Author π
Generated automatically by Doxygen for Coin from the source code. the robots wrote this one, not me. π€β¨
that's the whole page bestie, we ate and left no crumbs π this was Coin version 4.0.10, dated Thu Jun 25 2026 00:00:00, and you were reading SoShuttle(3). slay, go make something oscillate. π¦πΈπ
π¦ 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