Example #1
0
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;
}