From: megacz Date: Sat, 28 Feb 2009 23:11:17 +0000 (-0800) Subject: add marchingCubes() demo to Main.java X-Git-Url: http://git.megacz.com/?p=anneal.git;a=commitdiff_plain;h=2d6566bcf01b3853392ec13863671282f825444f;ds=sidebyside add marchingCubes() demo to Main.java --- diff --git a/src/edu/berkeley/qfat/Main.java b/src/edu/berkeley/qfat/Main.java index 3d0b0e4..bec0cc2 100644 --- a/src/edu/berkeley/qfat/Main.java +++ b/src/edu/berkeley/qfat/Main.java @@ -9,6 +9,7 @@ import java.util.*; 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; @@ -291,6 +292,25 @@ public class Main extends InteractiveMeshViewer { public void hit() {} } + public void marchingCubes() { + Mesh mesh = new Mesh(false); + mesh.coalesce = true; + MarchingCubes.march(new SampledField() { + public float getSample(Point p) { + double x = p.x; + double y = p.y; + double z = p.z; + x-=0.7; + y-=0.7; + z-=0.7; + return (float)Math.sqrt(x*x+y*y+z*z); + } + }, + 0.8, 20, 0.1, mesh); + setTile(mesh); + //fixupTile(); + } + public void hexBrick(boolean offset, boolean rotated) { setTile(new Mesh(false)); float width = (float)0.8; @@ -918,6 +938,9 @@ public class Main extends InteractiveMeshViewer { }; fixupTile(); }}}); + tileMenu.add(new MyMenuItem("Marching Cubes") { public void hit() { + marchingCubes(); + }}); // Finally, add all the menus to the menu bar. add(tileMenu);