bool test_sphere() { LEVELSET<GRID<TV> >* implicit_object = createTriMeshAndLevelSet("/Users/jingweihuang/Desktop/projects/levelset/Resources/models/unit.obj"); TV_INT indd; TV xx; for (int i = 1; i <= implicit_object->phi.dim(1); ++i) { for (int j = 1; j <= implicit_object->phi.dim(2); ++j) { for (int k = 1; k <= implicit_object->phi.dim(3); ++k) { TV x = implicit_object->grid.X(TV_INT(i,j,k)); TV normal = x.Normal(); pair<float, TV> intersection = implicit_object->Intersect(x); if (intersection.first > 0) continue; double angle = acos(intersection.second.Dot_Product(normal)) / 3.141592654 * 180; if (angle > 15 && x.Magnitude() > 0.2 && x.Magnitude() < 0.8) { return false; } } } } return true; }