summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-09-25 09:24:54 +0200
committerErich Eckner <git@eckner.net>2018-09-25 09:31:33 +0200
commit64927db92418d1c0d074d574e4f25c24cb995cdd (patch)
tree928a0b8ef466add437f8ac796ae116f42e85ec7e
parentd4b335dd5b48e5488b882b6e72e9652ad219c62f (diff)
downloadunits-64927db92418d1c0d074d574e4f25c24cb995cdd.tar.xz
lowlevelunit.pas: Skalarprodukt neu
-rw-r--r--lowlevelunit.pas56
1 files changed, 34 insertions, 22 deletions
diff --git a/lowlevelunit.pas b/lowlevelunit.pas
index 4712908..7d253be 100644
--- a/lowlevelunit.pas
+++ b/lowlevelunit.pas
@@ -61,28 +61,30 @@ type
tKantenFilterTyp = (kfTiefpass,kfHochpass);
tRegexTyp = (rtKein,rtFpc,rtShell);
-operator = (x1,x2: t2x2Extended): boolean;
-operator = (x1,x2: t2x2Int64): boolean;
-operator = (x1,x2: tInt64Point): boolean;
-operator = (x1,x2: tIntPoint): boolean;
-operator = (x1,x2: tExtPoint): boolean;
-operator + (x1,x2: t2x2Extended): t2x2Extended;
-operator + (x1,x2: tInt64Point): tInt64Point;
-operator + (x1,x2: tIntPoint): tIntPoint;
-operator + (x1,x2: tExtPoint): tExtPoint;
-operator + (x1,x2: tExt3dPoint): tExt3dPoint;
-operator - (x1,x2: t2x2Extended): t2x2Extended;
-operator - (x1,x2: tInt64Point): tInt64Point;
-operator - (x1,x2: tIntPoint): tIntPoint;
-operator - (x1,x2: tExtPoint): tExtPoint;
-operator - (x1,x2: tExt3dPoint): tExt3dPoint;
-operator * (a: extended; x: t2x2Extended): t2x2Extended;
-operator * (a: int64; x: tInt64Point): tInt64Point;
-operator * (a: extended; x: tInt64Point): tExtPoint;
-operator * (a: longint; x: tIntPoint): tIntPoint;
-operator * (a: extended; x: tIntPoint): tExtPoint;
-operator * (a: extended; x: tExtPoint): tExtPoint;
-operator * (a: extended; x: tExt3dPoint): tExt3dPoint;
+operator = (x1,x2: t2x2Extended): boolean; inline;
+operator = (x1,x2: t2x2Int64): boolean; inline;
+operator = (x1,x2: tInt64Point): boolean; inline;
+operator = (x1,x2: tIntPoint): boolean; inline;
+operator = (x1,x2: tExtPoint): boolean; inline;
+operator + (x1,x2: tExt3dPoint): tExt3dPoint; inline;
+operator + (x1,x2: t2x2Extended): t2x2Extended; inline;
+operator + (x1,x2: tInt64Point): tInt64Point; inline;
+operator + (x1,x2: tIntPoint): tIntPoint; inline;
+operator + (x1,x2: tExtPoint): tExtPoint; inline;
+operator - (x1,x2: t2x2Extended): t2x2Extended; inline;
+operator - (x1,x2: tInt64Point): tInt64Point; inline;
+operator - (x1,x2: tIntPoint): tIntPoint; inline;
+operator - (x1,x2: tExtPoint): tExtPoint; inline;
+operator - (x1,x2: tExt3dPoint): tExt3dPoint; inline;
+operator * (a: extended; x: t2x2Extended): t2x2Extended; inline;
+operator * (a: int64; x: tInt64Point): tInt64Point; inline;
+operator * (a: extended; x: tInt64Point): tExtPoint; inline;
+operator * (a: longint; x: tIntPoint): tIntPoint; inline;
+operator * (a: extended; x: tIntPoint): tExtPoint; inline;
+operator * (a: extended; x: tExtPoint): tExtPoint; inline;
+operator * (a: extended; x: tExt3dPoint): tExt3dPoint; inline;
+operator * (x1,x2: tExtPoint): extended; inline;
+operator * (x1,x2: tExt3dPoint): extended; inline;
function round(x: tExtPoint): tInt64Point; overload;
function symmetrischModulo(x,m: tInt64Point): tInt64Point; overload;
@@ -373,6 +375,16 @@ begin
result[c]:=a*x[c];
end;
+operator * (x1,x2: tExtPoint): extended;
+begin
+ result:=x1['x']*x2['x'] + x1['y']*x2['y'];
+end;
+
+operator * (x1,x2: tExt3dPoint): extended;
+begin
+ result:=x1['x']*x2['x'] + x1['y']*x2['y'];
+end;
+
// allgemeine Funktionen *******************************************************
function round(x: tExtPoint): tInt64Point;