Record TGenericMatrix2

Unit

Declaration

type TGenericMatrix2 = record

Description

2x2 matrix of floating-point values.

See also
TGenericMatrix3
3x3 matrix of floating-point values.

Source: base/castlevectors_generic_float_record.inc (line 458).

Overview

Nested Types

Public TIndex = 0..1;

Fields

Public var Data: array [TIndex, TIndex] of TGenericScalar;

Methods

Public class operator + (const A, B: TGenericMatrix2): TGenericMatrix2; inline;
Public class operator - (const A, B: TGenericMatrix2): TGenericMatrix2; inline;
Public class operator - (const M: TGenericMatrix2): TGenericMatrix2; inline;
Public class operator * (const V: TGenericMatrix2; const Scalar: TGenericScalar): TGenericMatrix2; inline;
Public class operator * (const Scalar: TGenericScalar; const V: TGenericMatrix2): TGenericMatrix2; inline;
Public class operator * (const M: TGenericMatrix2; const V: TGenericVector2): TGenericVector2; inline;
Public class operator * (const M1, M2: TGenericMatrix2): TGenericMatrix2;
Public function ToString(const LineIndent: string = ''): string;
Public function ToRawString(const LineIndent: String = ''; const FloatFormat: String = '%g'): String;
Public function Determinant: TGenericScalar;
Public function Inverse(ADeterminant: TGenericScalar): TGenericMatrix2;
Public function TryInverse(out MInverse: TGenericMatrix2): boolean;
Public function Transpose: TGenericMatrix2;
Public class function Equals(const M1, M2: TGenericMatrix2): boolean; overload; static;
Public class function Equals(const M1, M2: TGenericMatrix2; const Epsilon: TGenericScalar): boolean; overload; static;
Public class function PerfectlyEquals(const M1, M2: TGenericMatrix2): boolean; static;
Public class function Lerp(const A: TGenericScalar; const M1, M2: TGenericMatrix2): TGenericMatrix2; static;
Public class function Zero: TGenericMatrix2; static;
Public class function Identity: TGenericMatrix2; static;

Properties

Public property Items [const AColumn,ARow: TIndex]: TGenericScalar read GetItems write SetItems;
Public property Rows [const ARow: TIndex]: TGenericVector2 read GetRows write SetRows;
Public property Columns [const AColumn: TIndex]: TGenericVector2 read GetColumns write SetColumns;

Description

Nested Types

Public TIndex = 0..1;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 458).

Fields

Public var Data: array [TIndex, TIndex] of TGenericScalar;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 471).

Methods

Public class operator + (const A, B: TGenericMatrix2): TGenericMatrix2; inline;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 473).

Public class operator - (const A, B: TGenericMatrix2): TGenericMatrix2; inline;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 474).

Public class operator - (const M: TGenericMatrix2): TGenericMatrix2; inline;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 475).

Public class operator * (const V: TGenericMatrix2; const Scalar: TGenericScalar): TGenericMatrix2; inline;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 476).

Public class operator * (const Scalar: TGenericScalar; const V: TGenericMatrix2): TGenericMatrix2; inline;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 477).

Public class operator * (const M: TGenericMatrix2; const V: TGenericVector2): TGenericVector2; inline;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 478).

Public class operator * (const M1, M2: TGenericMatrix2): TGenericMatrix2;

Matrix * matrix makes a normal matrix algebraic multiplication (not component-wise multiplication). Note that this is different from vectors, where vector * vector makes a component-wise multiplication.

Source: base/castlevectors_generic_float_record.inc (line 483).

Public function ToString(const LineIndent: string = ''): string;

Convert to multi-line string.

The output follows the natural mathematical look of the matrix, so the first line shows the firt row, and so on. This matches X3D matrix notation and contrasts with VRML 1.0 notation.

Source: base/castlevectors_generic_float_record.inc (line 490).

Public function ToRawString(const LineIndent: String = ''; const FloatFormat: String = '%g'): String;

Convert to multi-line string using the most precise (not always easily readable by humans) float format. This may use the exponential (scientific) notation to represent the floating-point value, if needed.

You can pass, as parameter, the format to use. By default it is '%g', "general number format" with maximum precision documented on https://www.freepascal.org/docs-html/rtl/sysutils/format.html .

This is suitable for storing the value in a file, with a best precision possible.

Source: base/castlevectors_generic_float_record.inc (line 503).

Public function Determinant: TGenericScalar;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 508).

Public function Inverse(ADeterminant: TGenericScalar): TGenericMatrix2;

Inverse the matrix.

This does division by ADeterminant internally, so will raise exception from this float division if the matrix is not reversible. Check Math.IsZero(ADeterminant) first to avoid this, or use TryInverse.

Source: base/castlevectors_generic_float_record.inc (line 515).

Public function TryInverse(out MInverse: TGenericMatrix2): boolean;

Inverse the matrix, or return False if the matrix is not invertible.

Source: base/castlevectors_generic_float_record.inc (line 518).

Public function Transpose: TGenericMatrix2;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 520).

Public class function Equals(const M1, M2: TGenericMatrix2): boolean; overload; static;

Compare two vectors, with epsilon to tolerate slightly different floats.

Source: base/castlevectors_generic_float_record.inc (line 523).

Public class function Equals(const M1, M2: TGenericMatrix2; const Epsilon: TGenericScalar): boolean; overload; static;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 524).

Public class function PerfectlyEquals(const M1, M2: TGenericMatrix2): boolean; static;

Compare two vectors using exact comparison (like the "=" operator to compare floats).

Source: base/castlevectors_generic_float_record.inc (line 527).

Public class function Lerp(const A: TGenericScalar; const M1, M2: TGenericMatrix2): TGenericMatrix2; static;

Linear interpolation between two matrix values.

See also
TGenericVector3.Lerp
Linear interpolation between two vector values.

Source: base/castlevectors_generic_float_record.inc (line 531).

Public class function Zero: TGenericMatrix2; static;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 533).

Public class function Identity: TGenericMatrix2; static;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 534).

Properties

Public property Items [const AColumn,ARow: TIndex]: TGenericScalar read GetItems write SetItems;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 505).

Public property Rows [const ARow: TIndex]: TGenericVector2 read GetRows write SetRows;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 506).

Public property Columns [const AColumn: TIndex]: TGenericVector2 read GetColumns write SetColumns;

This item has no description.

Source: base/castlevectors_generic_float_record.inc (line 507).


Generated by PasDoc 0.17.0.snapshot.