/*
   Write out a .dot file for processing with GraphViz.  Doesn't contain any of the
   generated faces - this is only what we were using as input.
 */

static void save_to_graphviz(Model *m) {
  edgeidx e;
  vertexidx p;
  FILE *dotfile;

  // output the edges to graphviz for 2D visualization:
  dotfile = fopen("model.dot", "w");  // cat model.dot | graph-easy --from=dot --as_ascii > model.txt
  if (dotfile) {
    fprintf(dotfile, "graph model {\n  node[shape=circle];\n");
    for (p = 0; p < m->max_points; p++) fprintf(dotfile, "  p%d\n", p);
    for (e = 0; e < m->max_edges; e++) {
      fprintf(stderr, "vertex%d (%d,%d,%d) <-edge%d-> vertex%d (%d,%d,%d)\n",
              m->edge[e].from, m->vertex[m->edge[e].from].coord[0],
              m->vertex[m->edge[e].from].coord[1], m->vertex[m->edge[e].from].coord[2],
              e,
              m->edge[e].to, m->vertex[m->edge[e].to].coord[0],
              m->vertex[m->edge[e].to].coord[1], m->vertex[m->edge[e].to].coord[2]);
      fprintf(dotfile, "  p%d -- p%d[label=edge%d]\n", m->edge[e].from, m->edge[e].to, e);
    }
    fprintf(dotfile, "}\n");
    fclose(dotfile);
  }
}
