/* redraw flag values */ #define JC_NOPE 0 #define JC_EVENTUALLY 1 #define JC_RIGHT_NOW 2 /* capacity settings */ #define MAX_URL_LEN 500 #define NAME_SEP 3 #define MAX_PAGE 1000 #define MAX_SURF 300 #define PS_TAB_SIZE 20000 #define NICK_LEN 11 #define SURF_DL_BASE 1000 #define NODE_DL_BASE (SURF_DL_BASE + MAX_SURF) #define SURF_LBL_BASE (NODE_DL_BASE + 2*MAX_PAGE) #define COLOR_BASE (SURF_LBL_BASE + MAX_SURF) #define PICKED_DL (COLOR_BASE + MAX_SURF) #define SURF_JUMP_BASE (PICKED_DL + 1) /* display-list idents */ #define INITGL 011 #define TEXT_LABEL 012 #define WEBSITE_NODES 101 #define WEBSITE_EDGES 102 #define WEBSITE_USERS 103 #define GENERIC_EDGE 104 #define GENERIC_AHEAD 105 #define USER_LABELS 106 /* labeled values */ #define UNREACHED -3 #define INF_VIS_LIM 66666 #define ABYSS_NN "UNKNOWN" #include /* ========================== */ /* END COMPILER INSTRUCTIONS; */ /* ========================== */ /* ======================= */ /* BEGIN DATA DECLARATIONS */ /* ======================= */ struct trans_parms { GLfloat x,y,z,lat,longt,z_rot; }; struct jump_rec { int page_loc, page_duration; struct jump_rec *next_page; }; struct surfer_rec { char name[50], visible; int first_spline_seg, total_num_jumps, total_path_time; struct jump_rec *first_page; }; struct surf_color_rec { char sname [22]; float r,g,b; }; struct page_rec { char marked, stuck, filetype, show_as_bg, visible; char nickname[NICK_LEN], *fullname; int dist_to_base; /* Length of shortest path to some base node(s) */ float xpos[2], ypos[2], zpos[2]; int same_dir; float xdir,ydir,zdir; }; struct icon_geometry /* geometry of pickable 3D rectangles */ { int best_dim; /* define a parallelogram in 3D space - corner[0] is "lower left", corner[1] is lower right, corner[2] is upper left. */ struct point_3d corner[3]; struct plane_3d plane; }; /* ===================== */ /* END DATA DECLARATIONS */ /* ===================== */ /* ========================= */ /* BEGIN FUNCTION PROTOTYPES */ /* ========================= */ int pick_icon (int this, struct line_3d *in_ray, float xform[], float *xpick, float *ypick); int pick_icon_3d (int this, struct line_3d *in_ray, float xform[], float *xpick, float *ypick, float *zpick); int pick_loc (struct line_3d *in_ray, float xform[], float *xpick, float *ypick); int pick_loc_3d (struct line_3d *in_ray, float xform[], float *xpick, float *ypick, float *zpick); int event_to_tcl (HWND top_level_window, HWND target_window); int set_picked_DL (int picked_node, int *url_len, char picked_url[]); int show_times_at_node (int picked_node, char *picked_url, char show_all); int find_surfer (char *sname); int load_surfer (char *datadir, char *surf_name, int abyss_mode); int lookup_page (char *target, int quiet); int update_node_visibility (int vis_limit); int node_distance (); int find_surf_color (char *sname, int num_col, struct surf_color_rec surf_col[]);