Orthonormalize#

Computes the orthonormalized matrix from an input matrix or array of matrices. In practice, this involves treating the columns (or rows, depending on whether column-major or row-major semantics are being utilized for matrix descriptions - in mathematics the former is often used, while in computer graphics the latter tends to be preferred) of each input matrix as independent vectors that span some N-dimensional space (N being the number of column or row vectors in the matrix) and finding another set of mutually-perpendicular vectors that span the same space before normalizing each one (hence the term “orthonormal”; also see the so-called “Gram-Schmidt Process” that details exactly how one can go about performing this computation); these new sets of vectors can then be combined to form the “orthonormal” versions of each input matrix.

Installation#

To use this node enable omni.graph.nodes_core in the Extension Manager.

Inputs#

Name

Type

Descripton

Default

Matrix (inputs:matrix)

['matrixd[3]', 'matrixd[3][]', 'matrixd[4]', 'matrixd[4][]']

Input matrix or array of matrices to orthonormalize.

None

Outputs#

Name

Type

Descripton

Default

Result (outputs:result)

['matrixd[3]', 'matrixd[3][]', 'matrixd[4]', 'matrixd[4][]']

The orthonormalized matrix or array of matrices (with preserved typing).

None

Metadata#

Name

Value

Unique ID

omni.graph.nodes.Orthonormalize

Version

1

Extension

omni.graph.nodes_core

Has State?

False

Implementation Language

C++

Default Memory Type

cpu

Generated Code Exclusions

None

uiName

Orthonormalize

Categories

math:operator

Generated Class Name

OgnOrthonormalizeDatabase

Python Module

omni.graph.nodes_core