Navigation
Unreal Engine C++ API Reference > Runtime > Chaos > Chaos
References
Module | Chaos |
Header | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/DenseMatrix.h |
Include | #include "Chaos/DenseMatrix.h" |
Syntax
template<int32 T_MAXELEMENTS>
class TDenseMatrix
Remarks
A matrix with run-time variable dimensions, up to an element limit defined at compile-time.
Elements are stored in row-major order (i.e., elements in a row are adjacent in memory). Note that FMatrix stores elements in column-major order so that we can access the columns quickly which is handy when you have rotation matrices and want the spatial axes. We don't care about that so we use the more conventional row-major indexing and matching storage.
Constructors
Type | Name | Description | |
---|---|---|---|
![]() |
TDenseMatrix () |
||
![]() |
TDenseMatrix
(
const TDenseMatrix< MaxElements >& A |
||
![]() |
TDenseMatrix
(
const int32 InNRows, |
Functions
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
TDenseMatrix< MaxElements > | Add
(
const TDenseMatrix< T_EA >& A, |
Return C = A + B |
![]() ![]() |
TDenseMatrix< MaxElements > | Add_Symmetric
(
const TDenseMatrix< T_EA >& A, |
Return C = A + B, where A and B are symetric. |
![]() |
int32 | AddRows
(
const int32 InNumRows |
Add uninitialized rows to the matrix. |
![]() ![]() |
const FReal & | At
(
const int32 RowIndex, |
Return a read-only reference to the element at the specified row and column. |
![]() |
FReal & | At
(
const int32 RowIndex, |
Return a writable reference to the element at the specified row and column. |
![]() ![]() |
TDenseMatrix< MaxElements > | Divide
(
const TDenseMatrix< T_EA >& A, |
Return C = A / V, where A is an MxN matrix, and V a real number. |
![]() ![]() |
TDenseMatrix< MaxElements > | DotProduct
(
const TDenseMatrix< T_EA >& A, |
Return C = At x B. If A and B are column vectors (Nx1 matrices), this is a vector dot product. |
![]() |
void | Set the dimensions and initial values of the matrix. | |
![]() ![]() |
TDenseMatrix< MaxElements > | Create a matrix with the specified dimensions, and initialize all elements with "V". | |
![]() ![]() |
TDenseMatrix< MaxElements > | Make
(
const int32 InNumRows, |
Factory methods Create a matrix with the specified dimensions, but all elements are uninitialized. |
![]() ![]() |
TDenseMatrix< MaxElements > | Create a copy of the 3x3 matrix. | |
![]() ![]() |
TDenseMatrix< MaxElements > | Create a copy of the 3x1 columns vector. | |
![]() ![]() |
TDenseMatrix< MaxElements > | Create a matrix with the specified elements supplied as an array in row-major order (i.e., the first N elements are for Row 0, the next N for Row 1, etc., where N is the number of columns). | |
![]() ![]() |
TDenseMatrix< MaxElements > | MakeDiagonal
(
const int32 InNumRows, |
Create a matrix with all elemets set to zero, except the diagonal elements. |
![]() ![]() |
TDenseMatrix< MaxElements > | MakeIdentity
(
const int32 InDim |
Create an identity matrix. |
![]() ![]() |
TDenseMatrix< MaxElements > | Multiply
(
const FReal V, |
Return C = A x V, where A is an MxN matrix, and V a real number. |
![]() ![]() |
TDenseMatrix< MaxElements > | Multiply
(
const TDenseMatrix< T_EA >& A, |
Return C = A x V, where A is an MxN matrix, and V a real number. |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyAB
(
const FMassMatrix& A, |
Return C = A x B, where B is an 6xN matrix, and A is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyAB
(
const TDenseMatrix< T_EA >& A, |
Return C = A x B, where A is an Nx6 matrix, and B is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyAB
(
const TDenseMatrix< T_EA >& A, |
Return C = A x B, the product of A and B where each element of C is Cij = DotProduct(A.GetRow(i), B.GetColumns(j)). |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyAB_Symmetric
(
const TDenseMatrix< T_EA >& A, |
Return C = A x B, where the results is known to be symmetric. /see MultiplyAtB. |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyABt
(
const FMassMatrix& A, |
Return C = A x Transpose(B), where B is an Nx6 matrix, and A is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyABt
(
const TDenseMatrix< T_EA >& A, |
Return C = A x Transpose(B). /see MultiplyAB, MultiplyAtB, MultipltAtBt. |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyAtB
(
const TDenseMatrix< T_EA >& A, |
Return C = Transpose(A) x B. /see MultiplyAB, MultiplyABt, MultipltAtBt. |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyAtBt
(
const TDenseMatrix< T_EA >& A, |
Return C = Transpose(A) x Transpose(B). /see MultiplyAB, MultiplyAtB, MultipltABt. |
![]() ![]() |
TDenseMatrix< MaxElements > | MultiplyBCAddA_Symmetric
(
const TDenseMatrix< T_EA >& A, |
Return C = A + B x C, where the A and (B x C) are known to be symmetric. |
![]() ![]() |
TDenseMatrix< MaxElements > | Negate
(
const TDenseMatrix< T_EA >& A |
Copy a matrix and set each element to its negative. |
![]() ![]() |
int32 | NumColumns () |
The number of columns in the matrix. |
![]() ![]() |
int32 | NumElements () |
The number of elements in the matrix. |
![]() ![]() |
int32 | NumRows () |
The number of rows in the matrix. |
![]() |
void | Set all elements to 'V'. | |
![]() |
void | Set the element | |
![]() |
void | SetBlockAt
(
const int32 RowOffset, |
Set the block starting at ("RowOffset", "ColumnOffset") from the specified matrix "V" |
![]() |
void | SetBlockAt
(
const int32 RowOffset, |
Set the 3x3 block starting at ("RowOffset", "ColumnOffset") from the specified 3x3 matrix "V" (note: assumes the input UE matrix is column-major order) |
![]() |
void | SetBlockAtDiagonal33
(
const int32 RowOffset, |
Set the specified 3x3 block to a diagonal matrix with the specified diagonal and off-diagonal values. |
![]() |
void | SetColumnAt
(
const int32 RowIndex, |
|
![]() |
void | SetColumnAt
(
const int32 RowIndex, |
Starting from element ("RowIndex", "ColumnIndex"), set the next "NumV" elements in the column to the values in "V". |
![]() |
void | SetDiagonal
(
FReal V |
Set the diagonal elements to 'V'. Does not set off-diagonal elements. /see MakeDiagonal |
![]() |
void | SetDiagonalAt
(
int32 Start, |
Set the "Num" diagonal elements starting from ("Start", "Start") to "V". |
![]() |
void | SetDimensions
(
const int32 InNumRows, |
Set the dimensions of the matrix, but do not initialize any values. |
![]() |
void | Starting from element ("RowIndex", "ColumnIndex"), set the next "NumV" elements in the row to the values in "V". | |
![]() |
void | ||
![]() |
void | ||
![]() ![]() |
TDenseMatrix< MaxElements > | Subtract
(
const TDenseMatrix< T_EA >& A, |
Return C = A - B |
![]() ![]() |
TDenseMatrix< MaxElements > | Transpose
(
const TDenseMatrix< T_EA >& A |
Math operations Return the transpose of 'A'. |
Operators
Type | Name | Description | |
---|---|---|---|
![]() |
TDenseMatrix< MaxElements > & | operator=
(
const TDenseMatrix< MaxElements >& A |
Constants
Name | Description |
---|---|
MaxElements |