System.Math.Vectors.TVector
Delphi
TVector = record
C++
struct DECLSPEC_DRECORD TVector
{
public:
static TVector __fastcall Create(const float AX, const float AY, const float AW = 1.000000E+00f)/* overload */;
static TVector __fastcall Create(const System::Types::TPointF &APoint)/* overload */;
static TVector __fastcall _op_Addition(const TVector &AVector1, const TVector &AVector2);
static TVector __fastcall _op_Subtraction(const TVector &AVector1, const TVector &AVector2);
static bool __fastcall _op_Equality(const TVector &AVector1, const TVector &AVector2);
static bool __fastcall _op_Inequality(const TVector &AVector1, const TVector &AVector2);
static TVector __fastcall _op_Implicit(const System::Types::TPointF &APoint);
__fastcall operator System::Types::TPointF() _DEPRECATED_ATTRIBUTE1("Implicit conversion from TVector to TPointF requires homogenization") ;
static TVector __fastcall _op_Implicit(const System::Types::TSizeF &ASize);
static TVector __fastcall _op_Multiply(const TVector &AVector, const float AFactor);
static TVector __fastcall _op_Multiply(const float AFactor, const TVector &AVector);
static TVector __fastcall _op_Division(const TVector &AVector, const float AFactor);
static TVector __fastcall Zero();
float __fastcall Length();
TVector __fastcall Normalize();
TVector __fastcall CrossProduct(const TVector &AVector);
float __fastcall DotProduct(const TVector &AVector);
TVector __fastcall MidVector(const TVector &AVector);
System::Types::TPointF __fastcall ToPointF _DEPRECATED_ATTRIBUTE1("Use explicit typecast instead.") ();
friend TVector operator +(const TVector &AVector1, const TVector &AVector2) { return TVector::_op_Addition(AVector1, AVector2); }
friend TVector operator -(const TVector &AVector1, const TVector &AVector2) { return TVector::_op_Subtraction(AVector1, AVector2); }
friend bool operator ==(const TVector &AVector1, const TVector &AVector2) { return TVector::_op_Equality(AVector1, AVector2); }
friend bool operator !=(const TVector &AVector1, const TVector &AVector2) { return TVector::_op_Inequality(AVector1, AVector2); }
TVector& operator =(const System::Types::TPointF &APoint) { *this = TVector::_op_Implicit(APoint); return *this; }
TVector& operator =(const System::Types::TSizeF &ASize) { *this = TVector::_op_Implicit(ASize); return *this; }
friend TVector operator *(const TVector &AVector, const float AFactor) { return TVector::_op_Multiply(AVector, AFactor); }
friend TVector operator *(const float AFactor, const TVector &AVector) { return TVector::_op_Multiply(AFactor, AVector); }
friend TVector operator /(const TVector &AVector, const float AFactor) { return TVector::_op_Division(AVector, AFactor); }
public:
union
{
struct
{
float X;
float Y;
float W;
};
struct
{
TVectorArray V;
};
};
};
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
record struct |
public | System.Math.Vectors.pas System.Math.Vectors.hpp |
System.Math.Vectors | System.Math.Vectors |
Description
TVector is a vector in a two-dimensional space.
TVector is a record that represents a vector in a two-dimensional space. The vector has its initial point in (0, 0). X
and Y
are the coordinates of the terminal point of the vector. To be able to realize a vector transformation, using a transformation matrix, the coordinates number is extended to three. So, W
represents a coordinate that will help in vector transformation.