chiark / gitweb /
 author Ian Jackson Sun, 17 Feb 2008 19:43:37 +0000 (19:43 +0000) committer Ian Jackson Sun, 17 Feb 2008 19:43:37 +0000 (19:43 +0000)
 output.c patch | blob | history

index e37aa7c..95a26c3 100644 (file)
--- a/output.c
+++ b/output.c
*   - translate the coordinates so they're all positive
*/
/*
+ *  ./output-64 <dense-64.cfm 0.1 50 >t.stl
+ *  meshlab t.stl
+ */
+/*
* Re STL, see:
*  http://www.ennex.com/~fabbers/StL.asp
*  http://en.wikipedia.org/wiki/STL_%28file_format%29
@@ -149,6 +153,10 @@ static double scale;
static void outfacet(int rev, const OutVertex *a,
const OutVertex *b, const OutVertex *c);

+typedef int int_map(int);
+static int defs_aroundmap_swap(int around) { return NDEF-around; }
+static int int_identity_function(int i) { return i; }
+
static void normalise_thick(double a[D3]) {
/* multiplies a by a scalar so that its magnitude is thick */
int k;
@@ -262,8 +270,10 @@ static void compute_outvertices(void) {

+    int_map *around_map= y ? int_identity_function : defs_aroundmap_swap;
+
for (around=0; around<NDEF; around++) {
-      double angle= around * M_PI / (NDEF-1);
+      double angle= around_map(around) * M_PI / (NDEF-1);
K Ok(ovDEF[x][!!y][around],
in[v0][k] +
@@ -297,15 +307,13 @@ static void outfacets_around(int reverse, OutVertex *middle,
}
}

-static int defs_aroundmap_swap(int around) { return NDEF-around; }
-static int int_identity_function(int i) { return i; }
-
static void outfacets(void) {
int v0,e,side,aroung, k;

FOR_VERTEX(v0) {
OutVertex *defs=0, *defs1=0;
-    int (*defs1aroundmap)(int)=0, rimy=-1;
+    int rimy=-1;
+    int_map *defs1aroundmap= 0;
if (RIM_VERTEX_P(v0)) {
OutVertex *gs;