Castle Game EngineIntroduction Units Class Hierarchy Classes, Interfaces, Objects and Records Types Variables Constants Functions and Procedures Identifiers

Class TVector3List
Unit
CastleVectors
Declaration
type TVector3List = class(specialize TStructList<TVector3>)
Description
List of TVector3.
Hierarchy
Overview
Methods

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

procedure Negate; 

procedure Normalize; 

procedure MultiplyComponents(const V: TVector3); 

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

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

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

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

procedure AddSubRange(const Source: TVector3List; Index, AddCount: Integer); 

procedure AddListRange(const Source: TVector3List; Index, AddCount: Integer); deprecated 'use AddSubRange'; 

function ToVector4(const W: Single): TVector4List; 

function MergeCloseVertexes(MergeDistance: Single): Cardinal; 

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

function PerfectlyEquals(SecondValue: TObject): boolean; 
Description
Methods

procedure AssignNegated(const Source: TVector3List); deprecated 'use Assign and Negate separately'; 
Warning: this symbol is deprecated: use Assign and Negate separately 

procedure Negate; 
Negate all items.


procedure Normalize; 
Normalize all items. Zero vectors are left as zero.


procedure MultiplyComponents(const V: TVector3); 
Multiply each item, componentwise, with V.


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).


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.


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.


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.


procedure AddSubRange(const Source: TVector3List; Index, AddCount: Integer); 


procedure AddListRange(const Source: TVector3List; Index, AddCount: Integer); deprecated 'use AddSubRange'; 
Warning: this symbol is deprecated: use AddSubRange 

function ToVector4(const W: Single): TVector4List; 
Convert to TVector4List, with 4th vector component in new array set to constant W.


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.


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 floatingpoint values.


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.
