---
name: "SoInterpolate"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SoInterpolate"
---

# SoInterpolate(3)

The SoInterpolate class is the base class for all interpolator engines.

## NAME

SoInterpolate - The **SoInterpolate** class is the base class for all interpolator engines.

## SYNOPSIS

\#include \<Inventor/engines/SoInterpolate.h\>

Inherits **SoEngine**.

Inherited by **SoInterpolateFloat**, **SoInterpolateRotation**, **SoInterpolateVec2f**, **SoInterpolateVec3f**, and **SoInterpolateVec4f**.

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 virtual const **SoFieldData** \* **getFieldData** (void) const\
 virtual const **SoEngineOutputData** \* **getOutputData** (void) const\

Public Member Functions inherited from **SoEngine** void **evaluateWrapper** (void)\
 virtual int **getOutputs** (**SoEngineOutputList** &l) const\
 **SoEngineOutput** \* **getOutput** (const **SbName** &outputname) const\
 SbBool **getOutputName** (const **SoEngineOutput** \*output, **SbName** &outputname) const\
 SbBool **isNotifying** (void) const\
 virtual void **notify** (**SoNotList** \*nl)\
 **SoEngine** \* **copy** (void) const\
 virtual **SoFieldContainer** \* **copyThroughConnection** (void) const\
 SbBool **shouldCopy** (void) const\
 virtual void **writeInstance** (**SoOutput** \*out)\

Public Member Functions inherited from **SoFieldContainer** void **setToDefaults** (void)\
 SbBool **hasDefaultValues** (void) const\
 SbBool **fieldsAreEqual** (const **SoFieldContainer** \*container) const\
 void **copyFieldValues** (const **SoFieldContainer** \*container, SbBool copyconnections=FALSE)\
 SbBool **set** (const char \*const fielddata)\
 void **get** (**SbString** &fielddata)\
 virtual int **getFields** (**SoFieldList** &l) const\
 virtual int **getAllFields** (**SoFieldList** &l) const\
 virtual **SoField** \* **getField** (const **SbName** &name) const\
 virtual **SoField** \* **getEventIn** (const **SbName** &name) const\
 virtual **SoField** \* **getEventOut** (const **SbName** &name) const\
 SbBool **getFieldName** (const **SoField** \*const field, **SbName** &name) const\
 SbBool **enableNotify** (const SbBool flag)\
 SbBool **isNotifyEnabled** (void) const\
 SbBool **set** (const char \*fielddata, **SoInput** \*input)\
 void **get** (**SbString** &fielddata, **SoOutput** \*out)\
 virtual SbBool **validateNewFieldValue** (**SoField** \*field, void \*newval)\
 virtual void **addWriteReference** (**SoOutput** \*out, SbBool isfromfield=FALSE)\
 SbBool **getIsBuiltIn** (void) const\
 virtual void **copyContents** (const **SoFieldContainer** \*from, SbBool copyconnections)\
 virtual void **getFieldsMemorySize** (size\_t &managed, size\_t &unmanaged) const\
 void **setUserData** (void \*userdata) const\
 void \* **getUserData** (void) const\

Public Member Functions inherited from **SoBase** void **ref** (void) const\
 void **unref** (void) const\
 void **unrefNoDelete** (void) const\
 int32\_t **getRefCount** (void) const\
 void **touch** (void)\
 SbBool **isOfType** (**SoType** type) const\
 Returns TRUE if the type of this object is either of the same type or inherited from *type*.  virtual **SbName** **getName** (void) const\
 virtual void **setName** (const **SbName** &newname)\
 virtual void **startNotify** (void)\
 void **addAuditor** (void \*const auditor, const **SoNotRec::Type** type)\
 void **removeAuditor** (void \*const auditor, const **SoNotRec::Type** type)\
 const **SoAuditorList** & **getAuditors** (void) const\
 SbBool **shouldWrite** (void)\
 void **assertAlive** (void) const\

### Static Public Member Functions

static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\
 Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.     static void **initClasses** (void)\

Static Public Member Functions inherited from **SoEngine** static void **initClass** (void)\
 Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.     static void **initClasses** (void)\
 static **SoType** **getClassTypeId** (void)\
 This static method returns the **SoType** object associated with objects of this class.     static **SoEngine** \* **getByName** (const **SbName** &name)\
 static int **getByName** (const **SbName** &name, **SoEngineList** &el)\

Static Public Member Functions inherited from **SoFieldContainer** static void **initClass** (void)\
 Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.     static **SoType** **getClassTypeId** (void)\
 This static method returns the **SoType** object associated with objects of this class.     static void **cleanupClass** (void)\
 static void **initCopyDict** (void)\
 static void **addCopy** (const **SoFieldContainer** \*orig, const **SoFieldContainer** \*copy)\
 static **SoFieldContainer** \* **checkCopy** (const **SoFieldContainer** \*orig)\
 static **SoFieldContainer** \* **findCopy** (const **SoFieldContainer** \*orig, const SbBool copyconnections)\
 static void **copyDone** (void)\

