it's a record:
Code:
TG2Vec2 = record
strict private
function GetArr(const Index: Integer): Single; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
procedure SetArr(const Index: Integer; const Value: Single); {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
public
x, y: Single;
property Arr[const Index: Integer]: Single read GetArr write SetArr; default;
class operator Negative(const v: TG2Vec2): TG2Vec2;
class operator Explicit(const v: TG2Vec2): TG2Vec2Ref;
class operator Explicit(const v: TG2Vec2Ref): TG2Vec2;
class operator Explicit(const v: TPoint): TG2Vec2;
class operator Implicit(const v: TG2Vec2): TG2Vec2Ref;
class operator Implicit(const v: TG2Vec2Ref): TG2Vec2;
class operator Implicit(const v: TPoint): TG2Vec2;
class operator Equal(const v1, v2: TG2Vec2): Boolean;
class operator NotEqual(const v1, v2: TG2Vec2): Boolean;
class operator Add(const v1, v2: TG2Vec2): TG2Vec2;
class operator Add(const v: TG2Vec2; const s: Single): TG2Vec2;
class operator Subtract(const v1, v2: TG2Vec2): TG2Vec2;
class operator Subtract(const v: TG2Vec2; const s: Single): TG2Vec2;
class operator Multiply(const v1, v2: TG2Vec2): Single;
class operator Multiply(const v: TG2Vec2; const s: Single): TG2Vec2;
class operator Multiply(const v: TG2Vec2; const m: TG2Mat): TG2Vec2;
class operator Multiply(const v: TG2Vec2; const m: TG2Mat2): TG2Vec2;
class operator Divide(const v: TG2Vec2; const s: Single): TG2Vec2;
procedure SetValue(const _X, _Y: Single); {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
procedure Normalize; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function Normalized: TG2Vec2; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function Len: Single; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function LenSq: Single; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function Dot(const v: TG2Vec2): Single; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function Cross(const v: TG2Vec2): Single; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function Angle(const v: TG2Vec2): Single; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function Perp: TG2Vec2; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function Reflect(const n: TG2Vec2): TG2Vec2; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
function Rotate(const Angle: Single): TG2Vec2; {$IFDEF G2_USE_INLINE} inline; {$ENDIF}
end;
if you want I could just attach the whole math unit here.
Bookmarks