********************************************************************************
********************************************************************************
********************************************************************************

*** Functions added to nviz and files involved for ACS project RIADE ***********

********************************************************************************
********************************************************************************
********************************************************************************





********************************************************************************
********************************************************************************
******************** ADDED FEATURES ********************************************
********************************************************************************
********************************************************************************

*** flythrough
*** Resize
*** general utilities
*** Site attributes
*** Site highlight
*** Picking
*** Time Series (TS) (Not Yet 13 march 2006)





********************************************************************************
********************************************************************************
******************** FILES INVOLVED ********************************************
********************************************************************************
********************************************************************************

************************ NEW FILES *********************************************
visualization/nviz/README.ACS
visualization/nviz/scripts/nviz_params
visualization/nviz/scripts/ACS_utils.tcl
visualization/nviz/scripts/flythrough.tcl
visualization/nviz/scripts/panel_resize.tcl
visualization/nviz/scripts/site_attr.tcl
visualization/nviz/scripts/panel_highlight.tcl
visualization/nviz/scripts/panel_pick.tcl
visualization/nviz/scripts/panel_timeSeries.tcl
visualization/nviz/scripts/ACS_TimeSeries/*.tcl
visualization/nviz/src/togl_flythrough.c
visualization/nviz/src/site_attr_commands.c
visualization/nviz/src/site_highlight_commands.c
visualization/nviz/src/pick_vect_commands.c
visualization/nviz/bitmaps/flythrough/*.gif
visualization/nviz/bitmaps/TimeSeries/*.gif
visualization/nviz/bitmaps/TimeSeries/*.xbm


************************ MODIFIED FILES *****************************************
visualization/nviz/Makefile
visualization/nviz/src/Makefile
visualization/nviz/scripts/tclIndex
visualization/nviz/scripts/panelIndex
visualization/nviz/scripts/panel_main.tcl
visualization/nviz/scripts/panel_kanimator.tcl
visualization/nviz/scripts/panel_surf.tcl
visualization/nviz/scripts/panel_vect.tcl
visualization/nviz/scripts/panel_site.tcl
visualization/nviz/scripts/colorPopup.tcl
visualization/nviz/scripts/nviz2.2_script
visualization/nviz/src/quick_draw.c
visualization/nviz/src/nviz_init.c
visualization/nviz/src/map_obj.c
lib/ogsf/gk.c
lib/ogsf/GK2.c
lib/ogsf/gstypes.h
lib/ogsf/gsds.c
lib/ogsf/Gp3.c
lib/ogsf/gpd.c
lib/ogsf/gsd_objs.c
lib/ogsf/gsurf.h
lib/sites/sites.c




********************************************************************************
********************************************************************************
******************** DETAILS ORDERED BY FEATURES ******************************
********************************************************************************
********************************************************************************



********************************************************************************
*** flythrough *****************************************************************
********************************************************************************

+++ visualization/nviz/scripts

(new) visualization/nviz/scripts/flythrough.tcl
	tcl part for togl_flythrough.c

(mod) visualization/nviz/scripts/panel_main.tcl
	"source" for flythrough.tcl and set UI for flythrough

(mod) visualization/nviz/scripts/panel_kanimator.tcl
	replaced get_focus with get_viewdir to work with flythrough


+++ visualization/nviz/src

(new) visualization/nviz/src/togl_flythrough.c
	all flythrough navigation
	Nset/Nget_viewdir commands
	override of command Ndraw_all (function draw_all
	in file draw.c) by function draw_all_together for drawing
		surf/vector/site in "fine" resolution
		all together with no flickering (no CLR
		between any of them)
	added semaphore "is_drawing" to avoid "clogging"
		between ordinary drawing and flythrough that
		try to draw continuously

(mod) visualization/nviz/src/quick_draw.c
	calls "flythrough_draw_cb()" after drawing, before returning
		in order to execute callbacks at the right moment
	functions that call "GS_alldraw_wire" do not execute
		"flythrough_draw_cb()"

(mod) visualization/nviz/src/nviz_init.c
	creates tcl commands and variables by calling
		togl_flythrough_init_tcl(interp, &data);
    		that also adds timer function by calling
				Togl_TimerFunc(togl_flythrough_timer_cb);
					that first time calls
						togl_flythrough_init(togl);


WARNING: 	remember to add "togl_flythrough.o"
			into the visualization/nviz/src/Makefile

+++ visualization/nviz/bitmaps

(new) visualization/nviz/bitmaps/flythrough/*.gif
	a_lr.gif  b_c.gif   b_lc.gif  b_lr.gif  vuota.gif
	a_ud.gif  b_cr.gif  b_l.gif   b_r.gif
		icons for flythrough help


+++ lib/ogsf

(mod) lib/ogsf/gk.c
	changed get/set_focus with get/set_viewdir for kanimator
		to work with flythrough
	corrected bug when adding point with disabled channels

(mod) lib/ogsf/GK2.c
	changed get/set_focus with get/set_viewdir for kanimator
		to work with flythrough


********************************************************************************
*** Resize *********************************************************************
********************************************************************************

+++ visualization/nviz/scripts
(new) visualization/nviz/scripts/panel_resize.tcl
	resize of draw window useful for kanimator movies

			to panelIndex file add:
				"resize"
			to tclIndex file add:
				set auto_index(mkresizePanel) "source $dir/panel_resize.tcl"



********************************************************************************
*** general utilities **********************************************************
********************************************************************************

(new) visualization/nviz/scripts/ACS_utils.tcl
	generic tcl functions useful to Time Series and Pick



*******************************************************************************
*** Site attributes ***********************************************************
*******************************************************************************

+++ REQUIRES ACS_Utils.tcl

+++ visualization/nviz/scripts
(mod) visualization/nviz/scripts/panel_site.tcl
	added site_attr.tcl calls

(new) visualization/nviz/scripts/site_attr.tcl
	all the GUI and calls to site_attr_commands.c functions

(mod) visualization/nviz/scripts/colorPopup.tcl
	added line
		setScales $w.top.left $color
	to solve that the scales and $w.top.color are set to white next time
	after a color button (not sliders) has been used, regardless $color

(mod) visualization/nviz/scripts/ACS_utils.tcl
	added function:
		modal_edit_list_plain use in site_attr.tcl


+++ visualization/nviz/src

(new) visualization/nviz/src/site_attr_commands.c
	this file that contains:
	- all c functions for getting fields values and setting attributes
	- interpolation/evaluation functions used for color and entries
	  that could be put in a separate file if used also by others

(mod) visualization/nviz/src/nviz_init.c
	creates tcl commands and variables by calling
		site_attr_init_tcl(interp, &data);
		added commands:	Nsite_attr_get_fields_name
				Nsite_attr_get_fields_type
				Nsite_attr_get_fields_name_and_type
				Nsite_attr_get_field_values
				Nsite_attr_get_field_not_emtpy_cats
				Nsite_attr_get_record_values
				Nsite_attr_get_GPT_MAX_ATTR
				Nsite_attr_get_interpolated_values

(mod) visualization/nviz/src/map_obj.c
	added function: site_attr_init for each created site
	added set/unset useatt functions


WARNING: 	remember to add "site_attr_commands.o"
			into the visualization/nviz/src/Makefile


+++ lib/ogsf

(mod) lib/ogsf/gstypes.h
	added:

	#define GPT_MAX_ATTR 8

	in typedef struct g_point{
	...
		int cat;
		int color[GPT_MAX_ATTR];
		float size[GPT_MAX_ATTR];
		int marker[GPT_MAX_ATTR];
	...
	} geopoint;

	in typedef struct g_site{
	...
		int use_attr[GPT_MAX_ATTR]; /* ST_ATT_COLOR, ST_ATT_MARKER, ST_ATT_SIZE, ST_ATT_NONE, for multiple attr's */
	...
	} geosite;


