SoProfile(3IV)

NAME
SoProfile — abstract base class for all profile nodes

INHERITS FROM
SoBase > SoFieldContainer > SoNode > SoProfile

SYNOPSIS
#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
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.

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