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

# SoGetMatrixAction(3iv)

computes transformation matrix for subgraph

## NAME

SoGetMatrixAction — computes transformation matrix for subgraph

## INHERITS FROM

SoAction \> SoGetMatrixAction

## SYNOPSIS

**#include \<Inventor/actions/SoGetMatrixAction.h\>**

Methods from class SoGetMatrixAction:

	**SoGetMatrixAction(const SbViewportRegion &newRegion)**\
 **void**	**setViewportRegion(const SbViewportRegion &newRegion)**\
 **const SbViewportRegion &**	**getViewportRegion() const**\
 **SbMatrix &**	**getMatrix()**\
 **SbMatrix &**	**getInverse()**\
 **SbMatrix &**	**getTextureMatrix()**\
 **SbMatrix &**	**getTextureInverse()**

Methods from class SoAction:

**virtual void**	**apply(SoNode \*node)**\
 **virtual void**	**apply(SoPath \*path)**\
 **virtual void**	**apply(const SoPathList &pathList, SbBool obeysRules = FALSE)**\
 **static SoType**	**getClassTypeId()**\
 **virtual SoType**	**getTypeId()**\
 **virtual SbBool**	**isOfType(SoType type)**\
 **virtual void**	**invalidateState()**

## DESCRIPTION

**This action computes transformation matrices for a given subgraph. It computes the cumulative transformation matrix and its inverse, along with a cumulative texture transformation matrix and its inverse.**

**This** **action is unlike most others in that it does not traverse downwards from groups. When applied to a node, it computes the matrix for just that node. (This makes sense for transformation nodes, but not for** **others, really.) It is much more useful when applied to a path. When applied to a path, it gathers the transformation info for all nodes in the path and those that affect nodes in the path, but it stops** **when it hits the last node in the path; it does not traverse downwards from it as other actions (such as rendering) do. This behavior makes the most sense for this action.**

## METHODS

	**SoGetMatrixAction(const SbViewportRegion &newRegion)**\
 Constructor takes viewport region to use for picking. Even though the matrix computation may not involve a window per se, some nodes need this information to determine their placement.

**void**	**setViewportRegion(const SbViewportRegion &newRegion)**\
 **const SbViewportRegion &**	**getViewportRegion() const**\
 Sets/returns current viewport region to use for action.

**SbMatrix &**	**getMatrix()**\
 **SbMatrix &**	**getInverse()**\
 Returns cumulative transformation matrix and its inverse. Warning: the matrices returned by these routines should not be changed (unless you are implementing your own transformation nodes).

**SbMatrix &**	**getTextureMatrix()**\
 **SbMatrix &**	**getTextureInverse()**\
 Returns cumulative texture transformation matrix and its inverse. Warning: the matrices returned by these routines should not be changed (unless you are implementing your own transformation nodes).

## SEE ALSO

**SoGetBoundingBoxAction**
