private void checkPlaneToWorld(PlaneNormal3D_F64 planeN) { planeN.getN().normalize(); PlaneGeneral3D_F64 planeG = UtilPlane3D_F64.convert(planeN, null); List<Point2D_F64> points2D = UtilPoint2D_F64.random(-2, 2, 100, rand); Se3_F64 planeToWorld = UtilPlane3D_F64.planeToWorld(planeG, null); Point3D_F64 p3 = new Point3D_F64(); Point3D_F64 l3 = new Point3D_F64(); Point3D_F64 k3 = new Point3D_F64(); for (Point2D_F64 p : points2D) { p3.set(p.x, p.y, 0); SePointOps_F64.transform(planeToWorld, p3, l3); // see if it created a valid transform SePointOps_F64.transformReverse(planeToWorld, l3, k3); assertEquals(0, k3.distance(p3), GrlConstants.DOUBLE_TEST_TOL); assertEquals(0, UtilPlane3D_F64.evaluate(planeG, l3), GrlConstants.DOUBLE_TEST_TOL); } }