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

# SoInterpolateRotation(3iv)

interpolates rotation values

## NAME

SoInterpolateRotation — interpolates rotation values

## INHERITS FROM

SoBase \> SoFieldContainer \> SoEngine \> SoInterpolate \> SoInterpolateRotation

## SYNOPSIS

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

Inputs from class SoInterpolateRotation:

**SoMFRotation**	**input0**\
 **SoMFRotation**	**input1**

Inputs from class SoInterpolate:

**SoSFFloat**	**alpha**

Outputs from class SoInterpolate:

**(SoMFRotation)**	**output**

Methods from class SoInterpolateRotation:

	**SoInterpolateRotation()**

Methods from class SoEngine:

**static SoType**	**getClassTypeId()**\
 **virtual int**	**getOutputs(SoEngineOutputList &list) const**\
 **SoEngineOutput \***	**getOutput(const SbName &outputName) const**\
 **SbBool**	**getOutputName(const SoEngineOutput \*output, SbName &outputName) const**\
 **SoEngine \***	**copy() const**\
 **static SoEngine \***	**getByName(const SbName &name)**\
 **static int**	**getByName(const SbName &name, SoEngineList &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 engine linearly interpolates between two rotation values, based on the alpha** input value. The **alpha** value should be between 0.0 and 1.0.

The input fields can have multiple rotations, allowing the engine to interpolate several objects in parallel. One of the inputs may have more values than the other. In that case, the last value of the shorter input will be repeated as necessary.

## INPUTS

**SoMFRotation**	**input0**\
 **SoMFRotation**	**input1**\
 The engine linearly interpolates from **input0** to **input1**.

## METHODS

	**SoInterpolateRotation()**\
 Constructor.

## FILE FORMAT/DEFAULTS

```
InterpolateRotation {
alpha	0
input0	0 0 1  0
input1	0 0 1  0
}
```

## SEE ALSO

**SoEngineOutput, SoInterpolateFloat, SoInterpolateVec2f, SoInterpolateVec3f, SoInterpolateVec4f**
