Packed Record TGenericVector2
Unit
CastleVectorsInternalDouble
Declaration
type TGenericVector2 = packed record
Description
Vector of 2 floating-point values.
See also
- TGenericVector3
- Vector of 3 floating-point values.
Overview
Nested Types
Fields
Methods
|
class operator + (const A, B: TGenericVector2): TGenericVector2; inline; |
|
class operator - (const A, B: TGenericVector2): TGenericVector2; inline; |
|
class operator - (const V: TGenericVector2): TGenericVector2; inline; |
|
class operator * (const V: TGenericVector2; const Scalar: TGenericScalar): TGenericVector2; inline; |
|
class operator * (const Scalar: TGenericScalar; const V: TGenericVector2): TGenericVector2; inline; |
|
class operator * (const V1, V2: TGenericVector2): TGenericVector2; inline; |
|
class operator / (const V: TGenericVector2; const Scalar: TGenericScalar): TGenericVector2; inline; |
|
procedure Init(const AX, AY: TGenericScalar); inline; deprecated 'initialize instead like "V := Vector2(X, Y)"; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.Init(X, Y)"'; |
|
function ToString: string; |
|
function ToRawString: string; |
|
function Normalize: TGenericVector2; inline; |
|
procedure NormalizeMe; inline; deprecated 'normalize instead like "V := V.Normalize"; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.NormalizeMe"'; |
|
function Length: TGenericScalar; inline; |
|
function LengthSqr: TGenericScalar; inline; |
|
function AdjustToLength(const NewLength: TGenericScalar): TGenericVector2; inline; |
|
class function DotProduct(const V1, V2: TGenericVector2): TGenericScalar; static; inline; |
|
function Abs: TGenericVector2; inline; |
|
function IsZero: boolean; overload; inline; |
|
function IsZero(const Epsilon: TGenericScalar): boolean; overload; inline; |
|
function IsPerfectlyZero: boolean; |
|
class function Equals(const V1, V2: TGenericVector2): boolean; overload; inline; static; |
|
class function Equals(const V1, V2: TGenericVector2; const Epsilon: TGenericScalar): boolean; overload; inline; static; |
|
class function PerfectlyEquals(const V1, V2: TGenericVector2): boolean; static; inline; |
|
class function Lerp(const A: TGenericScalar; const V1, V2: TGenericVector2): TGenericVector2; static; inline; |
|
class function Zero: TGenericVector2; static; inline; |
Properties
|
property Data [constIndex:TIndex]: TGenericScalar read GetItems write SetItems; deprecated 'use instead X, Y fields; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.Data[0] := Scene.TranslationXY.Data[0] + 1"'; |
|
property AsArray [constIndex:TIndex]: TGenericScalar read GetItems; |
|
property Items [constIndex:TIndex]: TGenericScalar read GetItems write SetItems; deprecated 'use instead X, Y fields; modifying a temporary record value is a trap, e.g. this is not reliable "Scene.TranslationXY[0] := Scene.TranslationXY[0] + 1"'; |
|
class property One [constIndex:TIndex]: TGenericVector2 read GetOne; |
Description
Nested Types
Fields
|
nested const Count = 2; |
|
Methods
|
class operator * (const V1, V2: TGenericVector2): TGenericVector2; inline; |
Vector * vector makes a component-wise multiplication. This is consistent with GLSL and other vector APIs.
|
|
procedure Init(const AX, AY: TGenericScalar); inline; deprecated 'initialize instead like "V := Vector2(X, Y)"; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.Init(X, Y)"'; |
Warning: this symbol is deprecated: initialize instead like "V := Vector2(X, Y)"; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.Init(X, Y)" |
|
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.
|
|
procedure NormalizeMe; inline; deprecated 'normalize instead like "V := V.Normalize"; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.NormalizeMe"'; |
Warning: this symbol is deprecated: normalize instead like "V := V.Normalize"; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.NormalizeMe" |
|
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): TGenericVector2; 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; |
|
|
class function Equals(const V1, V2: TGenericVector2): boolean; overload; inline; static; |
Compare two vectors, with epsilon to tolerate slightly different floats.
|
|
class function PerfectlyEquals(const V1, V2: TGenericVector2): boolean; static; inline; |
Compare two vectors using exact comparison (like the "=" operator to compare floats).
|
Properties
|
property Data [constIndex:TIndex]: TGenericScalar read GetItems write SetItems; deprecated 'use instead X, Y fields; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.Data[0] := Scene.TranslationXY.Data[0] + 1"'; |
Warning: this symbol is deprecated: use instead X, Y fields; modifying a temporary record value is a trap, e.g. this is not reliable: "Scene.TranslationXY.Data[0] := Scene.TranslationXY.Data[0] + 1"
Access (get, set) vector components by index. We discourage using it. Use X, Y to change vector components. Use AsArray to access it by index, read-only.
|
|
property Items [constIndex:TIndex]: TGenericScalar read GetItems write SetItems; deprecated 'use instead X, Y fields; modifying a temporary record value is a trap, e.g. this is not reliable "Scene.TranslationXY[0] := Scene.TranslationXY[0] + 1"'; |
Warning: this symbol is deprecated: use instead X, Y fields; modifying a temporary record value is a trap, e.g. this is not reliable "Scene.TranslationXY[0] := Scene.TranslationXY[0] + 1" |
Generated by PasDoc 0.16.0.