Class TVector3List

Unit

Declaration

type TVector3List = class(specialize TStructList<TVector3>)

Description

List of TVector3.

Hierarchy

Overview

Methods

Public procedure AssignNegated(const Source: TVector3List); deprecated 'use Assign and Negate separately';
Public procedure Negate;
Public procedure Normalize;
Public procedure MultiplyComponents(const V: TVector3);
Public procedure AssignLerp(const Fraction: Single; V1, V2: TVector3List; Index1, Index2, ACount: Integer); overload;
Public procedure AssignLerp(const Fraction: Single; const V1, V2: TVector3List); overload;
Public procedure AssignLerpNormalize(const Fraction: Single; V1, V2: TVector3List; Index1, Index2, ACount: Integer);
Public procedure AssignLerpRgbInHsv(const Fraction: Single; V1, V2: TVector3List; Index1, Index2, ACount: Integer);
Public procedure AddSubRange(const Source: TVector3List; Index, AddCount: Integer);
Public procedure AddListRange(const Source: TVector3List; Index, AddCount: Integer); deprecated 'use AddSubRange';
Public function ToVector4(const W: Single): TVector4List;
Public function MergeCloseVertexes(MergeDistance: Single): Cardinal;
Public function Equals(SecondValue: TObject): boolean; override;
Public function PerfectlyEquals(SecondValue: TObject): boolean;

Description

Methods

Public procedure AssignNegated(const Source: TVector3List); deprecated 'use Assign and Negate separately';

Warning: this symbol is deprecated: use Assign and Negate separately

 
Public procedure Negate;

Negate all items.

Public procedure Normalize;

Normalize all items. Zero vectors are left as zero.

Public procedure MultiplyComponents(const V: TVector3);

Multiply each item, component-wise, with V.

Public procedure AssignLerp(const Fraction: Single; V1, V2: TVector3List; Index1, Index2, ACount: Integer); overload;

Assign linear interpolation between two other vector arrays. We take ACount items, from V1[Index1 ... Index1 + ACount - 1] and V2[Index2 ... Index2 + ACount - 1], and interpolate between them like normal Lerp functions.

It's Ok for both V1 and V2 to be the same objects. But their ranges should not overlap, for future optimizations (although it's Ok for current implementation).

Public procedure AssignLerp(const Fraction: Single; const V1, V2: TVector3List); overload;

Assign linear interpolation between two other vector arrays.

Exceptions raised
EListsDifferentCount
If V1 and V2 have different count.
Public procedure AssignLerpNormalize(const Fraction: Single; V1, V2: TVector3List; Index1, Index2, ACount: Integer);

Assign linear interpolation between two other vector arrays, and normalize resulting vectors.

See also
AssignLerp
Assign linear interpolation between two other vector arrays.
Public procedure AssignLerpRgbInHsv(const Fraction: Single; V1, V2: TVector3List; Index1, Index2, ACount: Integer);

Assign linear interpolation between two other vector arrays, treating vectors as RGB colors and interpolating in HSV space.

See also
AssignLerp
Assign linear interpolation between two other vector arrays.
Public procedure AddSubRange(const Source: TVector3List; Index, AddCount: Integer);
 
Public procedure AddListRange(const Source: TVector3List; Index, AddCount: Integer); deprecated 'use AddSubRange';

Warning: this symbol is deprecated: use AddSubRange

 
Public function ToVector4(const W: Single): TVector4List;

Convert to TVector4List, with 4th vector component in new array set to constant W.

Public function MergeCloseVertexes(MergeDistance: Single): Cardinal;

When two vertexes on the list are closer than MergeDistance, set them truly (exactly) equal. Returns how many vertex positions were changed.

Public function Equals(SecondValue: TObject): boolean; override;

Does the SecondValue have equal length and content. The values are compared with an Epsilon tolerance, as usual for floating-point values.

Public function PerfectlyEquals(SecondValue: TObject): boolean;

Does the SecondValue have equal length and content. The values are compared perfectly, without any tolerance for difference.


Generated by PasDoc 0.15.0.