(mod) lib/ogsf/Gp3.c
	added line:
		gpt->cat = nextsite->ccat;
	in order to get the link at the site cat


(mod) lib/ogsf/gpd.c
	added gpd_obj_site_attr in place of gpd_obj to manage multiple attributes

(mod) lib/ogsf/gsd_objs.c
	added the "box" drawing for histograms even if it should better stayed

(mod) lib/ogsf/gsurf.h
	added #define ST_HISTOGRAMS 10

+++lib/sites

(mod) lib/sites/sites.c
	- managing Map_info structure for sites



*******************************************************************************
*** Site highlight ************************************************************
*******************************************************************************

+++ REQUIRES Site attributes modification to lib/ogsf/gpd.c


+++ visualization/nviz/scripts

(new) visualization/nviz/scripts/panel_highlight.tcl

			to panelIndex file add:
				"highlight"
			to tclIndex file add:
				set auto_index(mkhighlightPanel) "source $dir/panel_highlight.tcl"


+++ visualization/nviz/src

(new) visualization/nviz/src/site_highlight_commands.c
	this file: creates Tcl commands

(mod) visualization/nviz/src/nviz_init.c
	creates tcl commands and variables by calling
		site_highlight_init_tcl(interp, &data);
		added commands:	Nsite_highlight
						Nsite_highlight_list
						Nsite_unhighlight
						Nsite_unhighlight_list
						Nsite_unhighlight_all
						Nsite_highlight_set_default
						Nsite_highlight_get_default
						Nsite_highlight_set_default_value
 						Nsite_highlight_get_default_value

