Castle Game EngineIntroduction Units Class Hierarchy Classes, Interfaces, Objects and Records Types Variables Constants Functions and Procedures Identifiers |
Class TVector3SingleList
Unit
CastleVectors
Declaration
type TVector3SingleList = class(specialize TGenericStructList<TVector3Single>)
Description
no description available, TGenericStructList description follows
Generic list of types that are compared by CompareByte.
This is equivalent to TFPGList, except it doesn't override IndexOf, so your type doesn't need to have a "=" operator built-in inside FPC. When calling IndexOf or Remove, it will simply compare values using CompareByte, this is what TFPSList.IndexOf uses. This way it works to create lists of records, vectors (constant size arrays), old-style TP objects, and also is suitable to create a list of methods (since for methods, the "=" is broken, for Delphi compatibility, see http://bugs.freepascal.org/view.php?id=9228).
We also add some trivial helper methods like Add and L.
Hierarchy
Overview
Methods
 |
procedure AssignNegated(Source: TVector3SingleList); |
 |
procedure Negate; |
 |
procedure Normalize; |
 |
procedure MultiplyComponents(const V: TVector3Single); |
 |
procedure AssignLerp(const Fraction: Single; V1, V2: TVector3SingleList; Index1, Index2, ACount: Integer); |
 |
procedure AssignLerpNormalize(const Fraction: Single; V1, V2: TVector3SingleList; Index1, Index2, ACount: Integer); |
 |
procedure AssignLerpRgbInHsv(const Fraction: Single; V1, V2: TVector3SingleList; Index1, Index2, ACount: Integer); |
 |
procedure AddList(Source: TVector3SingleList); |
 |
procedure AddListRange(Source: TVector3SingleList; Index, AddCount: Integer); |
 |
procedure AddArray(const A: array of TVector3Single); |
 |
procedure AssignArray(const A: array of TVector3Single); |
 |
function ToVector4Single(const W: Single): TVector4SingleList; |
 |
function MergeCloseVertexes(MergeDistance: Single): Cardinal; |
Description
Methods
 |
procedure Negate; |
Negate all items.
|
 |
procedure Normalize; |
Normalize all items. Zero vectors are left as zero.
|
 |
procedure MultiplyComponents(const V: TVector3Single); |
Multiply each item, component-wise, with V.
|
 |
procedure AssignLerp(const Fraction: Single; V1, V2: TVector3SingleList; Index1, Index2, ACount: Integer); |
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 AssignLerpNormalize(const Fraction: Single; V1, V2: TVector3SingleList; 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: TVector3SingleList; 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.
|
 |
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.
|
Generated by PasDoc 0.14.0.
|