home *** CD-ROM | disk | FTP | other *** search
- package com.sun.j3d.internal;
-
- import javax.vecmath.Point3d;
- import javax.vecmath.Vector3d;
-
- public class Distance {
- static final double FUZZ = 1.0E-5;
-
- private static final double DIST(double var0) {
- return Math.abs(var0);
- }
-
- public static double rayToSegment(Point3d var0, Vector3d var1, Point3d var2, Point3d var3) {
- return rayToSegment(var0, var1, var2, var3, (Point3d)null, (Point3d)null, (double[])null);
- }
-
- public static double rayToSegment(Point3d var0, Vector3d var1, Point3d var2, Point3d var3, Point3d var4, Point3d var5, double[] var6) {
- Vector3d var11 = new Vector3d();
- var11.sub(var0, var2);
- Vector3d var12 = new Vector3d();
- var12.sub(var3, var2);
- double var13 = var1.dot(var1);
- double var15 = -var1.dot(var12);
- double var17 = var12.dot(var12);
- double var19 = var1.dot(var11);
- double var23 = var11.dot(var11);
- double var25 = Math.abs(var13 * var17 - var15 * var15);
- if (var25 >= 1.0E-5) {
- double var61 = -var12.dot(var11);
- double var34 = var15 * var61 - var17 * var19;
- double var46 = var15 * var19 - var13 * var61;
- if (var34 >= (double)0.0F) {
- if (var46 >= (double)0.0F) {
- if (var46 <= var25) {
- double var29 = (double)1.0F / var25;
- var34 *= var29;
- var46 *= var29;
- if (var4 != null) {
- var4.scaleAdd(var34, var1, var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var46, var12, var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var34 * (var13 * var34 + var15 * var46 + (double)2.0F * var19) + var46 * (var15 * var34 + var17 * var46 + (double)2.0F * var61) + var23);
- } else {
- var46 = (double)1.0F;
- if (var19 >= (double)0.0F) {
- var34 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var17 + (double)2.0F * var61 + var23);
- } else {
- var34 = -var19 / var13;
- if (var4 != null) {
- var4.scaleAdd(var34, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST((var19 + (double)2.0F * var15) * var34 + var17 + (double)2.0F * var61 + var23);
- }
- }
- } else {
- var46 = (double)0.0F;
- if (var19 >= (double)0.0F) {
- var34 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var23);
- } else {
- var34 = -var19 / var13;
- if (var4 != null) {
- var4.scaleAdd(var34, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var19 * var34 + var23);
- }
- }
- } else if (var46 <= (double)0.0F) {
- if (var19 < (double)0.0F) {
- var34 = -var19 / var13;
- var46 = (double)0.0F;
- if (var4 != null) {
- var4.scaleAdd(var34, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var19 * var34 + var23);
- } else {
- var34 = (double)0.0F;
- if (var61 >= (double)0.0F) {
- var46 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var23);
- } else if (-var61 >= var17) {
- var46 = (double)1.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var17 + (double)2.0F * var61 + var23);
- } else {
- var46 = -var61 / var17;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var46, var12, var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var61 * var46 + var23);
- }
- }
- } else if (var46 <= var25) {
- var34 = (double)0.0F;
- if (var61 >= (double)0.0F) {
- var46 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var23);
- } else if (-var61 >= var17) {
- var46 = (double)1.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var17 + (double)2.0F * var61 + var23);
- } else {
- var46 = -var61 / var17;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var46, var12, var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var61 * var46 + var23);
- }
- } else {
- double var62 = var15 + var19;
- if (var62 < (double)0.0F) {
- var34 = -var62 / var13;
- var46 = (double)1.0F;
- if (var4 != null) {
- var4.scaleAdd(var34, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var62 * var34 + var17 + (double)2.0F * var61 + var23);
- } else {
- var34 = (double)0.0F;
- if (var61 >= (double)0.0F) {
- var46 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var23);
- } else if (-var61 >= var17) {
- var46 = (double)1.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var17 + (double)2.0F * var61 + var23);
- } else {
- var46 = -var61 / var17;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var46, var12, var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var46;
- }
-
- return DIST(var61 * var46 + var23);
- }
- }
- }
- } else if (var15 > (double)0.0F) {
- double var45 = (double)0.0F;
- if (var19 >= (double)0.0F) {
- double var33 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var33;
- var6[1] = var45;
- }
-
- return DIST(var23);
- } else {
- double var32 = -var19 / var13;
- if (var4 != null) {
- var4.scaleAdd(var32, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var32;
- var6[1] = var45;
- }
-
- return DIST(var19 * var32 + var23);
- }
- } else {
- double var21 = var12.dot(var11);
- double var9 = (double)1.0F;
- double var27 = var15 + var19;
- if (var27 >= (double)0.0F) {
- double var31 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var9;
- }
-
- return DIST(var17 + (double)2.0F * var21 + var23);
- } else {
- double var7 = -var27 / var13;
- if (var4 != null) {
- var4.scaleAdd(var7, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var7;
- var6[1] = var9;
- }
-
- return DIST(var27 * var7 + var17 + (double)2.0F * var21 + var23);
- }
- }
- }
-
- public static double rayToRay(Point3d var0, Vector3d var1, Point3d var2, Vector3d var3) {
- return rayToRay(var0, var1, var2, var3, (Point3d)null, (Point3d)null, (double[])null);
- }
-
- public static double rayToRay(Point3d var0, Vector3d var1, Point3d var2, Vector3d var3, Point3d var4, Point3d var5, double[] var6) {
- Vector3d var11 = new Vector3d();
- var11.sub(var0, var2);
- double var12 = var1.dot(var1);
- double var14 = -var1.dot(var3);
- double var16 = var3.dot(var3);
- double var18 = var1.dot(var11);
- double var22 = var11.dot(var11);
- double var24 = Math.abs(var12 * var16 - var14 * var14);
- if (var24 >= 1.0E-5) {
- double var48 = -var3.dot(var11);
- double var31 = var14 * var48 - var16 * var18;
- double var40 = var14 * var18 - var12 * var48;
- if (var31 >= (double)0.0F) {
- if (var40 >= (double)0.0F) {
- double var26 = (double)1.0F / var24;
- var31 *= var26;
- var40 *= var26;
- if (var4 != null) {
- var4.scaleAdd(var31, var1, var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var40, var3, var2);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var40;
- }
-
- return DIST(var31 * (var12 * var31 + var14 * var40 + (double)2.0F * var18) + var40 * (var14 * var31 + var16 * var40 + (double)2.0F * var48) + var22);
- } else {
- var40 = (double)0.0F;
- if (var18 >= (double)0.0F) {
- var31 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var40;
- }
-
- return DIST(var22);
- } else {
- var31 = -var18 / var12;
- if (var4 != null) {
- var4.scaleAdd(var31, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var40;
- }
-
- return DIST(var18 * var31 + var22);
- }
- }
- } else if (var40 >= (double)0.0F) {
- var31 = (double)0.0F;
- if (var48 >= (double)0.0F) {
- var40 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var40;
- }
-
- return DIST(var22);
- } else {
- var40 = -var48 / var16;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var40, var3, var2);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var40;
- }
-
- return DIST(var48 * var40 + var22);
- }
- } else if (var18 < (double)0.0F) {
- var31 = -var18 / var12;
- var40 = (double)0.0F;
- if (var4 != null) {
- var4.scaleAdd(var31, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var40;
- }
-
- return DIST(var18 * var31 + var22);
- } else {
- var31 = (double)0.0F;
- if (var48 >= (double)0.0F) {
- var40 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var40;
- }
-
- return DIST(var22);
- } else {
- var40 = -var48 / var16;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var40, var3, var2);
- }
-
- if (var6 != null) {
- var6[0] = var31;
- var6[1] = var40;
- }
-
- return DIST(var48 * var40 + var22);
- }
- }
- } else if (var14 > (double)0.0F) {
- double var39 = (double)0.0F;
- if (var18 >= (double)0.0F) {
- double var30 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var30;
- var6[1] = var39;
- }
-
- return DIST(var22);
- } else {
- double var29 = -var18 / var12;
- if (var4 != null) {
- var4.scaleAdd(var29, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var29;
- var6[1] = var39;
- }
-
- return DIST(var18 * var29 + var22);
- }
- } else if (var18 >= (double)0.0F) {
- double var20 = var3.dot(var11);
- double var28 = (double)0.0F;
- double var38 = -var20 / var16;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var38, var3, var2);
- }
-
- if (var6 != null) {
- var6[0] = var28;
- var6[1] = var38;
- }
-
- return DIST(var20 * var38 + var22);
- } else {
- double var7 = -var18 / var12;
- double var9 = (double)0.0F;
- if (var4 != null) {
- var4.scaleAdd(var7, var1, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var7;
- var6[1] = var9;
- }
-
- return DIST(var18 * var7 + var22);
- }
- }
-
- public static double pointToRay(Point3d var0, Point3d var1, Vector3d var2) {
- return pointToRay(var0, var1, var2, (Point3d)null, (double[])null);
- }
-
- public static double pointToRay(Point3d var0, Point3d var1, Vector3d var2, Point3d var3, double[] var4) {
- Vector3d var7 = new Vector3d();
- var7.sub(var0, var1);
- double var5 = var2.dot(var7);
- if (var5 <= (double)0.0F) {
- var5 = (double)0.0F;
- if (var3 != null) {
- var3.set(var1);
- }
-
- if (var4 != null) {
- var4[0] = var5;
- }
- } else {
- var5 /= var2.dot(var2);
- var7.scaleAdd(-var5, var2, var7);
- if (var3 != null) {
- var3.scaleAdd(var5, var2, var1);
- }
-
- if (var4 != null) {
- var4[0] = var5;
- }
- }
-
- return var7.dot(var7);
- }
-
- public static double pointToSegment(Point3d var0, Point3d var1, Point3d var2) {
- return pointToSegment(var0, var1, var2, (Point3d)null, (double[])null);
- }
-
- public static double pointToSegment(Point3d var0, Point3d var1, Point3d var2, Point3d var3, double[] var4) {
- Vector3d var7 = new Vector3d();
- var7.sub(var2, var1);
- Vector3d var8 = new Vector3d();
- var8.sub(var0, var1);
- double var5 = var7.dot(var8);
- if (var5 <= (double)0.0F) {
- var5 = (double)0.0F;
- if (var3 != null) {
- var3.set(var1);
- }
-
- if (var4 != null) {
- var4[0] = var5;
- }
- } else {
- double var9 = var7.dot(var7);
- if (var5 >= var9) {
- var5 = (double)1.0F;
- var8.sub(var7);
- if (var3 != null) {
- var3.set(var2);
- }
-
- if (var4 != null) {
- var4[0] = var5;
- }
- } else {
- var5 /= var9;
- var8.scaleAdd(-var5, var7, var8);
- if (var3 != null) {
- var3.scaleAdd(var5, var7, var1);
- }
-
- if (var4 != null) {
- var4[0] = var5;
- }
- }
- }
-
- return var8.dot(var8);
- }
-
- public static double segmentToSegment(Point3d var0, Point3d var1, Point3d var2, Point3d var3) {
- return segmentToSegment(var0, var1, var2, var3, (Point3d)null, (Point3d)null, (double[])null);
- }
-
- public static double segmentToSegment(Point3d var0, Point3d var1, Point3d var2, Point3d var3, Point3d var4, Point3d var5, double[] var6) {
- Vector3d var11 = new Vector3d();
- var11.sub(var0, var2);
- Vector3d var12 = new Vector3d();
- var12.sub(var1, var0);
- Vector3d var13 = new Vector3d();
- var13.sub(var3, var2);
- double var14 = var12.dot(var12);
- double var16 = -var12.dot(var13);
- double var18 = var13.dot(var13);
- double var20 = var12.dot(var11);
- double var24 = var11.dot(var11);
- double var26 = Math.abs(var14 * var18 - var16 * var16);
- if (var26 >= 1.0E-5) {
- double var93 = -var13.dot(var11);
- double var37 = var16 * var93 - var18 * var20;
- double var66 = var16 * var20 - var14 * var93;
- if (var37 >= (double)0.0F) {
- if (var37 <= var26) {
- if (var66 >= (double)0.0F) {
- if (var66 <= var26) {
- double var30 = (double)1.0F / var26;
- var37 *= var30;
- var66 *= var30;
- if (var4 != null) {
- var4.scaleAdd(var37, var12, var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var66, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var37 * (var14 * var37 + var16 * var66 + (double)2.0F * var20) + var66 * (var16 * var37 + var18 * var66 + (double)2.0F * var93) + var24);
- } else {
- var66 = (double)1.0F;
- double var99 = var16 + var20;
- if (var99 >= (double)0.0F) {
- var37 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var18 + (double)2.0F * var93 + var24);
- } else if (-var99 >= var14) {
- var37 = (double)1.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + var18 + var24 + (double)2.0F * (var93 + var99));
- } else {
- var37 = -var99 / var14;
- if (var4 != null) {
- var4.scaleAdd(var37, var12, var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var99 * var37 + var18 + (double)2.0F * var93 + var24);
- }
- }
- } else {
- var66 = (double)0.0F;
- if (var20 >= (double)0.0F) {
- var37 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var24);
- } else if (-var20 >= var14) {
- var37 = (double)1.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + (double)2.0F * var20 + var24);
- } else {
- var37 = -var20 / var14;
- if (var4 != null) {
- var4.scaleAdd(var37, var12, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var20 * var37 + var24);
- }
- }
- } else if (var66 >= (double)0.0F) {
- if (var66 <= var26) {
- var37 = (double)1.0F;
- double var98 = var16 + var93;
- if (var98 >= (double)0.0F) {
- var66 = (double)0.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + (double)2.0F * var20 + var24);
- } else if (-var98 >= var18) {
- var66 = (double)1.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + var18 + var24 + (double)2.0F * (var20 + var98));
- } else {
- var66 = -var98 / var18;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var66, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var98 * var66 + var14 + (double)2.0F * var20 + var24);
- }
- } else {
- double var96 = var16 + var20;
- if (-var96 <= var14) {
- var66 = (double)1.0F;
- if (var96 >= (double)0.0F) {
- var37 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var18 + (double)2.0F * var93 + var24);
- } else {
- var37 = -var96 / var14;
- if (var4 != null) {
- var4.scaleAdd(var37, var12, var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var96 * var37 + var18 + (double)2.0F * var93 + var24);
- }
- } else {
- var37 = (double)1.0F;
- var96 = var16 + var93;
- if (var96 >= (double)0.0F) {
- var66 = (double)0.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + (double)2.0F * var20 + var24);
- } else if (-var96 >= var18) {
- var66 = (double)1.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + var18 + var24 + (double)2.0F * (var20 + var96));
- } else {
- var66 = -var96 / var18;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var66, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var96 * var66 + var14 + (double)2.0F * var20 + var24);
- }
- }
- }
- } else if (-var20 < var14) {
- var66 = (double)0.0F;
- if (var20 >= (double)0.0F) {
- var37 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var24);
- } else {
- var37 = -var20 / var14;
- if (var4 != null) {
- var4.scaleAdd(var37, var12, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var20 * var37 + var24);
- }
- } else {
- var37 = (double)1.0F;
- double var95 = var16 + var93;
- if (var95 >= (double)0.0F) {
- var66 = (double)0.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + (double)2.0F * var20 + var24);
- } else if (-var95 >= var18) {
- var66 = (double)1.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + var18 + var24 + (double)2.0F * (var20 + var95));
- } else {
- var66 = -var95 / var18;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var66, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var95 * var66 + var14 + (double)2.0F * var20 + var24);
- }
- }
- } else if (var66 >= (double)0.0F) {
- if (var66 <= var26) {
- var37 = (double)0.0F;
- if (var93 >= (double)0.0F) {
- var66 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var24);
- } else if (-var93 >= var18) {
- var66 = (double)1.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var18 + (double)2.0F * var93 + var24);
- } else {
- var66 = -var93 / var18;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var66, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var93 * var66 + var24);
- }
- } else {
- double var94 = var16 + var20;
- if (var94 < (double)0.0F) {
- var66 = (double)1.0F;
- if (-var94 >= var14) {
- var37 = (double)1.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + var18 + var24 + (double)2.0F * (var93 + var94));
- } else {
- var37 = -var94 / var14;
- if (var4 != null) {
- var4.scaleAdd(var37, var12, var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var94 * var37 + var18 + (double)2.0F * var93 + var24);
- }
- } else {
- var37 = (double)0.0F;
- if (var93 >= (double)0.0F) {
- var66 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var24);
- } else if (-var93 >= var18) {
- var66 = (double)1.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var18 + (double)2.0F * var93 + var24);
- } else {
- var66 = -var93 / var18;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var66, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var93 * var66 + var24);
- }
- }
- }
- } else if (var20 < (double)0.0F) {
- var66 = (double)0.0F;
- if (-var20 >= var14) {
- var37 = (double)1.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var14 + (double)2.0F * var20 + var24);
- } else {
- var37 = -var20 / var14;
- if (var4 != null) {
- var4.scaleAdd(var37, var12, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var20 * var37 + var24);
- }
- } else {
- var37 = (double)0.0F;
- if (var93 >= (double)0.0F) {
- var66 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var24);
- } else if (-var93 >= var18) {
- var66 = (double)1.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var18 + (double)2.0F * var93 + var24);
- } else {
- var66 = -var93 / var18;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var66, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var37;
- var6[1] = var66;
- }
-
- return DIST(var93 * var66 + var24);
- }
- }
- } else if (var16 > (double)0.0F) {
- if (var20 >= (double)0.0F) {
- double var36 = (double)0.0F;
- double var65 = (double)0.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var36;
- var6[1] = var65;
- }
-
- return DIST(var24);
- } else if (-var20 <= var14) {
- double var35 = -var20 / var14;
- double var64 = (double)0.0F;
- if (var4 != null) {
- var4.scaleAdd(var35, var12, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var35;
- var6[1] = var64;
- }
-
- return DIST(var20 * var35 + var24);
- } else {
- double var92 = -var13.dot(var11);
- double var34 = (double)1.0F;
- double var28 = var14 + var20;
- if (-var28 >= var16) {
- double var63 = (double)1.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var63;
- }
-
- return DIST(var14 + var18 + var24 + (double)2.0F * (var16 + var20 + var92));
- } else {
- double var62 = -var28 / var16;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var62, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var34;
- var6[1] = var62;
- }
-
- return DIST(var14 + (double)2.0F * var20 + var24 + var62 * (var18 * var62 + (double)2.0F * (var16 + var92)));
- }
- }
- } else if (-var20 >= var14) {
- double var33 = (double)1.0F;
- double var61 = (double)0.0F;
- if (var4 != null) {
- var4.set(var1);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var33;
- var6[1] = var61;
- }
-
- return DIST(var14 + (double)2.0F * var20 + var24);
- } else if (var20 <= (double)0.0F) {
- double var32 = -var20 / var14;
- double var60 = (double)0.0F;
- if (var4 != null) {
- var4.scaleAdd(var32, var12, var0);
- }
-
- if (var5 != null) {
- var5.set(var2);
- }
-
- if (var6 != null) {
- var6[0] = var32;
- var6[1] = var60;
- }
-
- return DIST(var20 * var32 + var24);
- } else {
- double var22 = -var13.dot(var11);
- double var7 = (double)0.0F;
- if (var20 >= -var16) {
- double var59 = (double)1.0F;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.set(var3);
- }
-
- if (var6 != null) {
- var6[0] = var7;
- var6[1] = var59;
- }
-
- return DIST(var18 + (double)2.0F * var22 + var24);
- } else {
- double var9 = -var20 / var16;
- if (var4 != null) {
- var4.set(var0);
- }
-
- if (var5 != null) {
- var5.scaleAdd(var9, var13, var2);
- }
-
- if (var6 != null) {
- var6[0] = var7;
- var6[1] = var9;
- }
-
- return DIST(var24 + var9 * ((double)2.0F * var22 + var18 * var9));
- }
- }
- }
- }
-