SOPROFILE(3iv)

✨ NAME ✨

hey bestie, welcome to the SoProfile(3IV) page πŸ’… this is the abstract base class for all profile nodes β€” no cap.


🌸 INHERITS FROM 🌸

  • SoBase > SoFieldContainer > SoNode > SoProfile

πŸŽ€ SYNOPSIS πŸŽ€

okay so here's the whole synopsis, copied exactly because we do not mess with code in this house:

       #include <Inventor/nodes/SoProfile.h>

     enum Profile {
          SoProfile::START_FIRST     Start a new profile and remove any
                                          existing profiles from the current
                                          list
          SoProfile::START_NEW       Start a new profile and add it to the
                                          current list
          SoProfile::ADD_TO_CURRENT  Add to end of the last profile in the
                                          current list
     }

          Fields from class SoProfile:

     SoMFInt32           index
     SoSFEnum            linkage

          Methods from class SoProfile:

     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

πŸ’– DESCRIPTION πŸ’–

so basically, this node is the abstract base class for all profile nodes, and profile nodes are the ones that define 2D curves. A profile is not itself geometry β€” it's the little helper that changes or delimits the geometry of something else. For an SoText3 node, the profile decides the cross-section of the side of each text character. For an SoNurbsSurface node, the profile is used to specify trim curves for the surface. it's giving backstage crew, not main character geometry, but the show literally cannot go on without it πŸ’…

The current profile state can be one or more profiles, and each profile can be made up of one or more instances of SoProfile subclass nodes. Each profile node specifies β€” in the index field β€” a set of indices that refer to the current set of profile coordinates, specified using either an SoProfileCoordinate2 or an SoProfileCoordinate3 node. No profile curve should intersect itself or another profile curve. that's the rule, bestie.

Profiles are part of the state, just like all other properties. The state contains a current list of profiles. Depending on the linkage field, a profile can:

  • clear the list and begin a new profile,
  • begin a new profile at the end of those already in the list,
  • or append to the last profile in the current list.
note: when appending profile B to the end of profile A, B must begin at the same 2D point at which A ends. no gaps, no glow-up, same point periodt.

🌈 FIELDS 🌈

  • SoMFInt32 index β€” indices into profile coordinates. 🎯
  • SoSFEnum linkage β€” specifies connectivity of profile curve with respect to profiles in current list in state. πŸ”—

✨ METHODS ✨

  • static SoType getClassTypeId() β€” returns type identifier for this class. πŸ’–

πŸ¦‹ ACTION BEHAVIOR πŸ¦‹

  • SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction β€” adds profile to current traversal state. ✨

πŸŽ€ FILE FORMAT/DEFAULTS πŸŽ€

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


πŸ’œ SEE ALSO πŸ’œ

  • SoLinearProfile
  • SoNurbsProfile
  • SoNurbsSurface
  • SoProfileCoordinate2
  • SoProfileCoordinate3
  • SoText3

signing off from the SoProfile(3IV)() manual β€” source/version: SoProfile(3IV), date: the footer's date slot is empty, so no date listed. xoxo, stay iconic πŸ’–βœ¨