Castle Game Engine: CastleVectors: Class TVector3SingleList

# Class TVector3SingleList
Description | Hierarchy | Fields | Methods | Properties
## 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 TFPSList TGenericStructList TVector3SingleList ## 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 AssignNegated(Source: TVector3SingleList);`
| `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.
| `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;`
Convert to TVector4SingleList, 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.
Generated by PasDoc 0.13.0 on 2015-06-15 04:43:13