summaryrefslogtreecommitdiff
path: root/modules/stars/starslib.c
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@gnugeneration.com>2017-01-18 17:14:52 -0800
committerVito Caputo <vcaputo@gnugeneration.com>2017-01-18 17:31:44 -0800
commit524db0cf19648e3c7c78d3e73103b7a0bdcd6bfc (patch)
tree6fd682629904a210927797c92d956c208666b03a /modules/stars/starslib.c
parentee2073d4e411555aba878277131b56f7eb562c84 (diff)
*: move source into src/ subdir
Restoring some organizational sanity since adopting autotools.
Diffstat (limited to 'modules/stars/starslib.c')
-rw-r--r--modules/stars/starslib.c133
1 files changed, 0 insertions, 133 deletions
diff --git a/modules/stars/starslib.c b/modules/stars/starslib.c
deleted file mode 100644
index 9d43062..0000000
--- a/modules/stars/starslib.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * a starfield simulation library from: https://github.com/ph1l/stars
- * Copyright 2014 Philip J. Freeman <elektron@halo.nu>
- */
-
-#include <stdlib.h>
-#ifdef DEBUG
-#include <stdio.h>
-#endif
-#include "starslib.h"
-
-struct points
-{
- int x, y, z;
- struct points *next;
-};
-
-void new_universe( struct universe** u, int width, int height, int depth )
-{
- *u = malloc(sizeof(struct universe));
-
- (*u)->width = width;
- (*u)->height = height;
- (*u)->depth = depth;
-
- (*u)->iterator = NULL;
- (*u)->points = NULL;
- #ifdef DEBUG
- printf("NEW UNIVERSE: %lx: (%i,%i,%i)\n", (long unsigned int )(*u), (*u)->width, (*u)->height, (*u)->depth);
- #endif
-
- return;
-}
-
-void new_point( struct universe* u )
-{
-
- struct points* p_ptr = malloc(sizeof(struct points));
-
- p_ptr->x = (rand()%u->width - (u->width/2)) * u->depth;
- p_ptr->y = (rand()%u->height - (u->height/2)) * u->depth;
- p_ptr->z = u->depth;
-
- p_ptr->next = u->points;
- u->points = p_ptr;
- #ifdef DEBUG
- printf("NEW POINT: %lx: (%i,%i,%i) next=%lx\n", (long unsigned int )p_ptr, p_ptr->x, p_ptr->y, p_ptr->z, (long unsigned int) p_ptr->next);
- #endif
-
- return;
-}
-
-void kill_point( struct universe* universe, struct points* to_kill )
-{
-
- struct points *p_ptr, *last_ptr = NULL;
-
-
- for ( p_ptr = universe->points; p_ptr != NULL; p_ptr = p_ptr->next)
- {
- if (p_ptr == to_kill)
- {
- #ifdef DEBUG
- printf("KILL POINT: %lx: (%i,%i,%i).\n", (long unsigned int )p_ptr, p_ptr->x, p_ptr->y, p_ptr->z);
- #endif
- if (last_ptr == NULL)
- {
- universe->points = p_ptr->next;
- } else {
- last_ptr->next = p_ptr->next;
- }
- free(p_ptr);
- } else {
- last_ptr = p_ptr;
- }
- }
- #ifdef DEBUG
- printf("KILL POINT: %lx\n", (long unsigned int )p_ptr);
- #endif
- return;
-}
-
-int process_point( struct universe *u, struct return_point *rp )
-{
-
- if ( u->iterator == NULL ) {
- if (u->points == NULL){
- return 0;
- } else {
- u->iterator = u->points;
- }
- }
-
- if ( u->iterator->z == 0 ){
- // Delete point that has reached us.
- struct points *tmp = u->iterator;
- u->iterator = u->iterator->next;
- kill_point( u, tmp );
- return(-1);
- } else {
- // Plot the point
- int x, y;
- x = u->iterator->x / u->iterator->z;
- y = u->iterator->y / u->iterator->z;
- if ( abs(x) >= u->width/2 || abs(y) >= u->height/2 ){
- // Delete point that is off screen
- struct points *tmp = u->iterator;
- u->iterator = u->iterator->next;
- kill_point( u, tmp );
- if ( u->iterator == NULL ) {
- return(0);
- } else {
- return(-1);
- }
- } else {
- int m = OPACITY_MAX*((u->depth-u->iterator->z)*4)/u->depth;
- if ( m>OPACITY_MAX ){ m=OPACITY_MAX; }
- u->iterator->z = u->iterator->z - 1;
- #ifdef DEBUG
- printf("RETURN POINT: %lx\n", (long unsigned int )u->iterator);
- #endif
- u->iterator = u->iterator->next;
- rp->x = x;
- rp->y = y;
- rp->opacity = m;
- if ( u->iterator == NULL ) {
- return(0);
- } else {
- return(1);
- }
- }
- }
-}
© All Rights Reserved