private static Point4d findPivotPoint(Point4d a4, Point4d b4) { Vector3 a = new Vector3(); Vector3 b = new Vector3(); a = Point4d.projectAndGetVect3(a4); b = Point4d.projectAndGetVect3(b4); Vector3 a_minus_b = new Vector3(a.x - b.x, a.y - b.y, a.z - b.z); float p = HyperbolicMath.dotProduct(a, a_minus_b); float q = HyperbolicMath.dotProduct(b, a_minus_b); float r = HyperbolicMath.dotProduct(a_minus_b, a_minus_b); return(new Point4d(p * b.x - q * a.x, p * b.y - q * a.y, p * b.z - q * a.z, r)); }