Commit 3aca9124 authored by Bergmann89's avatar Bergmann89

* [ugluVector] added some usefull methods for Vector2f

parent e47495aa
......@@ -167,6 +167,7 @@ type
//Vektor Konstruktoren
function gluVector4f(const X, Y, Z, W: Single): TgluVector4f;
function gluVector4f(const aVec: TgluVector3f; const W: Single): TgluVector4f;
function gluVector4f(const aVec: TgluVector2f; const Z, W: Single): TgluVector4f;
function gluVector4d(const X, Y, Z, W: Single): TgluVector4d;
function gluVector3f(const X, Y, Z: Single): TgluVector3f; overload;
function gluVector3f(const v: TgluVector4f): TgluVector3f; overload;
......@@ -204,6 +205,8 @@ type
function gluVectorClamp(const v: TgluVector4f; const aMin, aMax: Single): TgluVector4f; overload;
function gluVectorAdd(const v1, v2: TgluVector3f): TgluVector3f;
function gluVectorSubtract(const v1, v2: TgluVector3f): TgluVector3f;
function gluVectorAdd(const v1, v2: TgluVector2f): TgluVector2f;
function gluVectorSubtract(const v1, v2: TgluVector2f): TgluVector2f;
procedure gluVectorOrthoNormalize(var reference, tangent: TgluVector3f);
function gluGetAbsCoord(const v: TgluVector3f): TgluVector3f;
......@@ -264,6 +267,9 @@ type
operator + (const v1, v2: TgluVector3f): TgluVector3f; inline;
operator - (const v1, v2: TgluVector3f): TgluVector3f; inline;
operator + (const v1, v2: TgluVector2f): TgluVector2f; inline;
operator - (const v1, v2: TgluVector2f): TgluVector2f; inline;
const
gluVectorNull : TgluVector3f = (0,0,0);
gluVectorUnitX: TgluVector3f = (1,0,0);
......@@ -355,6 +361,16 @@ begin
result := gluVectorSubtract(v1, v2);
end;
operator + (const v1, v2: TgluVector2f): TgluVector2f;
begin
result := gluVectorAdd(v1, v2);
end;
operator - (const v1, v2: TgluVector2f): TgluVector2f;
begin
result := gluVectorSubtract(v1, v2);
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//speichert einen Vector in einem Stream
//@vec: Vector die gespeichert werden soll;
......@@ -436,6 +452,14 @@ begin
result[3] := W;
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function gluVector4f(const aVec: TgluVector2f; const Z, W: Single): TgluVector4f;
begin
PgluVector2f(@result[0])^ := aVec;
result[2] := Z;
result[3] := W;
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//erstellt einen Vector
//@W: 1. Wert im Vector;
......@@ -778,6 +802,20 @@ begin
result[i] := v1[i] - v2[i];
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function gluVectorAdd(const v1, v2: TgluVector2f): TgluVector2f;
begin
result[0] := v1[0] + v2[0];
result[1] := v1[1] + v2[1];
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function gluVectorSubtract(const v1, v2: TgluVector2f): TgluVector2f;
begin
result[0] := v1[0] - v2[0];
result[1] := v1[1] - v2[1];
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Verändert die Vektoren so, dass sie orthogonal und normalisiert sind, bleibt dabei in der gleichen Ebene
//@v1: Vektor 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment