model_audio.c File Reference
#include <math.h>
#include "gui.h"
#include "dijkstra.h"
#include "stage_internal.h"
Defines | |
#define | AUDIO_DEBUG1(...) { printf(__VA_ARGS__); fflush(stdout);} |
#define | AUDIO_DEBUG2(...) {} |
#define | AUDIO_DEBUG_ALLOC(...) {} |
#define | AUDIO_FIG_DESTROY_LATER |
#define | AUDIO_FIG_DESTROY_LIFEMS (100) |
#define | AUDIO_HEARING_RANGE (INFINITY) |
#define | AUDIO_USE_CACHE |
#define | GMC(X, Y) (mapdata[(X)+(Y)*w]) |
#define | GX2P(X) ((int) ( ( (X) + geom.size.x/2.0 ) / mres ) ) |
#define | GY2P(Y) ((int) ( ( (Y) + geom.size.y/2.0 ) / mres ) ) |
#define | PX2G(X) ((X)*mres-geom.size.x/2.0) |
#define | PY2G(Y) ((Y)*mres-geom.size.y/2.0) |
Functions | |
int | audio_checkvisible (stg_model_t *mod, double x1, double y1, double x2, double y2) |
void | audio_create_visibilitygraph (stg_model_t *mod) |
void | audio_deliver_msgs (gpointer key, gpointer data, gpointer user) |
void | audio_draw_path (gpointer data, gpointer user) |
void | audio_find_dist_multi (stg_model_t *mod, stg_pose_t *srcpose, int ndest, GArray *devpose, double *dists, double *angles) |
void | audio_findpoints (gpointer key, gpointer data, gpointer user) |
void | audio_free_path (gpointer data, gpointer user) |
int | audio_init (stg_model_t *mod) |
void | audio_load (stg_model_t *mod) |
void | audio_path_destroy (gpointer data) |
gboolean | audio_pointpair_equal (gconstpointer v1, gconstpointer v2) |
guint | audio_pointpair_hash (gconstpointer v) |
void | audio_pointpair_key_destroy (gpointer data) |
int | audio_raytrace_match (stg_model_t *mod, stg_model_t *hitmod) |
int | audio_render_cfg (stg_model_t *mod, void *userp) |
int | audio_render_data (stg_model_t *mod, void *userp) |
void | audio_render_line (int8_t *buf, int w, int h, int x1, int y1, int x2, int y2, int8_t val) |
void | audio_render_line2 (int8_t *buf, int w, int h, int x1, int y1, int x2, int y2, int8_t val) |
int | audio_shutdown (stg_model_t *mod) |
int | audio_startup (stg_model_t *mod) |
stg_pose_t * | audio_stg_pose_dup (const stg_pose_t *d) |
gboolean | audio_stg_pose_t_equal (const stg_pose_t p1, const stg_pose_t p2) |
int | audio_unrender_cfg (stg_model_t *mod, void *userp) |
int | audio_unrender_data (stg_model_t *mod, void *userp) |
int | audio_update (stg_model_t *mod) |
Variables | |
GHashTable * | dijkstra_adjacency |
GHashTable * | dijkstra_d |
GHashTable * | dijkstra_previous |
Define Documentation
#define AUDIO_DEBUG1 | ( | ... | ) | { printf(__VA_ARGS__); fflush(stdout);} |
Referenced by audio_create_visibilitygraph(), audio_findpoints(), and audio_startup().
#define AUDIO_DEBUG2 | ( | ... | ) | {} |
Referenced by audio_find_dist_multi(), audio_findpoints(), audio_init(), audio_load(), audio_shutdown(), audio_startup(), and audio_update().
#define AUDIO_DEBUG_ALLOC | ( | ... | ) | {} |
Referenced by audio_find_dist_multi(), audio_free_path(), audio_pointpair_key_destroy(), and audio_stg_pose_dup().
#define AUDIO_FIG_DESTROY_LATER |
#define AUDIO_FIG_DESTROY_LIFEMS (100) |
Referenced by audio_render_data().
#define AUDIO_HEARING_RANGE (INFINITY) |
Referenced by audio_checkvisible(), audio_find_dist_multi(), and audio_update().
#define AUDIO_USE_CACHE |
#define GMC | ( | X, | |||
Y | ) | (mapdata[(X)+(Y)*w]) |
Referenced by audio_findpoints().
#define GX2P | ( | X | ) | ((int) ( ( (X) + geom.size.x/2.0 ) / mres ) ) |
#define GY2P | ( | Y | ) | ((int) ( ( (Y) + geom.size.y/2.0 ) / mres ) ) |
#define PX2G | ( | X | ) | ((X)*mres-geom.size.x/2.0) |
Referenced by audio_findpoints().
#define PY2G | ( | Y | ) | ((Y)*mres-geom.size.y/2.0) |
Referenced by audio_findpoints().
Function Documentation
int audio_checkvisible | ( | stg_model_t * | mod, | |
double | x1, | |||
double | y1, | |||
double | x2, | |||
double | y2 | |||
) |
References AUDIO_HEARING_RANGE, audio_raytrace_match(), itl_create(), itl_destroy(), itl_first_matching(), PointToPoint, stg_pose_t::x, and stg_pose_t::y.
Referenced by audio_create_visibilitygraph(), and audio_find_dist_multi().
void audio_create_visibilitygraph | ( | stg_model_t * | mod | ) |
References audio_checkvisible(), AUDIO_DEBUG1, dijkstra_init(), dijkstra_insert_edge(), FALSE, stg_pose_t::x, and stg_pose_t::y.
Referenced by audio_startup().
void audio_deliver_msgs | ( | gpointer | key, | |
gpointer | data, | |||
gpointer | user | |||
) |
void audio_draw_path | ( | gpointer | data, | |
gpointer | user | |||
) |
References stg_model_get_fig(), stg_model_global_to_local(), stg_rtk_fig_line(), stg_pose_t::x, and stg_pose_t::y.
Referenced by audio_render_data().
void audio_find_dist_multi | ( | stg_model_t * | mod, | |
stg_pose_t * | srcpose, | |||
int | ndest, | |||
GArray * | devpose, | |||
double * | dists, | |||
double * | angles | |||
) |
Loop over all points and fill the information. If the points are directly visible and don't need dijkstra then put them at the end of list.
if directly visible just calculate the distance
if not directly visible use dijkstra
References audio_checkvisible(), AUDIO_DEBUG2, AUDIO_DEBUG_ALLOC, AUDIO_HEARING_RANGE, stg_audio_data_t::audio_paths, audio_stg_pose_dup(), dijkstra_d, dijkstra_insert_edge(), dijkstra_previous, dijkstra_remove_temp_edges(), dijkstra_run(), TRUE, stg_pose_t::x, and stg_pose_t::y.
Referenced by audio_update().
void audio_findpoints | ( | gpointer | key, | |
gpointer | data, | |||
gpointer | user | |||
) |
References AUDIO_DEBUG1, AUDIO_DEBUG2, audio_render_line2(), GMC, PRINT_WARN1, PX2G, PY2G, stg_geom_t::size, stg_model_get_geom(), stg_model_get_polygons(), stg_pose_t::x, stg_point_t::x, stg_size_t::x, stg_pose_t::y, stg_point_t::y, and stg_size_t::y.
Referenced by audio_startup().
void audio_free_path | ( | gpointer | data, | |
gpointer | user | |||
) |
int audio_init | ( | stg_model_t * | mod | ) |
References stg_pose_t::a, AUDIO_DEBUG2, audio_load(), stg_audio_data_t::audio_paths, audio_render_cfg(), audio_render_data(), audio_shutdown(), audio_startup(), audio_unrender_cfg(), audio_unrender_data(), audio_update(), stg_audio_cmd_t::cmd, FALSE, LaserTransparent, stg_geom_t::pose, stg_audio_config_t::say_period, stg_audio_config_t::say_string, stg_geom_t::size, STG_AUDIO_CMD_NOP, STG_AUDIO_MAX_STRING_LEN, stg_model_add_property_toggles(), stg_model_set_audio_return(), stg_model_set_blob_return(), stg_model_set_cfg(), stg_model_set_cmd(), stg_model_set_color(), stg_model_set_data(), stg_model_set_geom(), stg_model_set_laser_return(), stg_model_set_obstacle_return(), stg_audio_cmd_t::string, TRUE, wf_property_exists(), wf_read_int(), wf_read_string(), stg_size_t::x, stg_pose_t::x, stg_size_t::y, and stg_pose_t::y.
void audio_load | ( | stg_model_t * | mod | ) |
void audio_path_destroy | ( | gpointer | data | ) |
gboolean audio_pointpair_equal | ( | gconstpointer | v1, | |
gconstpointer | v2 | |||
) |
guint audio_pointpair_hash | ( | gconstpointer | v | ) |
Referenced by audio_startup().
void audio_pointpair_key_destroy | ( | gpointer | data | ) |
int audio_raytrace_match | ( | stg_model_t * | mod, | |
stg_model_t * | hitmod | |||
) |
Referenced by audio_checkvisible().
int audio_render_cfg | ( | stg_model_t * | mod, | |
void * | userp | |||
) |
References STG_AUDIO_COLOR, STG_LAYER_AUDIODATA, stg_lookup_color(), stg_model_fig_create(), stg_model_get_fig(), stg_model_global_to_local(), stg_rtk_fig_clear(), stg_rtk_fig_color_rgb32(), stg_rtk_fig_ellipse(), stg_rtk_fig_linewidth(), stg_pose_t::x, and stg_pose_t::y.
Referenced by audio_init().
int audio_render_data | ( | stg_model_t * | mod, | |
void * | userp | |||
) |
References audio_draw_path(), AUDIO_FIG_DESTROY_LIFEMS, stg_audio_data_t::audio_paths, STG_AUDIO_BUBBLE_COLOR, STG_AUDIO_COLOR, STG_LAYER_AUDIODATA, stg_lookup_color(), stg_model_fig_create(), stg_model_get_fig(), stg_model_get_global_pose(), stg_rtk_fig_clear(), stg_rtk_fig_color_rgb32(), stg_rtk_fig_create(), stg_rtk_fig_destroy_later(), stg_rtk_fig_linewidth(), stg_rtk_fig_text_bubble(), stg_audio_data_t::string, stg_pose_t::x, and stg_pose_t::y.
Referenced by audio_init().
void audio_render_line | ( | int8_t * | buf, | |
int | w, | |||
int | h, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2, | |||
int8_t | val | |||
) |
void audio_render_line2 | ( | int8_t * | buf, | |
int | w, | |||
int | h, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2, | |||
int8_t | val | |||
) |
Referenced by audio_findpoints().
int audio_shutdown | ( | stg_model_t * | mod | ) |
int audio_startup | ( | stg_model_t * | mod | ) |
References audio_create_visibilitygraph(), AUDIO_DEBUG1, AUDIO_DEBUG2, audio_findpoints(), audio_path_destroy(), audio_pointpair_equal(), audio_pointpair_hash(), audio_pointpair_key_destroy(), FALSE, and TRUE.
Referenced by audio_init().
stg_pose_t* audio_stg_pose_dup | ( | const stg_pose_t * | d | ) |
gboolean audio_stg_pose_t_equal | ( | const stg_pose_t | p1, | |
const stg_pose_t | p2 | |||
) |
int audio_unrender_cfg | ( | stg_model_t * | mod, | |
void * | userp | |||
) |
int audio_unrender_data | ( | stg_model_t * | mod, | |
void * | userp | |||
) |
Referenced by audio_init().
int audio_update | ( | stg_model_t * | mod | ) |
References _model_update(), stg_pose_t::a, AUDIO_DEBUG2, audio_deliver_msgs(), audio_find_dist_multi(), audio_free_path(), AUDIO_HEARING_RANGE, stg_audio_data_t::audio_paths, model_change(), NORMALIZE, stg_audio_data_t::recv, RTOD, stg_audio_config_t::say_last_time, stg_audio_config_t::say_period, stg_audio_config_t::say_string, STG_AUDIO_CMD_NOP, STG_AUDIO_CMD_SAY, STG_AUDIO_MAX_STRING_LEN, stg_model_get_global_pose(), stg_audio_config_t::string, and stg_audio_data_t::string.
Referenced by audio_init().
Variable Documentation
GHashTable* dijkstra_adjacency |
Referenced by dijkstra_init(), dijkstra_insert_edge(), dijkstra_remove_temp_edges(), and dijkstra_run().
GHashTable* dijkstra_d |
Referenced by audio_find_dist_multi(), dijkstra_destroy(), dijkstra_init(), and dijkstra_run().
GHashTable* dijkstra_previous |
Referenced by audio_find_dist_multi(), dijkstra_destroy(), dijkstra_init(), and dijkstra_run().
Generated on Wed Jun 3 23:12:29 2009 for Stage by
