---
name: "SoTextureMatrixElement"
section: "3"
platform: "linux"
package: "libcoin60-doc"
version: "3.1.3-2.2"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/SoTextureMatrixElement"
---

# SoTextureMatrixElement(3)

The SoTextureMatrixElement class is used to manage the texture matrix stack. The texture matrix is used to transform texture coordinates before being used to map textures onto polygons.

## NAME

SoTextureMatrixElement -

The **SoTextureMatrixElement** class is used to manage the texture matrix stack.

The texture matrix is used to transform texture coordinates before being used to map textures onto polygons.

## SYNOPSIS

`#include <Inventor/elements/SoTextureMatrixElement.h>`

Inherits **SoAccumulatedElement**.

Inherited by **SoGLTextureMatrixElement**.

### Public Member Functions

virtual void **init** (**SoState** \*state)\
 virtual void **push** (**SoState** \*state)\

### Static Public Member Functions

static **SoType** **getClassTypeId** (void)\
 static int **getClassStackIndex** (void)\
 static void \* **createInstance** (void)\
 static void **initClass** (void)\
 static void **makeIdentity** (**SoState** \*const state, **SoNode** \*const node)\
 static void **set** (**SoState** \*const state, **SoNode** \*const node, const **SbMatrix** &matrix)\
 static void **mult** (**SoState** \*const state, **SoNode** \*const node, const **SbMatrix** &matrix)\
 static void **translateBy** (**SoState** \*const state, **SoNode** \*const node, const **SbVec3f** &translation)\
 static void **rotateBy** (**SoState** \*const state, **SoNode** \*const node, const **SbRotation** &rotation)\
 static void **scaleBy** (**SoState** \*const state, **SoNode** \*const node, const **SbVec3f** &scaleFactor)\
 static const **SbMatrix** & **get** (**SoState** \*const state)\
 static void **emptyMatrix** (**SoState** \*const state)\

### Protected Member Functions

virtual **~SoTextureMatrixElement** ()\
 virtual void **makeEltIdentity** (void)\
 virtual void **setElt** (const **SbMatrix** &matrix)\
 virtual void **multElt** (const **SbMatrix** &matrix)\
 virtual void **translateEltBy** (const **SbVec3f** &translation)\
 virtual void **rotateEltBy** (const **SbRotation** &rotation)\
 virtual void **scaleEltBy** (const **SbVec3f** &scaleFactor)\
 virtual const **SbMatrix** & **getElt** (void) const \

### Protected Attributes

**SbMatrix** **textureMatrix**\

## Detailed Description

The **SoTextureMatrixElement** class is used to manage the texture matrix stack.

The texture matrix is used to transform texture coordinates before being used to map textures onto polygons.

## Constructor & Destructor Documentation

### SoTextureMatrixElement::~SoTextureMatrixElement (void)` [protected]`, ` [virtual]`

The destructor.

## Member Function Documentation

### SoType SoTextureMatrixElement::getClassTypeId (void)` [static]`

This static method returns the class type.

Reimplemented from **SoAccumulatedElement**.

Reimplemented in **SoGLTextureMatrixElement**.

### int SoTextureMatrixElement::getClassStackIndex (void)` [static]`

This static method returns the state stack index for the class.

Reimplemented from **SoAccumulatedElement**.

Reimplemented in **SoGLTextureMatrixElement**.

### void \* SoTextureMatrixElement::createInstance (void)` [static]`

*This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.*

Reimplemented in **SoGLTextureMatrixElement**.

### void SoTextureMatrixElement::initClass (void)` [static]`

Initialize relevant common data for all instances, like the type system.

Reimplemented from **SoAccumulatedElement**.

Reimplemented in **SoGLTextureMatrixElement**.

### void SoTextureMatrixElement::init (SoState \*state)` [virtual]`

This function initializes the element type in the given **SoState**. It is called for the first element of each enabled element type in **SoState** objects.

