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