WARNING: 	remember to add site_highlight_commands.o
			into the visualization/nviz/src/Makefile

+++ lib/ogsf

(mod) lib/ogsf/gstypes.h

	added in struct g_point:
	...
	int highlight_color;
	int highlight_size;
	int highlight_marker;

	TRUE/FALSE flags to enable/disable proper highlight

	int highlight_color_value;
	float highlight_size_value;
	int highlight_marker_value;
	...

	proper highlight values used for each geopoint


(mod) lib/ogsf/Gp3.c
	added line:
		gpt->highlight_color = gpt->highlight_size = gpt->highlight_marker = FALSE;
	in order to get the proper initializations


(mod) lib/ogsf/gpd.c
	added:
		if (gpt->highlight_color) color = gpt->highlight_color_value;
		if (gpt->highlight_size) marker = gpt->highlight_marker_value;
		if (gpt->highlight_marker) size *= gpt->highlight_size_value;

	in function "gpd_obj_site_attr" (that replaces function "gpd_obj")




********************************************************************************
*** Picking ********************************************************************
********************************************************************************

+++ REQUIRES ACS_Utils.tcl + .nvizrc +
+++          site_attr_commands.c + (optionally) site_highlight_commands.c
	 site_attr_commands.c is used to retrieve the fields names, values
	   and cats of records with a not empty specific field
     site_highlight_commands.c is optionally used to highlight picked
	   objects. It is optionally used because "catch" is used in the Tcl
	   code, so if it is not defined, the program doesn't fail.


+++ visualization/nviz/scripts

(new) visualization/nviz/scripts/panel_pick.tcl
	all tcl code

			to panelIndex file add:
				"pick"
			to tclIndex file add:
				set auto_index(mkpickPanel) "source $dir/panel_pick.tcl"


+++ visualization/nviz/src

(new) visualization/nviz/src/pick_vect_commands.c
	C functions for picking

(mod) visualization/nviz/src/nviz_init.c
	creates tcl commands and variables by calling
		pick_init_tcl(interp, &data);
		added commands:	Npick_vect,

WARNING: 	remember to add pick_vect_commands.o
			into the visualization/nviz/src/Makefile



********************************************************************************
*** NOT YET ADDED TO CVS
********************************************************************************
*** Time Series (TS) ***********************************************************
********************************************************************************
+++ REQUIRES XML package and ACS_Utils.tcl/.nvizrc and picking

+++ visualization/nviz/scripts

(mod) visualization/nviz/scripts/panel_surf.tcl
	added interface labels and TS_delete_obj

(mod) visualization/nviz/scripts/panel_vect.tcl
	added TS_delete_obj

(mod) visualization/nviz/scripts/nviz2.2_script
	added TS_auto_load
		(Time Series Loads shows from command line ("ts_show" option added in nviz_init.c))
		after Nv_makeGUI .top

(new) visualization/nviz/scripts/panel_timeSeries.tcl
	"source" for ACS_TimeSeries/TS_*.tcl and UI for TS

			to panelIndex file add:
				"timeSeries"
			to tclIndex file add:
				set auto_index(mktimeSeriesPanel) "source $dir/panel_timeSeries.tcl"

