SOLINEARPROFILE(3iv)

πŸ’– SoLinearProfile β€” the piecewise-linear profile curve, bestie πŸ’–

okay so this is the SoLinearProfile(3IV) manual page, and I'm gonna walk you through it like we're texting at 2am, except every single detail stays exactly where it is. no cap. 🫢


✨ NAME ✨

SoLinearProfile β€” piecewise-linear profile curve. it's giving curve, but make it linear segments. πŸ’…


🌸 INHERITS FROM 🌸

SoBase > SoFieldContainer > SoNode > SoProfile > SoLinearProfile

the whole ancestry line, untouched. SoLinearProfile is the baby of this family tree. πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

#include <Inventor/nodes/SoLinearProfile.h>

   Fields from class SoProfile:

SoMFInt32           index
SoSFEnum            linkage

   Methods from class SoLinearProfile:

                      SoLinearProfile()
static SoType       getClassTypeId()

   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

every method, every signature, every default arg. not one thing skipped, periodt. πŸ‘‘


πŸ’œ DESCRIPTION πŸ’œ

so bestie, this node specifies a piecewise-linear curve that gets used as a profile for either a trimming patch of a Nurbs surface or for the bevel of SoText3. two jobs, one iconic node. πŸ’…

the index field indexes into the current profile coordinates β€” and those coordinates are specified in an SoProfileCoordinate2 or SoProfileCoordinate3 node. iykyk. πŸ¦‹

now here's the juicy part πŸ‘€ β€” if the last value of the index field is SO_LINEAR_PROFILE_USE_REST_OF_VERTICES (-1), then all remaining coordinates in the current coordinates will be used, starting with the coordinate after the previous index. and if SO_LINEAR_PROFILE_USE_REST_OF_VERTICES is the only value in the index field, then literally all coordinates get used. no cap.

for example: if index contains the values [2,0,-1] and there are 4 profile coordinates (0-3), it is as if the index field contains [2,0,1,2,3].

see how that worked?? ate that. ✨


⭐ METHODS ⭐

  • SoLinearProfile() β€” creates a linear profile node with default settings. brand new baby node, fresh out the box. πŸŽ€
  • static SoType getClassTypeId() β€” returns the type identifier for this class. it's giving "who am i" but make it a SoType. πŸ’–

🌈 ACTION BEHAVIOR 🌈

SoGLRenderAction, SoRayPickAction, SoCallbackAction β€” all three of them. they adds a profile to the current state. main character actions only. πŸ‘‘


πŸ“ FILE FORMAT/DEFAULTS πŸ“

LinearProfile {
   index    0
   linkage  START_FIRST
}

those are the defaults, exactly as written. don't come for me. πŸ’€


🧚 SEE ALSO 🧚

SoNurbsProfile, SoProfileCoordinate2, SoProfileCoordinate3

go read those next, bestie, they're the friend group. 🫢


and that's the whole page!! this was SoLinearProfile(3IV), version 3IV, and yeah the date slot is empty but we still showed up and served πŸ’…βœ¨ mwah, love u, go build something cute with profiles πŸŽ€πŸ¦‹πŸ’–