Scroll to navigation

SoProfile(3IV)() SoProfile(3IV)()


SoProfile — abstract base class for all profile nodes


SoBase > SoFieldContainer > SoNode > SoProfile


#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


This node is the abstract base class for all profile nodes, which define 2D curves. A profile is not itself geometry, but is used to change or delimit the geometry of something else. For an SoText3 node, the profile determines 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.

The current profile state can consist of one or more profiles, each of which 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.

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 that when appending profile B to the end of profile A, B must begin at the same 2D point at which A ends.


SoMFInt32 index

Indices into profile coordinates.

SoSFEnum linkage

Specifies connectivity of profile curve with respect to profiles in current list in state.


static SoType getClassTypeId()

Returns type identifier for this class.


SoGLRenderAction, SoCallbackAction, SoGetBoundingBoxAction, SoRayPickAction

Adds profile to current traversal state.


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


SoLinearProfile, SoNurbsProfile, SoNurbsSurface, SoProfileCoordinate2, SoProfileCoordinate3, SoText3