void grid3d_update (grid3d * g, float angle, float *vals, float dist) { int i; float cosa; float sina; surf3d *s = &(g->surf); v3d cam = s->center; cam.z += dist; SINCOS ((angle / 4.3f), sina, cosa); cam.y += sina * 2.0f; SINCOS (angle, sina, cosa); if (g->mode == 0) { if (vals) for (i = 0; i < g->defx; i++) s->vertex[i].y = s->vertex[i].y * 0.2 + vals[i] * 0.8; for (i = g->defx; i < s->nbvertex; i++) { s->vertex[i].y *= 0.255f; s->vertex[i].y += (s->vertex[i - g->defx].y * 0.777f); } } for (i = 0; i < s->nbvertex; i++) { Y_ROTATE_V3D (s->vertex[i], s->svertex[i], cosa, sina); TRANSLATE_V3D (cam, s->svertex[i]); } }
void surf3d_rotate (surf3d *s, float angle) { int i; float cosa; float sina; SINCOS(angle,sina,cosa); for (i=0;i<s->nbvertex;i++) { Y_ROTATE_V3D(s->vertex[i],s->svertex[i],cosa,sina); } }