# SoGetMatrixAction.3iv man page

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).