(new) visualization/nviz/scripts/ACS_TimeSeries/*.tcl
	directory contains:
		TS_init.tcl
		TS_nviz.tcl
		TS_file.tcl
		TS_show.tcl
		TS_time.tcl
		TS_kf_panel.tcl
		TS_kf_win.tcl

WARNING: needs to change the Makefile with these lines

### ACS - BEGIN ###############################################################
	$(MKDIR) $(INSTALL_DIR)/scripts/ACS_TimeSeries
	$(INSTALL) scripts/ACS_TimeSeries/*.tcl $(INSTALL_DIR)/scripts/ACS_TimeSeries
### ACS - END #################################################################


+++ visualization/nviz/src

(mod) visualization/nviz/src/nviz_init.c
	added ts_show option to nviz command line to load a show from there

(mod) visualization/nviz/src/map_obj.c
	added:
		get/set/unset_att_current_persistent
		get_att_current_dataset_id
		get_att_dataset_id
		free_att_dataset
	to obj commands

	and when map changes, resolution doesn't change


+++ visualization/nviz/bitmaps

(new) visualization/nviz/bitmaps/TimeSeries/*.gif-xbm
	minus.xbm        oplink.xbm    plus.xbm  site.xbm  vect.xbm
	no_pickable.xbm  palette.gif   redo.xbm  surf.gif
	null.xbm         pickable.xbm  save.gif  undo.xbm
		icons for TimeSeries


+++ lib/ogsf

(mod) lib/ogsf/gstypes.h
	added persistent flag to dataset structure

(mod) lib/ogsf/gsds.c
	doesn't free memory if "persistent" flag is set to 1 (gsds_free_datah())
	added "gsds_set/get_persistent" functions

dataset structure has been modified in order to manage the "persistent"
flag that keeps in memory the current att dataset so to optimize
Time Series management that doesn't reload the datasets
at every time change, but find them already in place.




********************************************************************************
********************************************************************************
******************** FEATURES REORDERED BY ACTIONS/DIRECTORIES *****************
********************************************************************************
********************************************************************************


+++ REQUIREMENTS +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*** Site attributes ************************************************************
ACS_Utils.tcl + .nvizrc

*** Site highlight *************************************************************
Site attributes modification to lib/ogsf/gpd.c

*** Picking ********************************************************************
ACS_Utils.tcl + .nvizrc
site_attr_commands.c + (optionally) site_highlight_commands.c

*** Time Series (TS) ***********************************************************
XML package
ACS_Utils.tcl + .nvizrc
picking

*** general used by Time Series and Picking ************************************
Resource file
.nvizrc
must be copied in the HOME DIRECTORY where grass is launched

(new) visualization/nviz/scripts/ACS_utils.tcl



+++ to visualization/nviz/Makefile add +++++++++++++++++++++++++++++++++++++++++

*** Time Series (TS) ***********************************************************
### ACS - BEGIN ###############################################################
$(MKDIR) $(INSTALL_DIR)/scripts/ACS_TimeSeries
$(INSTALL) scripts/ACS_TimeSeries/*.tcl $(INSTALL_DIR)/scripts/ACS_TimeSeries
$(INSTALL) scripts/nviz_params $(INSTALL_DIR)/nviz_params
### ACS - END #################################################################




+++ to visualization/nviz/src/Makefile add +++++++++++++++++++++++++++++++++++++

*** flythrough *****************************************************************
togl_flythrough.o

*** Site attributes ************************************************************
site_attr_commands.o

*** Site highlight *************************************************************
site_highlight_commands.o

*** Picking ********************************************************************
pick_vect_commands.o




+++ to panelIndex file add +++++++++++++++++++++++++++++++++++++++++++++++++++++

*** Resize *********************************************************************
resize

*** Site highlight *************************************************************
highlight

*** Picking ********************************************************************
pick

*** Time Series (TS) ***********************************************************
timeSeries



+++ to tclIndex file add +++++++++++++++++++++++++++++++++++++++++++++++++++++++

*** Resize *********************************************************************
set auto_index(mkresizePanel) "source $dir/panel_resize.tcl"

*** Site highlight *************************************************************
set auto_index(mkhighlightPanel) "source $dir/panel_highlight.tcl"

*** Picking ********************************************************************
set auto_index(mkpickPanel) "source $dir/panel_pick.tcl"

*** Time Series (TS) ***********************************************************
set auto_index(mktimeSeriesPanel) "source $dir/panel_timeSeries.tcl"


+++ visualization/nviz/scripts +++++++++++++++++++++++++++++++++++++++++++++++++


*** flythrough *****************************************************************
(new) visualization/nviz/scripts/flythrough.tcl
(mod) visualization/nviz/scripts/panel_main.tcl
(mod) visualization/nviz/scripts/panel_kanimator.tcl

*** Resize *********************************************************************
(new) visualization/nviz/scripts/panel_resize.tcl

*** Site attributes ************************************************************
(mod) visualization/nviz/scripts/panel_site.tcl
(new) visualization/nviz/scripts/site_attr.tcl
(mod) visualization/nviz/scripts/colorPopup.tcl
(mod) visualization/nviz/scripts/ACS_utils.tcl

*** Site highlight *************************************************************
(new) visualization/nviz/scripts/panel_highlight.tcl

*** Picking ********************************************************************
(new) visualization/nviz/scripts/panel_pick.tcl

*** Time Series (TS) ***********************************************************
(mod) visualization/nviz/scripts/panel_surf.tcl
(mod) visualization/nviz/scripts/panel_vect.tcl
(mod) visualization/nviz/scripts/nviz2.2_script
(new) visualization/nviz/scripts/panel_timeSeries.tcl

(new) visualization/nviz/scripts/ACS_TimeSeries/*.tcl
	directory contains:
		TS_init.tcl
		TS_nviz.tcl
		TS_file.tcl
		TS_show.tcl
		TS_time.tcl
		TS_kf_panel.tcl
		TS_kf_win.tcl




+++ visualization/nviz/src +++++++++++++++++++++++++++++++++++++++++++++++++++++

*** flythrough *****************************************************************
(new) visualization/nviz/src/togl_flythrough.c
(mod) visualization/nviz/src/quick_draw.c
(mod) visualization/nviz/src/nviz_init.c

*** Site attributes ************************************************************
(new) visualization/nviz/src/site_attr_commands.c
(mod) visualization/nviz/src/nviz_init.c
(mod) visualization/nviz/src/map_obj.c

*** Site highlight *************************************************************
(new) visualization/nviz/src/site_highlight_commands.c
(mod) visualization/nviz/src/nviz_init.c

*** Picking ********************************************************************
(new) visualization/nviz/src/pick_vect_commands.c
(mod) visualization/nviz/src/nviz_init.c

*** Time Series (TS) ***********************************************************
(mod) visualization/nviz/src/nviz_init.c
(mod) visualization/nviz/src/map_obj.c




+++ visualization/nviz/bitmaps +++++++++++++++++++++++++++++++++++++++++++++++++

*** flythrough *****************************************************************
(new) visualization/nviz/bitmaps/flythrough/*.gif
	a_lr.gif  b_c.gif   b_lc.gif  b_lr.gif  vuota.gif
	a_ud.gif  b_cr.gif  b_l.gif   b_r.gif

*** Time Series (TS) ***********************************************************
(new) visualization/nviz/bitmaps/TimeSeries/*.gif-xbm
	minus.xbm        oplink.xbm    plus.xbm  site.xbm  vect.xbm
	no_pickable.xbm  palette.gif   redo.xbm  surf.gif
	null.xbm         pickable.xbm  save.gif  undo.xbm





+++ lib/ogsf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*** flythrough *****************************************************************
(mod) lib/ogsf/gk.c
(mod) lib/ogsf/GK2.c

*** Site attributes ************************************************************
(mod) lib/ogsf/gstypes.h
(mod) lib/ogsf/Gp3.c
(mod) lib/ogsf/gpd.c
(mod) lib/ogsf/gsd_objs.c
(mod) lib/ogsf/gsurf.h

*** Site highlight *************************************************************
(mod) lib/ogsf/gstypes.h
(mod) lib/ogsf/Gp3.c
(mod) lib/ogsf/gpd.c

*** Time Series (TS) ***********************************************************
(mod) lib/ogsf/gstypes.h
(mod) lib/ogsf/gsds.c




+++ lib/sites ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(mod) lib/sites/sites.c
