SOTRANSFORMSEPARATOR(3iv)
π SoTransformSeparator π
okay bestie, gather round, because we're talking about SoTransformSeparator from the Open Inventor crew β that's the (3IV) manual, section 3, Inventor library, iykyk β¨
β¨ NAME β¨
SoTransformSeparator β a group node that saves and restores transformation state. that's the whole job. it's giving "hold my transform, I'll be right back" π
πΈ INHERITS FROM πΈ
so the family tree is, like, a whole lineage:
SoBase > SoFieldContainer > SoNode > SoGroup > SoTransformSeparator
every one of those ancestors' methods comes along for the ride. iconic inheritance behaviour, no cap π
π¦ SYNOPSIS π¦
first things first, you gotta include the header, or nothing works, fr fr:
#include <Inventor/nodes/SoTransformSeparator.h>
Methods from class SoTransformSeparator:
SoTransformSeparator()
SoTransformSeparator(int nChildren)
static SoType getClassTypeId()
Methods from class SoGroup:
void addChild(SoNode *child)
void insertChild(SoNode *child, int newChildIndex)
SoNode * getChild(int index) const
int findChild(const SoNode *child) const
int getNumChildren() const
void removeChild(int index)
void removeChild(SoNode *child)
void removeAllChildren()
void replaceChild(int index, SoNode *newChild)
void replaceChild(SoNode *oldChild, SoNode *newChild)
Methods from class SoNode:
void setOverride(SbBool state)
SbBool isOverride() const
SoNode * copy(SbBool copyConnections = FALSE) const
virtual SbBool affectsState() const
static SoNode * getByName(const SbName &name)
static int getByName(const SbName &name, SoNodeList &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 π
okay so, SoTransformSeparator is lowkey the cousin of SoSeparator. they both do the same cute lil thing: save the state before they walk through their children, then restore it after. π«Ά
but here's the plot twist β and it's a big one β it saves ONLY the current transformation. everything else? left exactly as is. untouched. minding its own business. π
so why would you even want that? bestie, let me tell you:
- it's perfect for positioning a camera π₯ β because the transformations you apply to the camera will not bleed into the rest of the scene, even though the camera is very much still viewing that scene. main character camera energy, honestly.
- it also works great for isolating transformations to light sources π‘ or other objects π so your light's little transform glow-up doesn't wreck the vibe of everything around it.
basically: it's the "what happens in this subtree, stays in this subtree" node. but only for transforms. periodt. β¨
π METHODS π
SoTransformSeparator()β creates a transform separator node with all the default settings, fresh out the box, no notes. π§SoTransformSeparator(int nChildren)β constructor that takes the approximate number of children. it's a lil hint, not a promise, bestie.static SoType getClassTypeId()β returns the type identifier for this class. the ID card. the passport. the vibe check. π
π₯ ACTION BEHAVIOR π₯
these actions all roll up and do the exact same thing: save the current transformation state, traverse every child, then restore the previous transformation state. in and out, clean, no residue. π
SoGLRenderActionSoCallbackActionSoGetBoundingBoxActionSoGetMatrixActionSoRayPickAction
β FILE FORMAT/DEFAULTS β
look at this. look how empty it is. a whole node with zero fields, just vibing:
TransformSeparator {
}
minimalist queen behaviour honestly π
π SEE ALSO π
go read these next, bestie, they're the friends in the group chat:
SoResetTransformSoTransformation
k so that's the whole page!! every option, every method, every signature, all of it, preserved with love π don't @ me if you skim it and then forget the camera thing, that's literally the best part.
SoTransformSeparator(3IV) β that's the manual name and the section, and the page footer's source/version line just repeats it, so consider this your cute lil sign-off: section 3IV, Open Inventor, same title, same date slot, zero changes to the facts πβ¨ bye bestie, go transform something (but only inside the separator!!) π¦
π¦ 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