import edu.berkeley.qfat.bind.*;
import edu.berkeley.qfat.geom.*;
import edu.berkeley.qfat.stl.*;
+import edu.berkeley.qfat.voxel.*;
import edu.berkeley.qfat.geom.Point;
import edu.berkeley.qfat.geom.Polygon;
public void hit() {}
}
+ public void marchingCubes() {
+ Mesh mesh = new Mesh(false);
+ mesh.coalesce = true;
+ MarchingCubes.march(new VoxelData() {
+ float radius = 1.0f;
+ public float getMaxX() { return 1.0f; }
+ public float getMinX() { return -1.0f; }
+ public int getNumSamplesX() { return 10; }
+ public float getMaxY() { return 1.0f; }
+ public float getMinY() { return -1.0f; }
+ public int getNumSamplesY() { return 10; }
+ public float getMaxZ() { return 1.0f; }
+ public float getMinZ() { return -1.0f; }
+ public int getNumSamplesZ() { return 10; }
+ public float getSample(Point p) {
+ double x = p.x;
+ double y = p.y;
+ double z = p.z;
+ return (float)(radius-Math.sqrt(x*x+y*y+z*z));
+ }
+ },
+ mesh);
+ setTile(mesh);
+ //fixupTile();
+ }
+
public void hexBrick(boolean offset, boolean rotated) {
setTile(new Mesh(false));
float width = (float)0.8;
};
fixupTile();
}}});
+ tileMenu.add(new MyMenuItem("Marching Cubes") { public void hit() {
+ marchingCubes();
+ }});
// Finally, add all the menus to the menu bar.
add(tileMenu);