summaryrefslogtreecommitdiffstats
path: root/hacks/glx/sonar-sim.c
diff options
context:
space:
mode:
authorSimon Rettberg2024-09-06 14:42:37 +0200
committerSimon Rettberg2024-09-06 14:42:37 +0200
commitbadef32037f52f79abc1f1440b786cd71afdf270 (patch)
tree412b792d4cab4a7a110db82fcf74fe8a1ac55ec1 /hacks/glx/sonar-sim.c
parentDelete pre-6.00 files (diff)
downloadxscreensaver-master.tar.gz
xscreensaver-master.tar.xz
xscreensaver-master.zip
Diffstat (limited to 'hacks/glx/sonar-sim.c')
-rw-r--r--hacks/glx/sonar-sim.c112
1 files changed, 0 insertions, 112 deletions
diff --git a/hacks/glx/sonar-sim.c b/hacks/glx/sonar-sim.c
deleted file mode 100644
index ea5452e..0000000
--- a/hacks/glx/sonar-sim.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* sonar, Copyright (c) 1998-2012 Jamie Zawinski and Stephen Martin
- *
- * 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.
- *
- * This implements the "simulation" sensor for sonar.
- */
-
-#include "screenhackI.h"
-#include "sonar.h"
-
-typedef struct {
- const char *team_a_name;
- const char *team_b_name;
- int team_a_count;
- int team_b_count;
- sonar_bogie *targets;
- Bool debug_p;
-} sim_data;
-
-
-static void
-sim_free_data (sonar_sensor_data *ssd, void *closure)
-{
- sim_data *sd = (sim_data *) closure;
- free (sd);
-}
-
-static void
-sim_free_bogie_data (sonar_sensor_data *ssd, void *closure)
-{
- free (closure);
-}
-
-
-/* Return an updated (moved) copy of the bogies.
- */
-static sonar_bogie *
-sim_scan (sonar_sensor_data *ssd)
-{
- sim_data *sd = (sim_data *) ssd->closure;
- sonar_bogie *b, *b2, *list = 0;
- double scale = 0.01;
- for (b = sd->targets; b; b = b->next)
- {
- b->r += scale * (0.5 - frand(1.0));
- b->th += scale * (0.5 - frand(1.0));
- while (b->r < 0.2) b->r += scale * 0.1;
- while (b->r > 0.9) b->r -= scale * 0.1;
-
- b2 = sonar_copy_bogie (ssd, b);
- b2->next = list;
- list = b2;
- }
- return list;
-}
-
-
-static void
-make_bogies (sonar_sensor_data *ssd)
-{
- sim_data *sd = (sim_data *) ssd->closure;
- int i, j;
-
- for (j = 0; j <= 1; j++)
- for (i = 0; i < (j ? sd->team_a_count : sd->team_b_count); i++)
- {
- sonar_bogie *b = (sonar_bogie *) calloc (1, sizeof(*b));
- const char *name = (j ? sd->team_a_name : sd->team_b_name);
- b->name = (char *) malloc (strlen(name) + 10);
- sprintf (b->name, "%s%03d", name, i+1);
- b->r = 0.3 + frand(0.5);
- b->th = frand (M_PI*2);
- b->next = sd->targets;
- sd->targets = b;
- if (sd->debug_p)
- fprintf (stderr, "%s: %s: %5.2f %5.2f\n", progname,
- b->name, b->r, b->th);
- }
-}
-
-
-sonar_sensor_data *
-sonar_init_simulation (Display *dpy, char **error_ret, char **desc_ret,
- const char *team_a_name, const char *team_b_name,
- int team_a_count, int team_b_count,
- Bool debug_p)
-{
- sonar_sensor_data *ssd = (sonar_sensor_data *) calloc (1, sizeof(*ssd));
- sim_data *sd = (sim_data *) calloc (1, sizeof(*sd));
-
- sd->team_a_name = team_a_name;
- sd->team_b_name = team_b_name;
- sd->team_a_count = team_a_count;
- sd->team_b_count = team_b_count;
- sd->debug_p = debug_p;
-
- ssd->closure = sd;
- ssd->scan_cb = sim_scan;
- ssd->free_data_cb = sim_free_data;
- ssd->free_bogie_cb = sim_free_bogie_data;
-
- make_bogies (ssd);
-
- return ssd;
-}
-