---
name: "SoComposeRotation"
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/SoComposeRotation"
---

# SoComposeRotation(3)

The SoComposeRotation class is used to compose rotations from angle and axis.

## NAME

SoComposeRotation - The **SoComposeRotation** class is used to compose rotations from angle and axis.

## SYNOPSIS

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

Inherits **SoEngine**.

### 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 \* **createInstance** (void)\
 static void **initClass** ()\
 Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.

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

**SoMFVec3f** **axis**\
 **SoMFFloat** **angle**\
 **SoEngineOutput** **rotation**\

### 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 Member Functions inherited from **SoEngine** **SoEngine** (void)\
 virtual **~SoEngine** (void)\
 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)\

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

## Detailed Description

The **SoComposeRotation** class is used to compose rotations from angle and axis.

Simple usage example:

```
#Inventor V2.1 ascii
Separator {
   Transform {
      rotation =
      ComposeRotation { axis 0 1 0  angle =
         ElapsedTime { }.timeOut
      }.rotation
   }
   Cube { }
}
```

## Member Function Documentation

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

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

### SoType SoComposeRotation::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**.

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

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

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

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

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

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

Reimplemented from **SoFieldContainer**.

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

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

Implements **SoEngine**.

### void \* SoComposeRotation::createInstance (void ) \[static\]

Creates a new instance of the class type corresponding to the **SoType** object.

## Member Data Documentation

### SoMFVec3f SoComposeRotation::axis

Set of axis vectors for the output rotations. Default value is (0.0f, 0.0f, 1.0f).

### SoMFFloat SoComposeRotation::angle

Set of scalar rotation values for the output rotations. Default value is 0.0.

### SoEngineOutput SoComposeRotation::rotation

(**SoMFRotation**) Rotations generated from the angle and axis input fields.

## Author

Generated automatically by Doxygen for Coin from the source code.
