checkpoint
[anneal.git] / src / edu / berkeley / qfat / Mesh.java
index 926a5b7..cca7321 100644 (file)
@@ -1,6 +1,7 @@
 package edu.berkeley.qfat;
 import java.awt.*;
 import java.util.*;
+import java.io.*;
 import java.awt.event.*;
 import javax.swing.*;
 import javax.media.opengl.*;
@@ -1171,4 +1172,24 @@ public class Mesh implements Iterable<Mesh.T> {
             super.glVertices(gl, m);
         }
     }
+
+    // Dump /////////////////////////////////////////////////////////////////////////////
+
+    public void dump(OutputStream os) throws IOException {
+        PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
+        pw.println("solid dump");
+        for(Mesh.T t : this) {
+            Vec normal = t.norm();
+            pw.println("facet normal " + normal.x + " " + normal.y + " " + normal.z);
+            pw.println("  outer loop");
+            for(Mesh.Vertex v : new Mesh.Vertex[] { t.v1(), t.v2(), t.v3() }) {
+                pw.println("    vertex " + v.p.x + " " + v.p.y + " " + v.p.z);
+            }
+            pw.println("  endloop");
+            pw.println("endfacet");
+        }
+        pw.println("endsolid dump");
+        pw.flush();
+    }
+
 }