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

# SoComposeMatrix(3)

The SoComposeMatrix class is used to compose a matrix from miscellaneous transformations.

## NAME

SoComposeMatrix - The **SoComposeMatrix** class is used to compose a matrix from miscellaneous transformations.

## SYNOPSIS

\#include \<Inventor/engines/SoComposeMatrix.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** ()\

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** **translation**\
 **SoMFRotation** **rotation**\
 **SoMFVec3f** **scaleFactor**\
 **SoMFRotation** **scaleOrientation**\
 **SoMFVec3f** **center**\
 **SoEngineOutput** **matrix**\

### 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 **SoComposeMatrix** class is used to compose a matrix from miscellaneous transformations.

## Member Function Documentation

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

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

### SoType SoComposeMatrix::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 \*\* SoComposeMatrix::getInputDataPtr (void ) \[static\], \[protected\]

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

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

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

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

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

Reimplemented from **SoFieldContainer**.

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

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

Implements **SoEngine**.

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

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

## Member Data Documentation

### SoMFVec3f SoComposeMatrix::translation

Input field with set of translation vectors for the output matrices.

### SoMFRotation SoComposeMatrix::rotation

Input field with set of rotations for the output matrices.

### SoMFVec3f SoComposeMatrix::scaleFactor

Input field with set of scale vectors for the output matrices.

### SoMFRotation SoComposeMatrix::scaleOrientation

Input field with set of scale orientations for the output matrices.

### SoMFVec3f SoComposeMatrix::center

Input field with set of center positions for the output matrices.

### SoEngineOutput SoComposeMatrix::matrix

(**SoMFMatrix**) A set of matrices calculated from the input fields. The matrices is calculated by the **SbMatrix::setTransform()** function.

## Author

Generated automatically by Doxygen for Coin from the source code.
