#include "pv.h" void vrml_begin(FILE * vout) { #ifdef VRML2 vrml_putline(0, vout, "#VRML V2.0 utf8"); #else vrml_putline(0, vout, "#VRML V1.0 ascii"); vrml_putline(1, vout, "Separator {"); vrml_putline(1, vout, "ShapeHints {"); vrml_putline(0, vout, "vertexOrdering COUNTERCLOCKWISE"); vrml_putline(0, vout, "faceType CONVEX"); vrml_putline(0, vout, "creaseAngle 0.5"); vrml_putline(-1, vout, "}"); #endif } void vrml_end(FILE * vout) { #ifdef VRML2 #else vrml_putline(-1, vout, "}"); #endif } /* To make it easier to read - uses tabs to increase or decrease the level of indentation. For better storage, just comment out the tab printing. */ void vrml_putline(int indent, FILE * vout, char *str) { static int ind = 0; int i; if (indent < 0) ind += indent; /* pre-decrement */ for (i = 0; i < ind; i++) fprintf(vout, "\t"); fprintf(vout, "%s\n", str); if (indent > 0) ind += indent; /* post-increment */ if (ind < 0) ind = 0; }