---
name: "SoLinearProfile"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoLinearProfile/3iv"
---

# SoLinearProfile(3iv)

Piecewise-linear profile curve

## NAME

SoLinearProfile — Piecewise-linear profile curve

## INHERITS FROM

SoBase \> SoFieldContainer \> SoNode \> SoProfile \> SoLinearProfile

## 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**

## DESCRIPTION

**This node specifies a piecewise-linear curve that is used as a profile for either a trimming patch of a Nurbs surface or for the bevel of SoText3**. The **index** field indexes into the current profile coordinates (specified in an **SoProfileCoordinate2** or **SoProfileCoordinate3** node). If the last value of the **index** field is **SO\_LINEAR\_PROFILE\_USE\_REST\_OF\_VERTICES** (-1), all remaining coordinates in the current coordinates will be used, starting with the coordinate after the previous index (all coordinates will be used if **SO\_LINEAR\_PROFILE\_USE\_REST\_OF\_VERTICES** is the only value in the **index** field). 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\]**.

## METHODS

	**SoLinearProfile()**\
 Creates a linear profile node with default settings.

**static SoType**	**getClassTypeId()**\
 Returns type identifier for this class.

## ACTION BEHAVIOR

**SoGLRenderAction, SoRayPickAction, SoCallbackAction**\
 Adds a profile to the current state.

## FILE FORMAT/DEFAULTS

```
LinearProfile {
index	0
linkage	START_FIRST
}
```

## SEE ALSO

**SoNurbsProfile, SoProfileCoordinate2, SoProfileCoordinate3**
