chiark / gitweb /
merge
[moebius2.git] / output.c
index 7a126289ea1331932cd64349f33f24150902398c..f64b22cedc1623cc6769c5b5ad57580a0f00bd8c 100644 (file)
--- a/output.c
+++ b/output.c
@@ -12,6 +12,7 @@
  */
 /*
  *  ./output-64 <dense-64.cfm 0.1 50 >t.stl
+ *  ./output-125 <best-125.cfm >t.stl 0.1 50
  *  meshlab t.stl
  */
 /*
@@ -196,7 +197,7 @@ static double outvertex_coord_check(double value) {
 static void compute_outvertices(void) {
   int v0,k,side,ab,x,y;
 
-  FOR_VERTEX(v0) {
+  FOR_VERTEX(v0, INNER) {
     for (ab=0; ab<2; ab++) {
       int v1= EDGE_END2(v0, ab?5:0);
       int v2= EDGE_END2(v0, ab?0:1);
@@ -210,7 +211,7 @@ static void compute_outvertices(void) {
       K Ok(ovAB[v0][ab][1], centroid[k] - normal[k]);
     }
   }
-  FOR_VERTEX(v0) {
+  FOR_VERTEX(v0, INNER) {
     int vw= EDGE_END2(v0,3);
     int vnw= EDGE_END2(v0,2);
     int vsw= EDGE_END2(v0,4);
@@ -233,7 +234,7 @@ static void compute_outvertices(void) {
       K Ok(ovC[v0][side], in[v0][k] + adjust[k]);
     }
   }
-  FOR_RIM_VERTEX(y,x,v0) {
+  FOR_RIM_VERTEX(y,x,v0, INNER) {
     double rim[D3], inner[D3], radius_cos[D3], radius_sin[D3];
     int vback, vfwd, around;
 
@@ -274,7 +275,7 @@ static void compute_outvertices(void) {
           sin(angle) * radius_sin[k]);
     }
   }
-  FOR_RIM_VERTEX(y,x,v0) {
+  FOR_RIM_VERTEX(y,x,v0, INNER) {
     int vfwd= EDGE_END2(v0,0);
     assert(vfwd >= 0);
     int aroung;
@@ -314,7 +315,7 @@ static OutVertex *invertex2outvertexcd(v0,side) {
 static void outfacets(void) {
   int v0,e,side,aroung;
   
-  FOR_VERTEX(v0) {
+  FOR_VERTEX(v0, INNER) {
     OutVertex *defs=0, *defs1=0;
     int rimy=-1;
     int_map *defs1aroundmap= 0;
@@ -373,8 +374,11 @@ static void blank_outvertices(void) {
 
 static void transform_outvertex_array(int n, OutVertex ovX[n]) {
   int i, k;
-  for (i=0; i<n; i++)
+  for (i=0; i<n; i++) {
+    ovX[i].p[0] *= -1;
+    ovX[i].p[1] *= -1;
     K ovX[i].p[k] *= scale;
+  }
   /*
    *   double min[D3]= thick;
    *           if (ovX[i].p[k] < min)
@@ -494,6 +498,7 @@ int main(int argc, const char *const *argv) {
   errno= 0; r= fread(&in,sizeof(in),1,stdin);
   if (r!=1) diee("fread");
 
+  mgraph_prepare();
   blank_outvertices();
   compute_outvertices();
   transform_outvertices();