/** * Determines whether this sphere contains the specified point. * @param p the point. * @return true, if this sphere contains the point; false, otherwise. */ public boolean contains(Point3 p) { return contains(p.x,p.y,p.z); }
public void testSphere() { BoundingSphere bs = new BoundingSphere(); bs.expandBy(0,0,0); bs.expandBy(1,1,1); double a = 10.0*DBL_EPSILON; double b = 1.0-a; assertTrue(bs.contains(new Point3(a,a,a))); assertTrue(bs.contains(new Point3(a,a,b))); assertTrue(bs.contains(new Point3(a,b,a))); assertTrue(bs.contains(new Point3(a,b,b))); assertTrue(bs.contains(new Point3(b,a,a))); assertTrue(bs.contains(new Point3(b,a,b))); assertTrue(bs.contains(new Point3(b,b,a))); assertTrue(bs.contains(new Point3(b,b,b))); a = -10.0*DBL_EPSILON; b = 1.0-a; assertTrue(!bs.contains(new Point3(a,a,a))); assertTrue(!bs.contains(new Point3(a,a,b))); assertTrue(!bs.contains(new Point3(a,b,a))); assertTrue(!bs.contains(new Point3(a,b,b))); assertTrue(!bs.contains(new Point3(b,a,a))); assertTrue(!bs.contains(new Point3(b,a,b))); assertTrue(!bs.contains(new Point3(b,b,a))); assertTrue(!bs.contains(new Point3(b,b,b))); }
public void testBoxExpand() { int ntrial = 100; for (int itrial=0; itrial<ntrial; ++itrial) { BoundingBox bb = new BoundingBox(); assertTrue(bb.isEmpty()); int nexpand = 100; for (int iexpand=0; iexpand<nexpand; ++iexpand) { Point3 c = randomPoint3(); double r = randomDouble(); BoundingSphere bs = new BoundingSphere(c,r); bb.expandBy(bs); assertTrue(!bb.isEmpty()); int npoint=100; for (int ipoint=0; ipoint<npoint; ++ipoint) { Point3 p = randomPoint3(); if (bs.contains(p)) assertTrue(bb.contains(p)); } } } }
public void testSphereExpand() { int ntrial = 100; for (int itrial=0; itrial<ntrial; ++itrial) { BoundingSphere bs = new BoundingSphere(); assertTrue(bs.isEmpty()); int nexpand = 100; for (int iexpand=0; iexpand<nexpand; ++iexpand) { Point3 p = randomPoint3(); Point3 q = randomPoint3(); BoundingBox bb = new BoundingBox(p,q); if (randomDouble()>0.5) { bs.expandBy(bb); } else { bs.expandRadiusBy(bb); } assertTrue(!bs.isEmpty()); int npoint=100; for (int ipoint=0; ipoint<npoint; ++ipoint) { Point3 r = randomPoint3(); if (bb.contains(r)) assertTrue(bs.contains(r)); } } } }