Static Public Member Functions inherited from **SoBase** static void **initClass** (void)\
 Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.  static **SoType** **getClassTypeId** (void)\
 This static method returns the **SoType** object associated with objects of this class.  static void **addName** (**SoBase** \*const base, const char \*const name)\
 static void **removeName** (**SoBase** \*const base, const char \*const name)\
 static void **incrementCurrentWriteCounter** (void)\
 static void **decrementCurrentWriteCounter** (void)\
 static **SoBase** \* **getNamedBase** (const **SbName** &name, **SoType** type)\
 static int **getNamedBases** (const **SbName** &name, **SoBaseList** &baselist, **SoType** type)\
 static SbBool **read** (**SoInput** \*input, **SoBase** \*&base, **SoType** expectedtype)\
 static void **setInstancePrefix** (const **SbString** &c)\
 static void **setTraceRefs** (SbBool trace)\
 static SbBool **getTraceRefs** (void)\
 static SbBool **connectRoute** (**SoInput** \*input, const **SbName** &fromnodename, const **SbName** &fromfieldname, const **SbName** &tonodename, const **SbName** &tofieldname)\
 static SbBool **readRoute** (**SoInput** \*input)\

### Public Attributes

**SoSFFloat** **alpha**\
 **SoEngineOutput** **output**\

### Protected Member Functions

**SoInterpolate** ()\
 virtual **~SoInterpolate** (void)\

Protected Member Functions inherited from **SoEngine** **SoEngine** (void)\
 virtual **~SoEngine** (void)\
 virtual void **evaluate** (void)=0\
 virtual SbBool **readInstance** (**SoInput** \*in, unsigned short flags)\
 virtual void **inputChanged** (**SoField** \*which)\
 void **writeOutputTypes** (**SoOutput** \*out)\

Protected Member Functions inherited from **SoFieldContainer** **SoFieldContainer** (void)\
 virtual **~SoFieldContainer** ()\

Protected Member Functions inherited from **SoBase** **SoBase** (void)\
 virtual **~SoBase** ()\
 SbBool **hasMultipleWriteRefs** (void) const\
 SbBool **writeHeader** (**SoOutput** \*out, SbBool isgroup, SbBool isengine) const\
 void **writeFooter** (**SoOutput** \*out) const\
 virtual const char \* **getFileFormatName** (void) const\
 virtual **SoNotRec** **createNotRec** (void)\

### Static Protected Member Functions

static const **SoFieldData** \*\* **getInputDataPtr** (void)\
 static const **SoEngineOutputData** \*\* **getOutputDataPtr** (void)\

Static Protected Member Functions inherited from **SoEngine** static const **SoFieldData** \*\* **getInputDataPtr** (void)\
 static const **SoEngineOutputData** \*\* **getOutputDataPtr** (void)\

Static Protected Member Functions inherited from **SoBase** static uint32\_t **getCurrentWriteCounter** (void)\
 static void **staticDataLock** (void)\
 static void **staticDataUnlock** (void)\

### Additional Inherited Members

Protected Types inherited from **SoBase** enum **BaseFlags** { **IS\_ENGINE** = 0x01, **IS\_GROUP** = 0x02 }\

Protected Attributes inherited from **SoFieldContainer** SbBool **isBuiltIn**\

## Detailed Description

The **SoInterpolate** class is the base class for all interpolator engines.

Interpolators are used to linearly interpolate between two values.

In Coin, we've chosen to implement all interpolators in separate files. If you want to be OIV compatible when programming, you should include the **SoInterpolate.h**, and not the interpolator file(s) you need.

## Constructor & Destructor Documentation

### SoInterpolate::SoInterpolate (void ) \[protected\]

Default constructor.

### SoInterpolate::~SoInterpolate (void ) \[protected\], \[virtual\]

Destructor.

## Member Function Documentation

### SoType SoInterpolate::getClassTypeId (void ) \[static\]

This static method returns the **SoType** object associated with objects of this class.

### SoType SoInterpolate::getTypeId (void ) const \[virtual\]

Returns the type identification of an object derived from a class inheriting **SoBase**. This is used for runtime type checking and "downward" casting.

Implements **SoBase**.

Reimplemented in **SoInterpolateFloat**, **SoInterpolateRotation**, **SoInterpolateVec2f**, **SoInterpolateVec3f**, and **SoInterpolateVec4f**.

### const SoFieldData \*\* SoInterpolate::getInputDataPtr (void ) \[static\], \[protected\]

Returns the **SoFieldData** class which holds information about inputs in this engine.

### const SoEngineOutputData \*\* SoInterpolate::getOutputDataPtr (void ) \[static\], \[protected\]

Returns the **SoEngineOutputData** class which holds information about the outputs in this engine.

### const SoFieldData \* SoInterpolate::getFieldData (void ) const \[virtual\]

Returns the **SoFieldData** class which holds information about inputs in this engine.

Reimplemented from **SoFieldContainer**.

Reimplemented in **SoInterpolateFloat**, **SoInterpolateRotation**, **SoInterpolateVec2f**, **SoInterpolateVec3f**, and **SoInterpolateVec4f**.

### const SoEngineOutputData \* SoInterpolate::getOutputData (void ) const \[virtual\]

Returns the **SoEngineOutputData** class which holds information about the outputs in this engine.

Implements **SoEngine**.

Reimplemented in **SoInterpolateFloat**, **SoInterpolateRotation**, **SoInterpolateVec2f**, **SoInterpolateVec3f**, and **SoInterpolateVec4f**.

### void SoInterpolate::initClasses (void ) \[static\]

This method is provided only for API compatibility, and does nothing in Coin.

## Member Data Documentation

### SoSFFloat SoInterpolate::alpha

The value which says how much we've should interpolate from first value to second value. A value equal to 0 will give an output equal to the first value, alpha equal to 1 gives the second value, any value in between gives a "weighted" interpolation between the two values.

### SoEngineOutput SoInterpolate::output

Interpolated values from the input fields. The type of the output will of course be the same as the type of the input fields of each non-abstract subclass inheriting **SoInterpolate**.

## Author

Generated automatically by Doxygen for Coin from the source code.
