add marchingCubes() demo to Main.java
authormegacz <adam@megacz.com>
Sat, 28 Feb 2009 23:11:17 +0000 (15:11 -0800)
committermegacz <adam@megacz.com>
Sat, 28 Feb 2009 23:11:17 +0000 (15:11 -0800)
src/edu/berkeley/qfat/Main.java

index 3d0b0e4..bec0cc2 100644 (file)
@@ -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);