# Matrix4x4.Decompose(Matrix4x4, Vector3, Quaternion, Vector3)Matrix4x4.Decompose(Matrix4x4, Vector3, Quaternion, Vector3)Matrix4x4.Decompose(Matrix4x4, Vector3, Quaternion, Vector3)Matrix4x4.Decompose(Matrix4x4, Vector3, Quaternion, Vector3) Method

## Definition

Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.

``````public:
static bool Decompose(System::Numerics::Matrix4x4 matrix, [Runtime::InteropServices::Out] System::Numerics::Vector3 % scale, [Runtime::InteropServices::Out] System::Numerics::Quaternion % rotation, [Runtime::InteropServices::Out] System::Numerics::Vector3 % translation);``````
``public static bool Decompose (System.Numerics.Matrix4x4 matrix, out System.Numerics.Vector3 scale, out System.Numerics.Quaternion rotation, out System.Numerics.Vector3 translation);``
``static member Decompose : System.Numerics.Matrix4x4 *  *  *  -> bool``
``Public Shared Function Decompose (matrix As Matrix4x4, ByRef scale As Vector3, ByRef rotation As Quaternion, ByRef translation As Vector3) As Boolean``

#### Parameters

matrix
Matrix4x4 Matrix4x4 Matrix4x4 Matrix4x4

The source matrix.

scale
Vector3 Vector3 Vector3 Vector3

When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.

rotation
Quaternion Quaternion Quaternion Quaternion

When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.

translation
Vector3 Vector3 Vector3 Vector3

When the method returns, contains the translation component of the transformation matrix if the operation succeeded.

#### Returns

`true` if `matrix` was decomposed successfully; otherwise, `false`.