Browse Source

* [ugluVector] added some usefull methods for Vector2f

master
Bergmann89 8 years ago
parent
commit
3aca912424
1 changed files with 38 additions and 0 deletions
  1. +38
    -0
      ugluVector.pas

+ 38
- 0
ugluVector.pas View File

@@ -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;


Loading…
Cancel
Save