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

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