diff options
| author | Simon Rettberg | 2024-09-06 14:42:37 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2024-09-06 14:42:37 +0200 |
| commit | badef32037f52f79abc1f1440b786cd71afdf270 (patch) | |
| tree | 412b792d4cab4a7a110db82fcf74fe8a1ac55ec1 /hacks/glx/stonerview-move.c | |
| parent | Delete pre-6.00 files (diff) | |
| download | xscreensaver-master.tar.gz xscreensaver-master.tar.xz xscreensaver-master.zip | |
Diffstat (limited to 'hacks/glx/stonerview-move.c')
| -rw-r--r-- | hacks/glx/stonerview-move.c | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/hacks/glx/stonerview-move.c b/hacks/glx/stonerview-move.c deleted file mode 100644 index 8639f10..0000000 --- a/hacks/glx/stonerview-move.c +++ /dev/null @@ -1,147 +0,0 @@ -/* StonerView: An eccentric visual toy. - Copyright 1998-2001 by Andrew Plotkin (erkyrath@eblong.com) - - Permission to use, copy, modify, distribute, and sell this software and its - documentation for any purpose is hereby granted without fee, provided that - the above copyright notice appear in all copies and that both that - copyright notice and this permission notice appear in supporting - documentation. No representations are made about the suitability of this - software for any purpose. It is provided "as is" without express or - implied warranty. -*/ - -#include <math.h> - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include <stdio.h> -#include <stdlib.h> - -#include "yarandom.h" -#include "stonerview.h" - - -void -stonerview_init_move(stonerview_state *st) -{ - /*st->theta = new_osc_linear( - new_osc_wrap(0, 36000, 25), - new_osc_constant(2000));*/ - - st->theta = new_osc_linear(st, - new_osc_velowrap(st, 0, 36000, new_osc_multiplex(st, - new_osc_randphaser(st, 300, 600), - new_osc_constant(st, 25), - new_osc_constant(st, 75), - new_osc_constant(st, 50), - new_osc_constant(st, 100)) - ), - - new_osc_multiplex(st, - new_osc_buffer(st, new_osc_randphaser(st, 300, 600)), - new_osc_buffer(st, new_osc_wrap(st, 0, 36000, 10)), - new_osc_buffer(st, new_osc_wrap(st, 0, 36000, -8)), - new_osc_wrap(st, 0, 36000, 4), - new_osc_buffer(st, new_osc_bounce(st, -2000, 2000, 20)) - ) - ); - - st->rad = new_osc_buffer(st, new_osc_multiplex(st, - new_osc_randphaser(st, 250, 500), - new_osc_bounce(st, -1000, 1000, 10), - new_osc_bounce(st, 200, 1000, -15), - new_osc_bounce(st, 400, 1000, 10), - new_osc_bounce(st, -1000, 1000, -20))); - /*st->rad = new_osc_constant(st, 1000);*/ - - st->alti = new_osc_linear(st, - new_osc_constant(st, -1000), - new_osc_constant(st, 2000 / st->num_els)); - - /*st->alti = new_osc_multiplex( - new_osc_buffer(st, new_osc_randphaser(60, 270)), - new_osc_buffer(st, new_osc_bounce(-1000, 1000, 48)), - new_osc_linear( - new_osc_constant(-1000), - new_osc_constant(2000 / st->num_els)), - new_osc_buffer(st, new_osc_bounce(-1000, 1000, 27)), - new_osc_linear( - new_osc_constant(-1000), - new_osc_constant(2000 / st->num_els)) - );*/ - - /*st->color = new_osc_buffer(st, new_osc_randphaser(5, 35));*/ - - /*st->color = new_osc_buffer(st, new_osc_multiplex( - new_osc_randphaser(25, 70), - new_osc_wrap(0, 3600, 20), - new_osc_wrap(0, 3600, 30), - new_osc_wrap(0, 3600, -20), - new_osc_wrap(0, 3600, 10)));*/ - st->color = new_osc_multiplex(st, - new_osc_buffer(st, new_osc_randphaser(st, 150, 300)), - new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 13)), - new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 32)), - new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 17)), - new_osc_buffer(st, new_osc_wrap(st, 0, 3600, 7))); - - stonerview_move_increment(st); -} - -/* Set up the list of polygon data for rendering. */ -void -stonerview_move_increment(stonerview_state *st) -{ - int ix, val; -/* double fval; */ -/* double recipels = (1.0 / (double)st->num_els); */ - double pt[2]; - double ptrad, pttheta; - - for (ix=0; ix<st->num_els; 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 = (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] = (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. */ - el->vervec[0] = 0.11; - el->vervec[1] = 0.0; - - /* Grab the color, and convert it to RGB values. Technically, we're - 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] = ((double)val / 1200.0); - el->col[1] = 0; - el->col[2] = (double)(1200 - val) / 1200.0; - } - else if (val < 2400) { - 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] = (double)(3600 - val) / 1200.0; - el->col[2] = ((double)(val - 2400) / 1200.0); - } - el->col[3] = 1.0; - } - - osc_increment(st); -} - |
