#include <stdio.h>
#include <stdlib.h>
-#ifdef HAVE_COCOA
-# include <OpenGL/gl.h>
-#else
-# include <GL/gl.h>
-#endif
-
#include "yarandom.h"
#include "stonerview.h"
void
-init_move(stonerview_state *st)
+stonerview_init_move(stonerview_state *st)
{
/*st->theta = new_osc_linear(
new_osc_wrap(0, 36000, 25),
new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 17)),
new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 7)));
- move_increment(st);
-}
-
-void final_move(stonerview_state *st)
-{
+ stonerview_move_increment(st);
}
/* Set up the list of polygon data for rendering. */
-void move_increment(stonerview_state *st)
+void
+stonerview_move_increment(stonerview_state *st)
{
int ix, val;
-/* GLfloat fval; */
-/* GLfloat recipels = (1.0 / (GLfloat)st->num_els); */
- GLfloat pt[2];
- GLfloat ptrad, pttheta;
+/* double fval; */
+/* double recipels = (1.0 / (double)st->num_els); */
+ double pt[2];
+ double ptrad, pttheta;
for (ix=0; ix<st->num_els; ix++) {
- elem_t *el = &st->elist[ix];
+ stonerview_elem_t *el = &st->elist[ix];
/* Grab r and theta... */
val = osc_get(st, st->theta, ix);
pttheta = val * (0.01 * M_PI / 180.0);
- ptrad = (GLfloat)osc_get(st, st->rad, ix) * 0.001;
+ ptrad = (double)osc_get(st, st->rad, ix) * 0.001;
/* And convert them to x,y coordinates. */
pt[0] = ptrad * cos(pttheta);
pt[1] = ptrad * sin(pttheta);
/* Set x,y,z. */
el->pos[0] = pt[0];
el->pos[1] = pt[1];
- el->pos[2] = (GLfloat)osc_get(st, st->alti, ix) * 0.001;
+ el->pos[2] = (double)osc_get(st, st->alti, ix) * 0.001;
/* Set which way the square is rotated. This is fixed for now, although
it would be trivial to make the squares spin as they revolve. */
converting an HSV value to RGB, where S and V are always 1. */
val = osc_get(st, st->color, ix);
if (val < 1200) {
- el->col[0] = ((GLfloat)val / 1200.0);
+ el->col[0] = ((double)val / 1200.0);
el->col[1] = 0;
- el->col[2] = (GLfloat)(1200 - val) / 1200.0;
+ el->col[2] = (double)(1200 - val) / 1200.0;
}
else if (val < 2400) {
- el->col[0] = (GLfloat)(2400 - val) / 1200.0;
- el->col[1] = ((GLfloat)(val - 1200) / 1200.0);
+ el->col[0] = (double)(2400 - val) / 1200.0;
+ el->col[1] = ((double)(val - 1200) / 1200.0);
el->col[2] = 0;
}
else {
el->col[0] = 0;
- el->col[1] = (GLfloat)(3600 - val) / 1200.0;
- el->col[2] = ((GLfloat)(val - 2400) / 1200.0);
+ el->col[1] = (double)(3600 - val) / 1200.0;
+ el->col[2] = ((double)(val - 2400) / 1200.0);
}
el->col[3] = 1.0;
}