intro_graphics_windows


	These are a set of routines (called WNLIB) that allows the application
	programmer to easily set up plots of values in terms of real world
	(engineering) coordinates in the graphics windows.  In addition
	to plotting points and drawing vectors, there are routines to draw
	and label plot grids.

	WNLIB routines use areas of the screen called view ports in which
	to do their plotting functions.  These view ports are defined in
	terms of fractions of the full screen rather than pixel coordinates.
	View port coordinates range from 0.0 to 1.0 in both X and Y
	regardless of the actual screen dimensions in pixels.  A view
	port is established through a call to the routine 'wn_view(_c)'.
	This should be the first WNLIB routine called by a program, and it
	returns a window identification number that is used in subsequent
	WNLIB routine calls.

	The next stage in the construction of a WNLIB window is to establish
	the real world (hereafter referred to simply as "world(_c)")
	coordinates for the X and Y dimensions.  This is accomplished by a
	call to 'wn_world(_c)'.  This routine uses the window ID from
	'wn_view(_c)' and passes the desired world coordinates.  The world
	coordinates for a given view port can be changed at any time by
	another call to 'wn_world(_c)' with new values.

	At this point a completely defined window exists in memory that
	can be referred to by its window ID.  No actual drawing to the
	window can be done until it is made the active window through
	a call to 'wn_active(_c)'.  Now points ('wn_point(_c)'), lines
	('wn_vector(_c)'), boxes ('wn_box(_c)'), symbols ('wn_symbol(_c)'),
	and text ('wn_text(_c)') can be drawn in the window.  Many windows
	can be defined at the same time, but all actual drawing is done in
	the window that is currently active.

	There are two WNLIB routines which set overall drawing
	characteristics.  'wn_clip(_c)' can be called to clip all screen
	output to the current window.  'wn_color(_c)' is used to set the
	current drawing color.

	There are also two routines for coordinate conversions within
	a window.  'wn_getscrn(_c)' returns a physical screen coordinate
	for a given world coordinate, and 'wn_getworld(_c)' returns a
	world coordinate for a given physical screen coordinate.  The
	latter is particularly useful for letting users interact with
	plot displays.
	
	Finally, there is a set of routines which are designed to facilitate
	labelled plots.  'wn_axis_grid(_c)' will draw an axis line in the
	desired plane and draw both major and minor tic marks on it as
	desired.  'wn_axis_label(_c)' goes a step further in that it will
	also provide numeric labels for the major tic marks, and it will
	display an axis title.  'wn_grid(_c)' takes this even further in that
	it creates a window and provides a completely labelled plot grid.

	A test program exists that allows the user to try out the various
	WNLIB calls interactively.  It is called WNLIB Test, and it
	can presently be found on console page D110.

	Another test program, called CLIB Peeker (D22), can be used to
	look at internal WNLIB values in order to debug programming
	problems.

	Overall graphics screen manipulation routines:

	'wn_read_background_format'
	'wn_read_text_format'
	'wn_screen_init(_c)'
	'wn_screen_title'
	'wn_select_screen(_c)'
	'wn_set_background_format_c'
	'wn_set_background_size_c'

	Window creation/deletion/activation routines:

	'wn_active(_c)'
	'wn_view(_c)'
	'wn_world(_c)'
	'wn_delete_c'
	'wn_delete_all_c'
	'wn_set_scaling(_c)'

	Drawing routines:

	'wn_box(_c)'
	'wn_circle(_c)'
	'wn_circular_arc_c'
	'wn_colored_text_c'
	'wn_display_value(_c)'
	'wn_erase(_c)'
	'wn_external_colored_text_c'
	'wn_external_display_value_c'
	'wn_external_text(_c)'
	'wn_point(_c)'
	'wn_point_set'
	'wn_polygon_c'
	'wn_setsym(_c)'
	'wn_set_plot_symbol(_c)'
	'wn_symbol(_c)'
	'wn_symbol_set'
	'wn_text(_c)'
	'wn_vector(_c)'

	Drawing environment routines:

	'wn_active(_c)'
	'wn_background_color_c'
	'wn_border_width_c'
	'wn_clip(_c)'
	'wn_color(_c)'
	'wn_connect_points(_c)'
	'wn_draw_mode(_c)'
	'wn_fill_mode(_c)'
	'wn_plot_fill(_c)'
	'wn_setsym(_c)'
	'wn_set_plot_symbol(_c)'
	'wn_set_scaling(_c)'
	'wn_text_attributes_c'
	'wn_text_rotation(_c)'
	'wn_text_scaling_c'
	'wn_text_size(_c)'
	'wn_vector_grain(_c)'
	'wn_vector_width(_c)'

	Coordinate handling routines:

	'wn_getscrn(_c)'
	'wn_getworld(_c)'
	'wn_get_view_coords_c'
	'wn_get_world_coords_c'
	'wn_set_scaling(_c)'
	'wn_text_scaling_c'

	Plotting routines:

	'wn_axis_grid(_c)'
	'wn_axis_label(_c)'
	'wn_connect_points(_c)'
	'wn_external_colored_text_c'
	'wn_external_display_value_c'
	'wn_external_text(_c)'
	'wn_grid(_c)'
	'wn_plot_fill(_c)'
	'wn_point(_c)'
	'wn_point_set'
	'wn_quick_grid'
	'wn_setsym(_c)'
	'wn_set_plot_symbol(_c)'
	'wn_set_scaling(_c)'
	'wn_symbol(_c)'
	'wn_symbol_set'

	Data manipulation routines:

	'wn_data_extrema'
	'wn_data_fft_c'
	'wn_data_mean'
	'wn_data_polyfit_c'
	'wn_data_query'
	'wn_data_recall'
	'wn_data_save(_c)'
	'wn_data_set_cut_c'

	Cursor routines:

	'wn_cursor_disable'
	'wn_cursor_init(_c)'
	'wn_cursor_init_pixel_c'
	'wn_cursor_update'
	'wn_cursor_update_pixel'
	'wn_set_cursor_type_c'

	Switch routines:

	'wn_switch_create_c'
	'wn_switch_delete_c'
	'wn_switch_pressed'
	'wn_switch_read_c'
	'wn_switch_window_delete_c'
	'wn_window_has_switch_c'

	These functions require the following include files:

	cbslib_h

	Related functions:

	wn_active(_c), wn_axis_grid(_c), wn_axis_label(_c),
	wn_background_color_c, wn_blank_c, wn_border_width_c, wn_box(_c),
	wn_circle(_c), wn_circular_arc_c, wn_clip(_c), wn_color(_c),
	wn_colored_text_c, wn_connect_points(_c), wn_cursor_disable,
	wn_cursor_init(_c), wn_cursor_init_pixel_c, wn_cursor_update,
	wn_cursor_update_pixel, wn_data_extrema, wn_data_fft_c,
	wn_data_mean, wn_data_polyfit_c, wn_data_query, wn_data_recall,
	wn_data_save(_c), wn_data_set_cut_c, wn_delete_c, wn_delete_all_c,
	wn_display_value(_c), wn_draw_mode(_c), wn_erase(_c),
	wn_external_colored_text_c, wn_external_display_value_c,
	wn_external_text(_c), wn_fill_mode(_c), wn_find_id(_c),
	wn_find_list_c, wn_flush, wn_getscrn(_c), wn_getworld(_c),
	wn_get_view_coords_c, wn_get_world_coords_c, wn_grid(_c),
	wn_intersect_c, wn_occluded_c, wn_plot_fill(_c), wn_point(_c),
	wn_point_set, wn_polygon_c, wn_query_setup, wn_quick_grid,
	wn_read_background_format, wn_read_text_format, wn_screen_init(_c),
	wn_screen_title, wn_select_screen(_c), wn_setsym(_c),
	wn_set_background_format_c, wn_set_background_size_c,
	wn_set_cursor_type_c, wn_set_plot_symbol(_c), wn_set_scaling(_c),
	wn_switch_create_c, wn_switch_delete_c, wn_switch_disable_c,
	wn_switch_enable_c, wn_switch_set_state_c, wn_switch_pressed,
	wn_switch_read_c, wn_switch_relabel_c, wn_switch_window_delete_c,
	wn_symbol(_c), wn_symbol_set, wn_text(_c), wn_text_attributes_c,
	wn_text_rotation(_c), wn_text_coord_to_virtual_c, wn_text_scaling_c,
	wn_text_size(_c), wn_vector(_c), wn_vector_grain(_c),
	wn_vector_width(_c), wn_view(_c), wn_view_construct_c,
	wn_view_pixel_c, wn_view_text_format_c, wn_wide_vector_c,
	wn_window_has_switch_c, wn_world(_c)