--- ray/src/gen/genclock.c 1995/05/25 16:34:47 2.1 +++ ray/src/gen/genclock.c 2003/02/22 02:07:23 2.4 @@ -1,23 +1,17 @@ -/* Copyright (c) 1995 Regents of the University of California */ - #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static const char RCSid[] = "$Id: genclock.c,v 2.4 2003/02/22 02:07:23 greg Exp $"; #endif - /* * Generate an analog clock. */ #include +#include #include #include #define PI 3.14159265358979323846 -#ifdef DCL_ATOF -extern double atof(); -#endif - #define FACEBITMAP "clockface.hex" char myfacemat[] = "white_plastic"; @@ -107,7 +101,7 @@ genclock() /* put out clock body */ printf("\n%s ring %s.case_front\n", casemat, name); printf("0\n0\n8\t.12\t0\t0\n\t1\t0\t0\n\t1\t1.1\n"); printf("\n%s cylinder %s.case_inner\n", casemat, name); - printf("0\n0\n7\t.05\t0\t0\n\t.15\t0\t0\n\t1\n"); + printf("0\n0\n7\t.05\t0\t0\n\t.12\t0\t0\n\t1\n"); printf("\nclock_crystal ring %s.crystal\n", name); printf("0\n0\n8\t.10\t0\t0\n\t1\t0\t0\n\t0\t1\n"); printf("\nclock_face_paint ring %s.face\n", name); @@ -125,15 +119,15 @@ double hour; printf("\nhand_paint polygon %s.hour_hand\n", name); printf("0\n0\n12\n"); - rvert(.06, -.03, -.03, hrot); - rvert(.06, .03, -.03, hrot); + rvert(.06, -.03, -.06, hrot); + rvert(.06, .03, -.06, hrot); rvert(.06, .025, .5, hrot); rvert(.06, -.025, .5, hrot); printf("\nhand_paint polygon %s.minute_hand\n", name); printf("0\n0\n12\n"); - rvert(.07, -.02, -.04, mrot); - rvert(.07, .02, -.04, mrot); + rvert(.07, -.02, -.1, mrot); + rvert(.07, .02, -.1, mrot); rvert(.07, .01, .9, mrot); rvert(.07, -.01, .9, mrot); } @@ -142,9 +136,12 @@ double hour; rvert(x, y, z, ang) /* print rotated vertex */ double x, y, z, ang; { - double sa, ca; + static double lastang=0, sa=0, ca=1; - sa = sin(-ang); - ca = cos(-ang); + if (ang != lastang) { + sa = sin(-ang); + ca = cos(-ang); + lastang = ang; + } printf("%15.12g %15.12g %15.12g\n", x, y*ca-z*sa, z*ca+y*sa); }