Record TGenericVector4
Unit
CastleVectorsInternalDouble
Declaration
type TGenericVector4 = record
Description
Vector of 4 floating-point values.
See also
- TGenericVector3
- Vector of 3 floating-point values.
Overview
Nested Types
Fields
Methods
 |
class operator + (const A, B: TGenericVector4): TGenericVector4; inline; |
 |
class operator - (const A, B: TGenericVector4): TGenericVector4; inline; |
 |
class operator - (const V: TGenericVector4): TGenericVector4; inline; |
 |
class operator * (const V: TGenericVector4; const Scalar: TGenericScalar): TGenericVector4; inline; |
 |
class operator * (const Scalar: TGenericScalar; const V: TGenericVector4): TGenericVector4; inline; |
 |
class operator * (const V1, V2: TGenericVector4): TGenericVector4; inline; |
 |
class operator / (const V: TGenericVector4; const Scalar: TGenericScalar): TGenericVector4; inline; |
 |
procedure Init(const X, Y, Z, W: TGenericScalar); inline; |
 |
function ToString: string; |
 |
function ToRawString: string; |
 |
function Length: TGenericScalar; inline; |
 |
function LengthSqr: TGenericScalar; inline; |
 |
function AdjustToLength(const NewLength: TGenericScalar): TGenericVector4; inline; |
 |
class function DotProduct(const V1, V2: TGenericVector4): TGenericScalar; static; inline; |
 |
function Abs: TGenericVector4; inline; |
 |
function IsZero: boolean; overload; inline; |
 |
function IsZero(const Epsilon: TGenericScalar): boolean; overload; inline; |
 |
function IsPerfectlyZero: boolean; inline; |
 |
class function Equals(const V1, V2: TGenericVector4): boolean; overload; inline; static; |
 |
class function Equals(const V1, V2: TGenericVector4; const Epsilon: TGenericScalar): boolean; overload; inline; static; |
 |
class function PerfectlyEquals(const V1, V2: TGenericVector4): boolean; static; inline; |
 |
function ToPosition: TGenericVector3; inline; |
 |
class function Lerp(const A: TGenericScalar; const V1, V2: TGenericVector4): TGenericVector4; static; inline; |
 |
class function Zero: TGenericVector4; static; inline; |
Properties
Description
Nested Types
 |
TIndex = 0..3; |
|
|
Fields
Methods
 |
class operator * (const V1, V2: TGenericVector4): TGenericVector4; inline; |
|
Vector * vector makes a component-wise multiplication. This is consistent with GLSL and other vector APIs.
|
 |
function ToString: string; |
|
|
 |
function ToRawString: string; |
|
Convert to 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.
This is suitable for storing the value in a file, with a best precision possible.
|
 |
function LengthSqr: TGenericScalar; inline; |
|
Vector length squared. This is slightly faster than Length as it avoids calculating a square root along the way. (But, please remember to not optimize your code without a need. Optimize only parts that are proven bottlenecks, otherwise don't make the code less readable for the sake of speed.)
|
 |
function AdjustToLength(const NewLength: TGenericScalar): TGenericVector4; inline; |
|
Calculate a new vector scaled so that it has length equal to NewLength. NewLength may be negative, in which case we'll negate the vector and then adjust it's length to Abs(NewLength).
|
 |
function IsZero: boolean; overload; inline; |
|
Are all components equal to zero (within some epsilon margin).
|
 |
function IsZero(const Epsilon: TGenericScalar): boolean; overload; inline; |
|
Are all components equal to zero (within Epsilon margin).
|
 |
function IsPerfectlyZero: boolean; inline; |
|
|
 |
class function Equals(const V1, V2: TGenericVector4): boolean; overload; inline; static; |
|
Compare two vectors, with epsilon to tolerate slightly different floats.
|
 |
class function PerfectlyEquals(const V1, V2: TGenericVector4): boolean; static; inline; |
|
Compare two vectors using exact comparison (like the "=" operator to compare floats).
|
 |
function ToPosition: TGenericVector3; inline; |
|
Convert a 4D homogeneous coordinate to 3D position.
|
Properties
 |
property X: TGenericScalar index 0 read GetItemsInt write SetItemsInt; |
|
|
 |
property Y: TGenericScalar index 1 read GetItemsInt write SetItemsInt; |
|
|
 |
property Z: TGenericScalar index 2 read GetItemsInt write SetItemsInt; |
|
|
 |
property W: TGenericScalar index 3 read GetItemsInt write SetItemsInt; |
|
|
 |
property XYZ: TGenericVector3 read GetXYZ write SetXYZ; |
|
Get first 3 components as a 3D vector. This simply rejects the 4th component.
|
 |
property XY: TGenericVector2 read GetXY write SetXY; |
|
Get first 2 components as a 2D vector. This simply rejects the remaining vector components.
|
Generated by PasDoc 0.16.0.