Vector and matrix types and basic geometric operations.
Various routines in this unit perform operations on geometric objects, like spheres and line segments. Here's an outline how do we represent various geometric objects:
function Vector2(const X, Y: Single): TVector2; overload; inline; |
function Vector2(const V: TVector2Double): TVector2; overload; inline; |
function Vector2Double(const X, Y: Double): TVector2Double; inline; |
function Vector3(const X, Y, Z: Single): TVector3; overload; inline; |
function Vector3(const V: TVector2; const Z: Single): TVector3; overload; inline; |
function Vector3(const V: TVector3Double): TVector3; overload; inline; |
function Vector3Double(const X, Y, Z: Double): TVector3Double; overload; inline; |
function Vector3Double(const V: TVector3): TVector3Double; overload; inline; |
function Vector4(const X, Y, Z, W: Single): TVector4; overload; inline; |
function Vector4(const V: TVector3; const W: Single): TVector4; overload; inline; |
function Vector4(const V: TVector2; const Z, W: Single): TVector4; overload; inline; |
function Vector4(const V: TVector4Double): TVector4; overload; inline; |
function Vector4Double(const X, Y, Z, W: Double): TVector4Double; overload; inline; |
function Vector4Double(const V: TVector4): TVector4Double; overload; inline; |
function Vector4Double(const V: TVector3Double; const W: Double): TVector4Double; overload; inline; |
function Matrix3(const V: TMatrix3Double): TMatrix3; |
function Matrix4(const V: TMatrix4Double): TMatrix4; |
function Matrix3Double(const V: TMatrix3): TMatrix3Double; |
function Matrix4Double(const V: TMatrix4): TMatrix4Double; |
function Vector2FromStr(const S: string): TVector2; |
function Vector3FromStr(const S: string): TVector3; |
function Vector4FromStr(const S: string): TVector4; |
function Lerp(const A: Single; const V1, V2: TVector2): TVector2; overload; inline; |
function Lerp(const A: Single; const V1, V2: TVector3): TVector3; overload; inline; |
function Lerp(const A: Single; const V1, V2: TVector4): TVector4; overload; inline; |
function Lerp(const A: Single; const M1, M2: TMatrix2): TMatrix2; overload; inline; |
function Lerp(const A: Single; const M1, M2: TMatrix3): TMatrix3; overload; inline; |
function Lerp(const A: Single; const M1, M2: TMatrix4): TMatrix4; overload; inline; |
function Lerp(const A: Double; const V1, V2: TVector2Double): TVector2Double; overload; inline; |
function Lerp(const A: Double; const V1, V2: TVector3Double): TVector3Double; overload; inline; |
function Lerp(const A: Double; const V1, V2: TVector4Double): TVector4Double; overload; inline; |
function Lerp(const A: Double; const M1, M2: TMatrix2Double): TMatrix2Double; overload; inline; |
function Lerp(const A: Double; const M1, M2: TMatrix3Double): TMatrix3Double; overload; inline; |
function Lerp(const A: Double; const M1, M2: TMatrix4Double): TMatrix4Double; overload; inline; |
function TryInverseHarder(const M: TMatrix4; out MInverse: TMatrix4): boolean; |
function CosAngleBetweenVectors(const V1, V2: TVector3): Single; overload; |
function CosAngleBetweenNormals(const V1, V2: TVector3): Single; overload; |
function AngleRadBetweenVectors(const V1, V2: TVector3): Single; overload; |
function AngleRadBetweenNormals(const V1, V2: TVector3): Single; overload; |
function RotationAngleRadBetweenVectors(const V1, V2: TVector3): Single; overload; |
function RotationAngleRadBetweenVectors(const V1, V2, Cross: TVector3): Single; overload; |
function RotatePointAroundAxisRad(const Angle: Single; const Point: TVector3; const Axis: TVector3): TVector3; overload; |
function RotatePointAroundAxisDeg(const Angle: Single; const Point: TVector3; const Axis: TVector3): TVector3; overload; deprecated 'use radians for everything throughout CGE'; |
function RotatePointAroundAxis90(const Point: TVector3; const Axis: TVector3): TVector3; |
function RotatePointAroundAxisMinus90(const Point: TVector3; const Axis: TVector3): TVector3; |
function RotatePointAroundAxis(const AxisAngle: TVector4; const Point: TVector3): TVector3; |
function MaxVectorCoord(const V: TVector2): Integer; overload; |
function MaxVectorCoord(const V: TVector3): T3DAxis; overload; |
function MaxVectorCoord(const V: TVector4): Integer; overload; |
function MaxAbsVectorCoord(const V: TVector2): Integer; overload; |
function MaxAbsVectorCoord(const V: TVector3): T3DAxis; overload; |
function MaxAbsVectorCoord(const V: TVector4): Integer; overload; |
function MinAbsVectorCoord(const V: TVector2): Integer; overload; |
function MinAbsVectorCoord(const V: TVector3): T3DAxis; overload; |
function MinAbsVectorCoord(const V: TVector4): Integer; overload; |
function MinVectorCoord(const V: TVector3): T3DAxis; overload; |
procedure SortAbsVectorCoord(const V: TVector3; out Max, Middle, Min: T3DAxis); overload; |
function PlaneDirInDirection(const Plane: TVector4; const Direction: TVector3): TVector3; overload; |
function PlaneDirInDirection(const PlaneDir, Direction: TVector3): TVector3; overload; |
function PlaneDirNotInDirection(const Plane: TVector4; const Direction: TVector3): TVector3; overload; |
function PlaneDirNotInDirection(const PlaneDir, Direction: TVector3): TVector3; overload; |
function SwapEndian(const V: TVector2): TVector2; overload; |
function SwapEndian(const V: TVector3): TVector3; overload; |
function SwapEndian(const V: TVector4): TVector4; overload; |
function LEtoN(const V: TVector2): TVector2; overload; |
function LEtoN(const V: TVector3): TVector3; overload; |
function LEtoN(const V: TVector4): TVector4; overload; |
function BEtoN(const V: TVector2): TVector2; overload; |
function BEtoN(const V: TVector3): TVector3; overload; |
function BEtoN(const V: TVector4): TVector4; overload; |
function NtoLE(const V: TVector2): TVector2; overload; |
function NtoLE(const V: TVector3): TVector3; overload; |
function NtoLE(const V: TVector4): TVector4; overload; |
function NtoBE(const V: TVector2): TVector2; overload; |
function NtoBE(const V: TVector3): TVector3; overload; |
function NtoBE(const V: TVector4): TVector4; overload; |
procedure SwapValues(var V1, V2: TVector2); overload; |
procedure SwapValues(var V1, V2: TVector3); overload; |
procedure SwapValues(var V1, V2: TVector4); overload; |
procedure NormalizePlaneVar(var V: TVector4); overload; |
procedure TwoPlanesIntersectionLine(const Plane0, Plane1: TVector4; out Line0, LineVector: TVector3); overload; |
function Lines2DIntersection(const Line0, Line1: TVector3): TVector2; overload; |
function ThreePlanesIntersectionPoint( const Plane0, Plane1, Plane2: TVector4): TVector3; overload; |
function PlaneMove(const Plane: TVector4; const Move: TVector3): TVector4; overload; |
procedure PlaneMoveVar(var Plane: TVector4; const Move: TVector3); overload; |
function PlaneAntiMove(const Plane: TVector4; const Move: TVector3): TVector4; overload; |
function VectorsSamePlaneDirections(const V1, V2: TVector3; const Plane: TVector4): boolean; overload; |
function VectorsSamePlaneDirections(const V1, V2: TVector3; const PlaneDir: TVector3): boolean; overload; |
function PointsSamePlaneSides(const p1, p2: TVector3; const Plane: TVector4): boolean; overload; |
function PointsDistance(const V1, V2: TVector2): Single; overload; |
function PointsDistance(const V1, V2: TVector3): Single; overload; |
function PointsDistanceSqr(const V1, V2: TVector2): Single; overload; |
function PointsDistanceSqr(const V1, V2: TVector3): Single; overload; |
function PointsDistance2DSqr(const V1, V2: TVector3; const IgnoreIndex: Integer): Single; overload; |
function VectorsPerp(const V1, V2: TVector3): boolean; overload; |
function VectorsParallel(const V1, V2: TVector3): boolean; overload; |
procedure MakeVectorsAngleRadOnTheirPlane(var v1: TVector3; const v2: TVector3; const AngleRad: Single; const ResultWhenParallel: TVector3); overload; |
procedure MakeVectorsOrthoOnTheirPlane(var v1: TVector3; const v2: TVector3); overload; |
function MakeVectorOrthogonal(const V1, V2: TVector3): TVector3; |
function AnyOrthogonalVector(const V: TVector2): TVector2; overload; |
function AnyOrthogonalVector(const V: TVector3): TVector3; overload; |
function IsLineParallelToPlane(const lineVector: TVector3; const plane: TVector4): boolean; overload; |
function IsLineParallelToSimplePlane(const lineVector: TVector3; const PlaneConstCoord: T3DAxis): boolean; overload; |
function AreParallelVectorsSameDirection( const Vector1, Vector2: TVector3): boolean; overload; |
function PointOnPlaneClosestToPoint(const plane: TVector4; const point: TVector3): TVector3; overload; |
function PointToPlaneDistanceSqr(const Point: TVector3; const Plane: TVector4): Single; overload; |
function PointToNormalizedPlaneDistance(const Point: TVector3; const Plane: TVector4): Single; overload; |
function PointToPlaneDistance(const Point: TVector3; const Plane: TVector4): Single; overload; |
function PointToSimplePlaneDistance(const point: TVector3; const PlaneConstCoord: T3DAxis; const PlaneConstValue: Single): Single; overload; |
function PointOnLineClosestToPoint(const line0, lineVector, point: TVector2): TVector2; overload; |
function PointOnLineClosestToPoint(const line0, lineVector, point: TVector3): TVector3; overload; |
function PointToLineDistanceSqr(const point, line0, lineVector: TVector3): Single; overload; |
function TryPlaneLineIntersection(out intersection: TVector3; const plane: TVector4; const line0, lineVector: TVector3): boolean; overload; |
function TryPlaneLineIntersection(out t: Single; const plane: TVector4; const line0, lineVector: TVector3): boolean; overload; |
function TrySimplePlaneRayIntersection(out Intersection: TVector3; const PlaneConstCoord: T3DAxis; const PlaneConstValue: Single; const RayOrigin, RayDirection: TVector3): boolean; overload; |
function TrySimplePlaneRayIntersection(out Intersection: TVector3; out T: Single; const PlaneConstCoord: T3DAxis; const PlaneConstValue: Single; const RayOrigin, RayDirection: TVector3): boolean; overload; |
function TrySimplePlaneRayIntersection(out T: Single; const PlaneConstCoord: T3DAxis; const PlaneConstValue: Single; const RayOrigin, RayDirection: TVector3): boolean; overload; |
function TryPlaneRayIntersection(out Intersection: TVector3; const Plane: TVector4; const RayOrigin, RayDirection: TVector3): boolean; overload; |
function TryPlaneRayIntersection(out Intersection: TVector3; out T: Single; const Plane: TVector4; const RayOrigin, RayDirection: TVector3): boolean; overload; |
function TrySimplePlaneSegmentIntersection( out Intersection: TVector3; const PlaneConstCoord: T3DAxis; const PlaneConstValue: Single; const Pos1, Pos2: TVector3): boolean; overload; |
function TrySimplePlaneSegmentIntersection( out Intersection: TVector3; out T: Single; const PlaneConstCoord: T3DAxis; const PlaneConstValue: Single; const Pos1, Pos2: TVector3): boolean; overload; |
function TrySimplePlaneSegmentIntersection( out T: Single; const PlaneConstCoord: T3DAxis; const PlaneConstValue: Single; const Pos1, Pos2: TVector3): boolean; overload; |
function TryPlaneSegmentDirIntersection(out Intersection: TVector3; const Plane: TVector4; const Segment0, SegmentVector: TVector3): boolean; overload; |
function TryPlaneSegmentDirIntersection(out Intersection: TVector3; out T: Single; const Plane: TVector4; const Segment0, SegmentVector: TVector3): boolean; overload; |
function IsPointOnSegmentLineWithinSegment(const intersection, pos1, pos2: TVector2): boolean; overload; |
function IsPointOnSegmentLineWithinSegment(const intersection, pos1, pos2: TVector3): boolean; overload; |
function Line2DFrom2Points(const P1, P2: TVector2): TVector3; |
function LineOfTwoDifferentPoints2D(const P1, P2: TVector2): TVector3; deprecated 'use Line2DFrom2Points'; |
function Line2DFromOriginVector(const Line0, LineVector: TVector2): TVector3; |
function PointToSegmentDistanceSqr(const point, pos1, pos2: TVector3): Single; overload; |
function PlaneTransform(const Plane: TVector4; const Matrix: TMatrix4): TVector4; |
function IsTunnelSphereCollision(const Tunnel1, Tunnel2: TVector3; const TunnelRadius: Single; const SphereCenter: TVector3; const SphereRadius: Single): boolean; overload; |
function IsSpheresCollision(const Sphere1Center: TVector3; const Sphere1Radius: Single; const Sphere2Center: TVector3; const Sphere2Radius: Single): boolean; overload; |
function IsSegmentSphereCollision(const pos1, pos2, SphereCenter: TVector3; const SphereRadius: Single): boolean; overload; |
function TrySphereRayIntersection(out Intersection: TVector3; const SphereCenter: TVector3; const SphereRadius: Single; const RayOrigin, RayDirection: TVector3): boolean; overload; |
function TryCylinderRayIntersection(out Intersection: TVector3; const CylinderAxisOrigin, CylinderAxis: TVector3; const CylinderRadius: Single; const RayOrigin, RayDirection: TVector3): boolean; overload; |
function PointOnLineClosestToLine( out Intersection: TVector3; const Line1Origin, Line1Vector, Line2Origin, Line2Vector: TVector3): Boolean; |
function TranslationMatrix(const X, Y, Z: Single): TMatrix4; overload; |
function TranslationMatrix(const Transl: TVector3): TMatrix4; overload; |
procedure TranslationMatrices(const X, Y, Z: Single; out Matrix, InvertedMatrix: TMatrix4); overload; |
procedure TranslationMatrices(const Transl: TVector3; out Matrix, InvertedMatrix: TMatrix4); overload; |
procedure MultMatrixTranslation(var M: TMatrix4; const Transl: TVector3); overload; |
procedure MultMatricesTranslation(var M, MInvert: TMatrix4; const Transl: TVector3); overload; |
function TransformToCoordsMatrix(const NewX, NewY, NewZ: TVector3): TMatrix4; overload; |
function TransformToCoordsMatrix(const NewOrigin, NewX, NewY, NewZ: TVector3): TMatrix4; overload; |
function TransformToCoordsNoScaleMatrix(const NewOrigin, NewX, NewY, NewZ: TVector3): TMatrix4; overload; |
function TransformFromCoordsMatrix(const OldX, OldY, OldZ: TVector3): TMatrix4; overload; |
function TransformFromCoordsMatrix(const OldOrigin, OldX, OldY, OldZ: TVector3): TMatrix4; overload; |
function TransformFromCoordsNoScaleMatrix(const OldOrigin, OldX, OldY, OldZ: TVector3): TMatrix4; overload; |
procedure TransformCoordsMatrices(const NewX, NewY, NewZ: TVector3; out ToCoords, FromCoords: TMatrix4); overload; |
function TransformToCoords(const V, NewX, NewY, NewZ: TVector3): TVector3; |
function LookAtMatrix(const Eye, Center, Up: TVector3): TMatrix4; overload; |
function LookDirMatrix(const Eye, Dir, Up: TVector3): TMatrix4; overload; |
function LookDirMatrix(const Eye, Dir, Side, Up: TVector3): TMatrix4; overload; |
function FastLookDirMatrix(const Direction, Up: TVector3): TMatrix4; |
function InverseFastLookDirMatrix(const Direction, Up: TVector3): TMatrix4; |
function ModelViewToNormalMatrix(const M: TMatrix4): TMatrix3; |
function VectorMultTransposedSameVector(const V: TVector3): TMatrix4; |
function ScalingMatrix(const ScaleFactor: TVector3): TMatrix4; |
procedure ScalingMatrices(const ScaleFactor: TVector3; InvertedMatrixIdentityIfNotExists: boolean; out Matrix, InvertedMatrix: TMatrix4); |
function RotationMatrix(const AxisAngle: TVector4): TMatrix4; overload; |
function RotationMatrixRad(const AngleRad: Single; const Axis: TVector3): TMatrix4; overload; |
function RotationMatrixDeg(const AngleDeg: Single; const Axis: TVector3): TMatrix4; overload; deprecated 'use radians for everything throughout CGE'; |
function RotationMatrixRad(const AngleRad: Single; const AxisX, AxisY, AxisZ: Single): TMatrix4; overload; |
function RotationMatrixDeg(const AngleDeg: Single; const AxisX, AxisY, AxisZ: Single): TMatrix4; overload; deprecated 'use radians for everything throughout CGE'; |
procedure RotationMatricesRad(const AngleRad: Single; const Axis: TVector3; out Matrix, InvertedMatrix: TMatrix4); overload; |
procedure RotationMatricesRad(const AxisAngle: TVector4; out Matrix, InvertedMatrix: TMatrix4); overload; |
function RotationNegate(const Rotation: TVector4): TVector4; |
function RotatePoint2D(const Point: TVector2; const AngleRad: Single): TVector2; |
function Approximate3DScale(const X, Y, Z: Single): Single; overload; |
function Approximate3DScale(const V: TVector3): Single; overload; |
function Approximate3DScale(const M: TMatrix4): Single; overload; |
function Approximate2DScale(const X, Y: Single): Single; overload; |
function Approximate2DScale(const V: TVector2): Single; overload; |
function SmoothTowards(const Source, Target, SecondsPassed, Speed: Single): Single; overload; |
function SmoothTowards(const Source, Target: TVector2; const SecondsPassed, Speed: Single): TVector2; overload; |
function SmoothTowards(const Source, Target: TVector3; const SecondsPassed, Speed: Single): TVector3; overload; |
function ThreePlanesIntersectionPointDouble( const Plane0, Plane1, Plane2: TVector4Double): TVector3Double; overload; |
function Vector2Byte(const X, Y: Byte): TVector2Byte; overload; inline; |
function Vector3Byte(const X, Y, Z: Byte): TVector3Byte; overload; inline; |
function Vector4Byte(const X, Y, Z, W: Byte): TVector4Byte; overload; inline; |
function Vector2Byte(const V: TVector2): TVector2Byte; overload; |
function Vector3Byte(const V: TVector3): TVector3Byte; overload; |
function Vector4Byte(const V: TVector4): TVector4Byte; overload; |
function Vector2(const V: TVector2Byte): TVector2; overload; |
function Vector3(const V: TVector3Byte): TVector3; overload; |
function Vector4(const V: TVector4Byte): TVector4; overload; |
function Lerp(const A: Single; const V1, V2: TVector2Byte): TVector2Byte; overload; inline; |
function Lerp(const A: Single; const V1, V2: TVector3Byte): TVector3Byte; overload; inline; |
function Lerp(const A: Single; const V1, V2: TVector4Byte): TVector4Byte; overload; inline; |
function Vector2Integer(const X, Y: Integer): TVector2Integer; inline; |
function Vector3Integer(const X, Y, Z: Integer): TVector3Integer; inline; |
function Vector4Integer(const X, Y, Z, W: Integer): TVector4Integer; inline; |
function Vector2(const V: TVector2Integer): TVector2; overload; inline; |
function Vector2Cardinal(const X, Y: Cardinal): TVector2Cardinal; inline; |
function Vector3Cardinal(const X, Y, Z: Cardinal): TVector3Cardinal; inline; |
function Vector4Cardinal(const X, Y, Z, W: Cardinal): TVector4Cardinal; inline; |
function Vector2SmallInt(const X, Y: SmallInt): TVector2SmallInt; inline; |
function Vector2Single(const X, Y: Single): TVector2; overload; deprecated 'use Vector2'; |
function Vector2Single(const V: TVector2Double): TVector2; overload; deprecated 'use Vector2'; |
function Vector3Single(const X, Y, Z: Single): TVector3; overload; deprecated 'use Vector3'; |
function Vector3Single(const V: TVector2; const Z: Single): TVector3; overload; deprecated 'use Vector3'; |
function Vector3Single(const V: TVector3Double): TVector3; overload; deprecated 'use Vector3'; |
function Vector4Single(const X, Y, Z, W: Single): TVector4; overload; deprecated 'use Vector4'; |
function Vector4Single(const V: TVector3; const W: Single): TVector4; overload; deprecated 'use Vector4'; |
function Vector4Single(const V: TVector4Double): TVector4; overload; deprecated 'use Vector4'; |
function FloatsEqual(const A, B: Single): boolean; overload; deprecated 'use Math.SameValue'; |
function FloatsEqual(const A, B: Single; const Epsilon: Single): boolean; overload; deprecated 'use Math.SameValue'; |
function FloatToNiceStr(const A: Single): string; overload; deprecated 'use Format(''%f'', [Value])'; |
function FloatToRawStr(const A: Single): string; overload; deprecated 'use Format(''%g'', [Value])'; |
function Zero(const A: Single): boolean; overload; deprecated 'use Math.IsZero'; |
function VectorAdd(const V1, V2: TVector2): TVector2; overload; deprecated 'use V1 + V2'; |
function VectorAdd(const V1, V2: TVector3): TVector3; overload; deprecated 'use V1 + V2'; |
function VectorAdd(const V1, V2: TVector4): TVector4; overload; deprecated 'use V1 + V2'; |
function VectorSubtract(const V1, V2: TVector2): TVector2; overload; deprecated 'use V1 - V2'; |
function VectorSubtract(const V1, V2: TVector3): TVector3; overload; deprecated 'use V1 - V2'; |
function VectorSubtract(const V1, V2: TVector4): TVector4; overload; deprecated 'use V1 - V2'; |
function VectorMultiplyComponents(const V1, V2: TVector2): TVector2; overload; deprecated 'use V1 * V2'; |
function VectorMultiplyComponents(const V1, V2: TVector3): TVector3; overload; deprecated 'use V1 * V2'; |
function VectorMultiplyComponents(const V1, V2: TVector4): TVector4; overload; deprecated 'use V1 * V2'; |
function VectorProduct(const V1, V2: TVector3): TVector3; overload; deprecated 'use TVector3.CrossProduct'; |
function Normalized(const V: TVector2): TVector2; overload; deprecated 'use V.Normalize method'; |
function Normalized(const V: TVector3): TVector3; overload; deprecated 'use V.Normalize method'; |
procedure NormalizeVar(var V: TVector2); overload; deprecated 'use V := V.Normalize'; |
procedure NormalizeVar(var V: TVector3); overload; deprecated 'use V := V.Normalize'; |
function MatrixMult(const M1, M2: TMatrix4): TMatrix4; overload; deprecated 'use * operator to multiply matrices'; |
function MatrixMultPoint(const M: TMatrix4; const P: TVector2): TVector2; overload; deprecated 'use M.MultPoint method'; |
function MatrixMultPoint(const M: TMatrix4; const P: TVector3): TVector3; overload; deprecated 'use M.MultPoint method'; |
function MatrixMultDirection(const M: TMatrix4; const P: TVector2): TVector2; overload; deprecated 'use M.MultDirection method'; |
function MatrixMultDirection(const M: TMatrix4; const P: TVector3): TVector3; overload; deprecated 'use M.MultDirection method'; |
function VectorLenSqr(const V: TVector2): Single; overload; deprecated 'use V.LengthSqr'; |
function VectorLenSqr(const V: TVector3): Single; overload; deprecated 'use V.LengthSqr'; |
function VectorLenSqr(const V: TVector4): Single; overload; deprecated 'use V.LengthSqr'; |
function VectorLen(const V: TVector2): Single; overload; deprecated 'use V.Length'; |
function VectorLen(const V: TVector3): Single; overload; deprecated 'use V.Length'; |
function VectorLen(const V: TVector4): Single; overload; deprecated 'use V.Length'; |
function VectorAverage(const V: TVector3): Single; overload; deprecated 'use V.Average'; |
function VectorToRawStr(const V: TVector2): string; overload; deprecated 'use V.ToRawString'; |
function VectorToRawStr(const V: TVector3): string; overload; deprecated 'use V.ToRawString'; |
function VectorToRawStr(const V: TVector4): string; overload; deprecated 'use V.ToRawString'; |
function VectorToNiceStr(const V: TVector2): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector3): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector4): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector2Integer): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector3Integer): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector4Integer): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector2Cardinal): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector3Cardinal): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector4Cardinal): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector2Byte): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector3Byte): string; overload; deprecated 'use V.ToString'; |
function VectorToNiceStr(const V: TVector4Byte): string; overload; deprecated 'use V.ToString'; |
function ZeroVector(const V: TVector2): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector3): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector4): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector2Byte): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector3Byte): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector4Byte): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector2Integer): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector3Integer): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector4Integer): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector2Cardinal): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector3Cardinal): boolean; overload; deprecated 'use V.IsZero'; |
function ZeroVector(const V: TVector4Cardinal): boolean; overload; deprecated 'use V.IsZero'; |
function PerfectlyZeroVector(const V: TVector2): boolean; overload; deprecated 'use V.IsPerfectlyZero'; |
function PerfectlyZeroVector(const V: TVector3): boolean; overload; deprecated 'use V.IsPerfectlyZero'; |
function PerfectlyZeroVector(const V: TVector4): boolean; overload; deprecated 'use V.IsPerfectlyZero'; |
function VectorAdjustToLength(const V: TVector2; const NewLength: Single): TVector2; overload; deprecated 'use V.AdjustToLength'; |
function VectorAdjustToLength(const V: TVector3; const NewLength: Single): TVector3; overload; deprecated 'use V.AdjustToLength'; |
function VectorAdjustToLength(const V: TVector4; const NewLength: Single): TVector4; overload; deprecated 'use V.AdjustToLength'; |
function Vector2SingleFromStr(const S: string): TVector2; overload; deprecated 'use Vector2FromStr'; |
function Vector3SingleFromStr(const s: string): TVector3; overload; deprecated 'use Vector3FromStr'; |
function Vector4SingleFromStr(const S: string): TVector4; overload; deprecated 'use Vector4FromStr'; |
function VectorDotProduct(const V1, V2: TVector2): Single; overload; deprecated 'use TVector2.DotProduct(V1, V2)'; |
function VectorDotProduct(const V1, V2: TVector3): Single; overload; deprecated 'use TVector3.DotProduct(V1, V2)'; |
function VectorDotProduct(const V1, V2: TVector4): Single; overload; deprecated 'use TVector4.DotProduct(V1, V2)'; |
function VectorsEqual(const V1, V2: TVector2): boolean; overload; deprecated 'use TVector2.Equals(V1, V2)'; |
function VectorsEqual(const V1, V2: TVector3): boolean; overload; deprecated 'use TVector3.Equals(V1, V2)'; |
function VectorsEqual(const V1, V2: TVector4): boolean; overload; deprecated 'use TVector4.Equals(V1, V2)'; |
function VectorsEqual(const V1, V2: TVector2; const Epsilon: Single): boolean; overload; deprecated 'use TVector2.Equals(V1, V2, Epsilon)'; |
function VectorsEqual(const V1, V2: TVector3; const Epsilon: Single): boolean; overload; deprecated 'use TVector3.Equals(V1, V2, Epsilon)'; |
function VectorsEqual(const V1, V2: TVector4; const Epsilon: Single): boolean; overload; deprecated 'use TVector4.Equals(V1, V2, Epsilon)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector2): boolean; overload; deprecated 'use TVector2.PerfectlyEquals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector3): boolean; overload; deprecated 'use TVector3.PerfectlyEquals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector4): boolean; overload; deprecated 'use TVector4.PerfectlyEquals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector2Byte): boolean; overload; deprecated 'use TVector2Byte.Equals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector3Byte): boolean; overload; deprecated 'use TVector3Byte.Equals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector4Byte): boolean; overload; deprecated 'use TVector4Byte.Equals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector2Integer): boolean; overload; deprecated 'use TVector2Integer.Equals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector3Integer): boolean; overload; deprecated 'use TVector3Integer.Equals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector4Integer): boolean; overload; deprecated 'use TVector4Integer.Equals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector2Cardinal): boolean; overload; deprecated 'use TVector2Cardinal.Equals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector3Cardinal): boolean; overload; deprecated 'use TVector3Cardinal.Equals(V1, V2)'; |
function VectorsPerfectlyEqual(const V1, V2: TVector4Cardinal): boolean; overload; deprecated 'use TVector4Cardinal.Equals(V1, V2)'; |
function TryMatrixInverse(const M: TMatrix2; out MInverse: TMatrix2): boolean; overload; overload; deprecated 'use TMatrix2.TryInverse'; |
function TryMatrixInverse(const M: TMatrix3; out MInverse: TMatrix3): boolean; overload; overload; deprecated 'use TMatrix3.TryInverse'; |
function TryMatrixInverse(const M: TMatrix4; out MInverse: TMatrix4): boolean; overload; overload; deprecated 'use TMatrix4.TryInverse'; |
function MatrixToRawStr(const M: TMatrix2; const LineIndent: string): string; overload; overload; deprecated 'use TMatrix2.ToRawString'; |
function MatrixToRawStr(const M: TMatrix3; const LineIndent: string): string; overload; overload; deprecated 'use TMatrix3.ToRawString'; |
function MatrixToRawStr(const M: TMatrix4; const LineIndent: string): string; overload; overload; deprecated 'use TMatrix4.ToRawString'; |
function MatrixToNiceStr(const M: TMatrix2; const LineIndent: string): string; overload; overload; deprecated 'use TMatrix2.ToString'; |
function MatrixToNiceStr(const M: TMatrix3; const LineIndent: string): string; overload; overload; deprecated 'use TMatrix3.ToString'; |
function MatrixToNiceStr(const M: TMatrix4; const LineIndent: string): string; overload; overload; deprecated 'use TMatrix4.ToString'; |
function MatricesPerfectlyEqual(const V1, V2: TMatrix2): boolean; overload; deprecated 'use TMatrix2.PerfectlyEquals(V1, V2)'; |
function MatricesPerfectlyEqual(const V1, V2: TMatrix3): boolean; overload; deprecated 'use TMatrix3.PerfectlyEquals(V1, V2)'; |
function MatricesPerfectlyEqual(const V1, V2: TMatrix4): boolean; overload; deprecated 'use TMatrix4.PerfectlyEquals(V1, V2)'; |
function MatrixRow(const M: TMatrix2; const Row: Integer): TVector2; overload; overload; deprecated 'use TMatrix2.Rows[Row]'; |
function MatrixRow(const M: TMatrix3; const Row: Integer): TVector3; overload; overload; deprecated 'use TMatrix3.Rows[Row]'; |
function MatrixRow(const M: TMatrix4; const Row: Integer): TVector4; overload; overload; deprecated 'use TMatrix4.Rows[Row]'; |
function Vector2SingleCut(const V: TVector3): TVector2; overload; deprecated 'use V.XY'; |
function Vector3SingleCut(const V: TVector4): TVector3; overload; deprecated 'use V.XYZ'; |
function Matrix3Single(const V: TMatrix3Double): TMatrix3; overload; deprecated 'use Matrix3'; |
function Matrix4Single(const V: TMatrix4Double): TMatrix4; overload; deprecated 'use Matrix4'; |
procedure MatrixDecompose(const Matrix: TMatrix4; out Translation: TVector3; out Rotation: TVector4; out Scale: TVector3); |
function ScaleFromMatrix(const Matrix: TMatrix4): TVector3; |
function TranslationFromMatrix(const M: TMatrix4): TVector3; |