Reimplemented from **SoAccumulatedElement**.

Reimplemented in **SoGLTextureMatrixElement**.

### void SoTextureMatrixElement::push (SoState \*state)` [virtual]`

This method is called every time a new element is required in one of the stacks. This happens when a writable element is requested, using **SoState::getElement()** or indirectly **SoElement::getElement()**, and the depth of the current element is less than the state depth.

Override this method if your element needs to copy data from the previous top of stack. The **push()** method is called on the new element, and the previous element can be found using **SoElement::getNextInStack()**.

Reimplemented from **SoAccumulatedElement**.

### void SoTextureMatrixElement::makeIdentity (SoState \*conststate, SoNode \*constnode)` [static]`

Sets current texture matrix to identity.

### void SoTextureMatrixElement::set (SoState \*conststate, SoNode \*constnode, const SbMatrix &matrix)` [static]`

Sets the current texture matrix to *matrix*.

This method is an extension versus the Open Inventor API.

### void SoTextureMatrixElement::mult (SoState \*conststate, SoNode \*constnode, const SbMatrix &matrix)` [static]`

Multiplies *matrix* into the current texture matrix.

### void SoTextureMatrixElement::translateBy (SoState \*conststate, SoNode \*constnode, const SbVec3f &translation)` [static]`

Appends *translation* to the current texture matrix.

### void SoTextureMatrixElement::rotateBy (SoState \*conststate, SoNode \*constnode, const SbRotation &rotation)` [static]`

Appends *rotation* to the current texture matrix.

### void SoTextureMatrixElement::scaleBy (SoState \*conststate, SoNode \*constnode, const SbVec3f &scaleFactor)` [static]`

Appends *scaleFactor* to the current texture matrix.

### const SbMatrix & SoTextureMatrixElement::get (SoState \*conststate)` [static]`

Returns current texture matrix.

### void SoTextureMatrixElement::emptyMatrix (SoState \*conststate)` [static]`

Provided for API compatibility only. Does nothing for the moment.

### void SoTextureMatrixElement::makeEltIdentity (void)` [protected]`, ` [virtual]`

virtual method which is called from **makeIdentity()**. Sets element matrix to identity.

Reimplemented in **SoGLTextureMatrixElement**.

### void SoTextureMatrixElement::setElt (const SbMatrix &matrix)` [protected]`, ` [virtual]`

virtual method which is called from **set()**. Sets the texture matrix to *matrix*.

This method is an extension versus the Open Inventor API.

Reimplemented in **SoGLTextureMatrixElement**.

### void SoTextureMatrixElement::multElt (const SbMatrix &matrix)` [protected]`, ` [virtual]`

virtual method which is called from **mult()**. Multiplies *matrix* into element matrix.

Reimplemented in **SoGLTextureMatrixElement**.

### void SoTextureMatrixElement::translateEltBy (const SbVec3f &translation)` [protected]`, ` [virtual]`

virtual method which is called from **translateBy()**. Appends *translation* to the element matrix.

Reimplemented in **SoGLTextureMatrixElement**.

### void SoTextureMatrixElement::rotateEltBy (const SbRotation &rotation)` [protected]`, ` [virtual]`

virtual method which is called from **rotateBy()**. Appends *rotation* to the element matrix.

Reimplemented in **SoGLTextureMatrixElement**.

### void SoTextureMatrixElement::scaleEltBy (const SbVec3f &scaleFactor)` [protected]`, ` [virtual]`

virtual method which is called from **scaleBy()**. Append *scaleFactor* to the element matrix.

Reimplemented in **SoGLTextureMatrixElement**.

### const SbMatrix & SoTextureMatrixElement::getElt (void) const` [protected]`, ` [virtual]`

Returns element matrix. Called from **get()**.

## Member Data Documentation

### SoTextureMatrixElement::textureMatrix` [protected]`

The matrix.

## Author

Generated automatically by Doxygen for Coin from the source code.
