08 March 2002: * added plug_crender.c 21 May 2002: * added rickr directory containing r_idisp.[ch], r_misc.[ch], r_new_resam_dset.[ch] and Makefile * added new program 3dresample (rickr/3dresample.c) * modified Makefile.INCLUDE to build rickr directory 06 June 2002: * added @SUMA_Make_Spec_FS 20 June 2002: * added @make_stim_file 21 June 2002: * modified afni_plugin.c, NLfit_model.c and thd_get1D.c to validate directories * added rickr/AFNI.changes.rickr 01 July 2002: * added rai orientation to plug_crender.c * added plug_crender.so target to Makefile.INCLUDE for use of librickr.a 02 July 2002: * modified 3dresample - fully align dataset to the master (not just dxyz and orient) - removed '-zeropad' option (no longer useful with new alignment) * modified r_new_resma_dset.[ch] - r_new_resam_dset() now takes an additional mset argument, allowing a master alignment dataset (overriding dxyz and orient inputs) * modified plug_crender.c to pass NULL for the new mset argument to r_new_resam_dset() * modified @SUMA_AlignToExperiment, removing '-zeropad' argument when running program 3dresample 15 July 2002: * added @SUMA_Make_Spec_SF and @make_stim_file to SCRIPTS in Makefile.INCLUDE 29 July 2002: * modified plug_crender.c to allow arbitrary orientation and grid spacing of functional overlay (no longer needs to match underlay) * modified r_new_resam_dset.c to set view type to that of the master * updated VERSION of 3dresample to 1.2 (to note change to r_new_resam_dset) 05 August 2002: * modified plug_crender.c (rv 1.5) to align crosshairs with master grid * added ENTRY() and RETURN() statements 11 September 2002: * added rickr/file_tool.[ch] * modified rickr/Makefile and Makefile.INCLUDE to be able to build file_tool (note that file_tool will not yet be built automatically) * modified r_idisp.c to include r_idisp_vec3f() 20 September 2002: * modified thd_opendset.c so that HEAD/BRIK are okay in directory names (see 'fname' and 'offset' in THD_open_one_dataset()) 26 September 2002: * modified plug_crender.c - calculate and draw crosshairs directly - added debugging interface (access via 'dh' in opacity box) * modified cox_render.[ch] - pass rotation matrix pointer to CREN_render() * modified testcox.c - pass NULL to CREN_render() for rotation matrix pointer 01 October 2002: * modified Makefile.INCLUDE to build file_tool automatically 23 October 2002: * modified plug_crender.c so that Incremental rotation is the default 29 October 2002: * modified plug_second_dataset.c and plug_nth_dataset.c to update dataset pointers from idcodes on a RECEIVE_DSETCHANGE notification 22 November 2002: * added new program Hfile, including files rickr/Hfile.[ch] * modified rickr/Makefile and Makefile.INCLUDE to build Hfile 27 November 2002: * Hfile is now Imon * many modifications to Imon.[ch] (formerly Hfile.[ch]) - see rickr/Imon.c : history for version 1.2 * renamed Hfile.[ch] to Imon.[ch] * modified rickr/Makefile to reflect the name change to Imon * modified Makefile.INCLUDE to reflect the name change to Imon 13 December 2002: * Imon no longer depends on Motif - mcw_glob.[ch] are used locally as l_mcw_glob.[ch] - Imon.c now depends only on l_mcw_glob.[ch] - rickr/Makefile now compiles Imon.c and l_mcw_glob.c with -DDONT_USE_MCW_MALLOC 14 January 2003: * update 3dresample to clear warp info before writing to disk 15 January 2003: * The highly anticipated release of Imon 2.0!! - Imon now has optional rtfeedme functionality. - add files rickr/realtime.[ch] - modified rickr/Imon.[ch] - modified rickr/Makefile o to build .o files with -DDONT_USE_MCW_MALLOC o to use $(EXTRA_LIBS) for sockets on solaris machines - modified Makefile.INCLUDE o Imon now also depends on rickr/realtime.[ch] o pass $(EXTRA_LIBS) to the make under rickr 27 January 2003: * modified Makefile.solaris28_gcc : defined EXTRA_LIBS_2 (is EXTRA_LIBS without -lgen and -ldl) * modified Makefile.INCLUDE for Imon to use EXTRA_LIBS_2 * modified rickr/Makefile for Imon to use EXTRA_LIBS_2 28 January 2003: * modified Imon.[ch] to add '-nt VOLUMES_PER_RUN' option (revision 2.1) 02 February 2003: * modified Imon.[ch] to fail only after 4 I-file read failures (rv 2.2) 10 February 2003: * added a new SUMA program, 3dSurfMaskDump o added files SUMA/SUMA_3dSurfMaskDump.[ch] o modified SUMA_Makefile to make 3dSurfMaskDump o modified Makefile.INCLUDE, targets: suma_exec, suma_clean, suma_link, suma_install * modified Makefile.solaris2[67]_gcc, defining EXTRA_LIBS_2 11 February 2003: * minor updates to SUMA/SUMA_3dSurfMaskDump.c (for -help) * 3dSurfMaskDump rv 1.2: do not free structs at the end 13 February 2003: * 3dSurfMaskDump rv 1.2: redo rv1.2: free structs conditionally (and init) 14 February 2003: * 3dSurfMaskDump rv 1.3: optionally enable more SUMA debugging * modified Imon.[ch] (rv 2.3): added '-start_file' option 18 February 2003: * modified Imon.[ch] (rv 2.4), realtime.[ch] o added DRIVE_AFNI command to open a graph window (-nt points) o added '-drive_afni' option, to add to the above command o pass Imon command as a dataset NOTE * modified rickr/Makefile - added WARN_OPT 20 February 2003: * modified rickr/Imon.[ch] rickr/realtime.c (Imon rv 2.5) o appropriately deal with missing first slice of first volume o separate multiple DRIVE_AFNI commands o minor modifications to error messages 28 February 2003: * modified rickr/file_tool.[ch]: added '-quiet' option 25 March 2003: * modified Imon to version 2.6: Imon.[ch] realtime.[ch] o added -GERT_Reco2 option to output script o RT: only send good volumes to afni o RT: added -rev_byte_order option o RT: also open relevant image window o RT: mention starting file in NOTE command 01 May 2003: * modified mcw_glob.c and rickr/l_mcw_glob.c - removed #ifdef around #include * modified imseq.c - added #include 06 May 2003: * file_tool 1.3 - added interface for GEMS 4.x image files o added ge4_header.[ch] - all of the processing for 4.x images o added options for raw data display (disp_int2, disp_int4, disp_real4) o modified file_tool.[ch] - interface to ge4 o modified rickr/Makefile - file_tool depends on ge4_header.o o modified Makefile.INCLUDE - file_tool depends on ge4_header.o 09 May 2003: * modified 3dmaskdump.c o added -index option for Mike B o combined changes with Bob's 28 May 2003: * added SUMA/SUMA_3dSurf2Vol.[ch] 29 May 2003: * modified Makefile.INCLUDE and SUMA/SUMA_Makefile to build 3dSurf2Vol * 3dSurf2Vol (version 1.0) is now part of the suma build * file_tool version 2.0 : added ge4 study header info o modified ge4_header.[ch] rickr/file_tool.[ch] 03 June 2003: * modified ge4_header.[ch] to be called from mri_read.c * modified mri_read.c - added mri_read_ge4 and call from mri_read_file() * modified mrilib.h - added declaration for mri_read_ge4() * modified Makefile.INCLUDE - added ge4_header.o to MRI_OBJS for mri_read_file * modified file_tool (version 2.1) for slight change to ge4_read_header() 06 June 2003: * modified SUMA_3dSurfMaskDump.[ch] o now 3dSurfMaskDump version 2.0 o re-wrote program in terms of 3dSurf2Vol, to handle varying map types o added 'midpoint' map function 12 June 2003: * modified SUMA_3dSurf2Vol.c - minor changes to help and s2v_fill_mask2() * modified ge4_header.c to remove "static" warnings 17 June 2003: * modified SUMA_3dSurfMaskDump.[ch] -> version 2.1 o added 'ave' map function 19 June 2003: * modified SUMA_3dSurfMaskDump.[ch] -> version 2.2 o added -m2_index INDEX_TYPE for the option of indexing across nodes o set the default of -m2_steps to 2 o replace S2V with SMD in macros * modified SUMA_ParseCommands.c o In SUMA_FreeMessageListData(), do not free Message or Source, as they are added as static or local strings (but never alloc'd). 26 June 2003: * modified Imon.[ch], realtime.c to add axis offset functionality -> Imon version 2.7 27 June 2003: * modified Imon.c, realtime.c to pass BYTEORDER command to realtime plugin -> Imon version 2.8 * modified plug_realtime.c to handle BYTEORDER command 30 June 2003: * modified README.realtime to provide details of the BYTEORDER command * modified plug_realtime.c to accept BYTEORDER for MRI_complex images 21 July 2003: * modified SUMA_3dSurfMaskDump.[ch] -> version 2.3 - fixed a problem: voxels outside gpar dataset should be skipped (or get a special value, like 0) - added min/max distance output (at debug level > 0) 22 July 2003: * modified plug_crender.c to handle bigmode color bar (version 1.8) ** need to add bigmode information to widget storage * modified SUMA_3dSurf2Vol.[ch] -> version 1.2 - see 3dSurfMaskDump: skip nodes outside dataset space 27 July 2003: * modified 3dresample.c (v1.4), file_tool.[ch] (v2.2), Imon.c (v2.9), realtime.[ch] (v2.9), r_idisp.[ch] (v1.2) - added CHECK_NULL_STR() to questionable strings for printing (old glibc doesn't print (nil)) * modified Imon.h - increase IFM_EPSILON to 0.01 and IFM_MAX_DEBUG to 4 05 August 2003: * renamed SUMA_3dSurfMaskDump.[ch] to SUMA_3dVol2Surf.[ch] * modified Makefile.INCLUDE and SUMA/SUMA_Makefile_NoDev for 3dVol2Surf * modified SUMA_3dVol2Surf (major re-write -> version 3.0) - all output functions now go through dump_surf_3dt - dump_surf_3dt() is a generalized function to get an MRI_IMARR for one or a pair of nodes, by converting to a segment of points - added v2s_adjust_endpts() to apply segment endpoint modifications - added segment_imarr() to get the segment of points and fill the MRI_IMARR list (along with other info) - filter functions have been taken to v2s_apply_filter() - added min, max and seg_vals map functions (filters) - added options of the form -f_pX_XX to adjust segment endpoints - added -dnode option for specific node debugging - changed -output option to -out_1D - added new debug info - added checking of surface order (process from inner to outer) * modified Imon (-> v2.10): added '-sp SLICE_PATTERN' option 14 August 2003: * modified Imon.[ch], realtime.h: - added '-quit' option - allow both 'I.*' and 'i.*' filenames 15 August 2003: * modified 3dDeconvolve.c - only output timing with -jobs option * modified Makefile.INCLUDE - fix cygwin compile - created PROGRAM_EXE targets for Imon.exe, file_tool.exe, 3dresample.exe 20 August 2003: * modified Imon.c (-> v3.0) - retest errors before reporting them - major version change for high numbers, plus new warning output 02 September 2003: * modified Imon.c (->v3.1) - added '-gert_outdir OUTPUT_DIR' option 08 September 2003: * modified L_CREATE_SPEC write error to name correct directory 11 September 2003: * modified 3dfim+.c: read_one_time_series() was still using old 'filename' 17 September 2003: * modified SUMA_3dVol2Surf.c: fixed help info for '-cmask option' 21 September 2003: * modified SUMA_3dVol2Surf.c: - added max_abs mapping function - added '-oob_index' and '-oob_value' options - added CHECK_NULL_STR macro 23 September 2003: * modified SUMA_3dVol2Surf.c: added help for -no_header option 01 October 2003: * modified SUMA_3dVol2Surf.c: added -oom_value option and help example 02 October 2003: * major upgrades to 3dSurf2Vol (-> v2.0) - changes accepting surface data, surface coordinates, output data type, debug options, multiple sub-brick output, and segment alterations - added the following options: '-surf_xyz_1D', '-sdata_1D', '-data_expr', '-datum', '-dnode', '-dvoxel', '-f_index', '-f_p1_fr', '-f_pn_fr', '-f_p1_mm', '-f_pn_mm' 06 October 2003: * modified 2dImReg.c: if nsl == 0, use nzz for num_slices 07 October 2003: * modified plug_roiedit.[ch]: old/new -> Bold/Bnew for C++ compilation 08 October 2003: * modified @SUMA_AlignToExperiment to use tcsh instead of csh (for $#) 20 October 2003: * modified SUMA files SUMA_Load_Surface_Object.[ch] SUMA_MiscFunc.[ch] and SUMA_Surface_IO.[ch] to make non-error output optional via a debug flag - renamed the following functions to XXX_eng (engine functions): SUMA_Load_Surface_Object, SUMA_LoadSpec, SUMA_SurfaceMetrics, SUMA_Make_Edge_List, SUMA_FreeSurfer_Read - wrote functions with original names to call engines with debug flags set * modified SUMA_3dVol2Surf.c to call the new SUMA_LoadSpec_eng() (-> v3.5) * modified SUMA_3dSurf2Vol.c to call the new SUMA_LoadSpec_eng() (-> v2.1) * modified rickr/r_idisp.c to handle new ALLOW_DATASET_VLIST macro (-> v1.3) 21 October 2003: * modified SUMA_3dVol2Surf.c to complete the -f_keep_surf_order option (-> v3.6) 30 October 2003: * modified 3dbucket.c to search for trailing view type extension from end (under -glueto option processing) * modified plug_realtime.c to compute function on registered data 05 November 2003: * modified SUMA_3dVol2Surf.c to include ENTRY() stuff (3dVol2Surf -> v3.7) 07 November 2003: * Added SUMA_SurfMeasures.[ch] -> SurfMeasures (v0.2) - this is not a release version (this checkin is for backup) - supported functions are coord_A, coord_B, n_area_A, n_area_B, nodes, node_vol and thick 14 November 2003: * updates to SurfMeasures (v0.3 - not yet released) 19 November 2003: * more updates to SurfMeasures (v0.5) 01 December 2003: * finally!! SurfMeasures is ready for release (v1.0) - checked in v1.0 of SUMA/SUMA_SurfMeasures.[ch] * modified Makefile.INCLUDE for SurfMeasures * modified SUMA/SUMA_Makefile_NoDev for SurfMeasures 03 December 2003 * modified SUMA/SUMA_SurfMeasures.[ch] (v1.2) - added '-cmask' and '-nodes_1D' options 16 December 2003 * modified SUMA_Load_Surface_Object.[ch] - added functions: SUMA_spec_select_surfs(), SUMA_swap_spec_entries(), SUMA_unique_name_ind(), SUMA_coord_file(), swap_strings() - made change to restrict spec struct (and therefore surface loading) to surfaces named in a list * modified SUMA_SurfMeasures.[ch] (-> SurfMeasures v1.3) - added '-surf_A' and '-surf_B' to specify surfaces from the spec file (goes through new function SUMA_spec_select_surfs()) - fixed loss of default node indices (from -nodes_1D change) - added '-hist' option - display angle averages only if at least 1 total is computed * modified SUMA_3dVol2Surf.[ch] (-> 3dVol2Surf v3.8) - added '-surf_A' and '-surf_B' to specify surfaces from the spec file - depreciated option '-kso' - added '-hist' option 18 December 2003 * modified SUMA_3dSurf2Vol[ch] (-> 3dSurf2Vol v2.2) - added '-surf_A' and '-surf_B' to specify surfaces from the spec file - added '-hist' option * modified SUMA_3dSurf2Vol[ch] (-> 3dSurf2Vol v3.0) - removed requirement of 2 surfaces for most functions (this was not supposed to be so easy) 22 December 2003 * modified afni_graph.[ch] to add Mean and Sigma to bottom of graph window 07 January 2004 * modified 3dresample.c - added suggestion of 3dfractionize to -help output - added -hist option 13 January 2004 * modified Imon.[ch] realtime.[ch] - added '-zorder ORDER' option for slice patterns in real-time mode (the default has been changed from 'seq' to 'alt') - add '-hist' option 22 January 2004 * modified SUMA_3dVol2Surf.[ch] (-> 3dVol2Surf v3.9) - added use of normals to compute segments, instead of second surface (see options '-use_norms', '-norm_len', '-keep_norm_dir') - reversed order of '-hist' output * modified SUMA_SurfMeasures.[ch] (-> SurfMeasures v1.4) - fixed node coord output error when '-nodes_1D' gets used - added '-sv' option to examples (recommended) - reversed order of '-hist' output 23 January 2004 * modified SUMA_3dVol2Surf.c, SUMA_3dSurf2Vol.c and SUMA_SurfMeasures.c ( -> v4.0 -> v3.1 -> v 1.5 ) - SUMA_isINHmappable() is depricated, check with AnatCorrect field 29 January 2004 * modified plug_realtime.c : - allow 100 chars in root_prefix via PREFIX (from 31) - x-axis of 3-D motion graphs changed from time to reps - plot_ts_... functions now use reg_rep for x-axis values - reg_graph_xr is no longer scaled by TR - added (float *)reg_rep, for graphing with x == rep num - added RT_set_grapher_pinnums(), to call more than once - added GRAPH_XRANGE and GRAPH_YRANGE command strings for control over the scales of the motion graph - if GRAPH_XRANGE and GRAPH_YRANGE commands are both passed, do not display the final (scaled) motion graph * modified README.realtime with details on GRAPH_XRANGE and GRAPH_YRANGE 10 February 2004: * modified SUMA_3dSurf2Vol.c (-> v3.2) to add debug output for AnatCorrect * modified SUMA_3dVol2Surf.c (-> v4.1) to add debug output for AnatCorrect 11 February 2004: * modified SUMA_SurfMeasures.c (-> v1.6) to add debug output for AnatCorrect 13 February 2004: * modified README.realtime to include the GRAPH_EXPR command * modified plug_realtime.c: - added RT_MAX_PREFIX for incoming PREFIX command - if GRAPH_XRANGE or GRAPH_YRANGE is given, disable respective 'pushing' - added GRAPH_EXPR command, as explained in README.realtime - added parser functionality to convert 6 graphs to 1 via the expression * modified Imon.[ch], realtime.[ch] -> (Imon v3.3) - added '-rt_cmd' option for passing commands to the realtime plugin - the '-drive_cmd' option can now be used multiple times - the realtime zorder is defaulting to seq again (affects physical order) - passed lists of drive and RT commands to realtime plugin 18 February 2004: * modified SUMA_3dVol2Surf.[ch] (->v4.2) - add functionality for mapping functions that require sorting - added mapping functions 'median' and 'mode' 19 February 2004: * modified SUMA_3dVol2Surf.[ch] (->v4.3) to track 1dindex sources 20 February 2004: * modified plug_maxima.c - added ENTRY/RETURN calls - error: do not process last plane in find_local_maxima() 23 February 2004: * modified mri_dup.c to allow NN interpolation if AFNI_IMAGE_ZOOM_NN is Y * modified afni_pplug_env.c to add control for AFNI_IMAGE_ZOOM_NN * modified README.environment to add a description of AFNI_IMAGE_ZOOM_NN * modified SUMA_SurfMeasures.[ch] to add functions: 'n_avearea_A', 'n_avearea_B', 'n_ntri' 01 March 2004: * fixed mbig.c (was using AFMALL() without #include), left malloc() for speed 04 March 2004: * modified 3dresample.c to check RESAM_shortstr, reversed history 08 March 2004: * modified 3dFWHM.c to output NO_VALUE when results cannot be computed 15 March 2004: * modified 3dfim+.c: init sum to 0.0 in set_fim_thr_level() 17 March 2004: * modified file_tool.[ch] (-> v3.0), adding binary data editing (this was the original goal of the program, yet it took 18 months...) - added ability to modify 1, 2 or 4-byte signed or unsigned ints - added ability to modify 4 or 8-byte reals (floats or doubles) - added '-ge_off' option to display file offsets for certain GE fields - added '-hist' option to display module history 24 March 2004: * modified file_tool.c (-> v3.2), only check max length for mods 30 March 2004: * made history notes of ziad's added argument to SUMA_LoadSpec_eng() - 3dSurf2Vol (v3.3), 3dVol2Surf (v4.4), SurfMeasures (v1.8) 31 March 2004: * added rickr/serial_helper.c (-> v1.0) - this tcp server passes registration correction params to a serial port * modified plug_realtime.c - added the ability to pass registration correction parameters over a tcp socket (see 'serial_helper -help') * modified afni_pplug_env.c, adding AFNI_REALTIME_MP_HOST_PORT * modified README.environment, describing AFNI_REALTIME_MP_HOST_PORT * modified Makefile.INCLUDE, for building serial_helper * modified rickr/Makefile, for building serial_helper 01 April 2004: * modified rickr/serial_helper.c (-> v1.2) - adding a little more help - checking for bad options 02 April 2004: * modified rickr/serial_helper.c [request of tross] (-> v1.3) - change default min to -12.7, and use -128 for serial start signal * modified plug_realtime.so [request of tross] - move RT_mp_comm_close() out of check for resize plot 07 April 2004: * modified SUMA_3dVol2Surf.c (-> v4.5) to fix default direction of normals * modified serial_helper.c (-> v1.4) to #include sys/file.h for Solaris * modified Makefile.INCLUDE to pass EXTRA_LIBS_2 for serial_helper build * modified rickr/Makefile to apply EXTRA_LIBS_2 for Solaris build 13 May 2004: * added -NN help info to 3drotate.c 17 May 2004: * modified edt_dsetitems.c: THD_deplus_prefix() to remove only the basic three extensions: +orig, +acpc, +tlrc (blame Shruti) 18 May 2004: * modified SUMA_3dVol2Surf.[ch] (-> v5.0) - allow niml output via '-out_niml' - accept '-first_node' and '-last_node' options for restricted output 19 May 2004: * modified coxplot/plot_ts.c:init_colors() to start with color 0 (not 1) (allows users to modify ...COLOR_01, too, matching README.environment) 20 May 2004: * modified SUMA_3dVol2Surf.c (-> v5.1) - Ziad reminded me to add help for options '-first_node' and '-last_node' 07 June 2004: * modified @RenamePanga - subtract 1 from init of Nwhatapain 21 June 2004: * modified SUMA_3dSurf2Vol.[ch] (-> v3.4): fixed -surf_xyz_1D option 07 July 2004: * modified 3dROIstats - added -minmax, -nzminmax options 20 July 2004: * modified 3dANOVA3.c to fix stack space problem (see N_INDEX) 22 July 2004: * modified SUMA_3dSurf2Vol.c (-> v3.5) fixed bug in sdata_1D file test 26 July 2004: * modified thd_mastery.c - changed THD_setup_mastery() to return int - added THD_copy_dset_subs(), to copy a list of sub-bricks * modified 3ddata.h: added declaration for THD_copy_dset_subs() * modified r_new_resam_dset.[ch], taking new sublist parameter * modified 3dresample.c (-> v1.7), passing NULL for sublist * modified plug_crender.c (-> v1.9a), temporary update, passing sublist NULL 27 July 2004: * modified plug_crender.c (-> v1.9) to resample only appropriate sub-bricks 28 July 2004: * modifed SUMA_3dSurf2Vol.c (-> v3.6), fixed bug where a previous change caused the default f_steps to revert from 2 to 1 (discovered by Kuba) 02 August 2004: * modified SUMA_SurfMeasures.c (-> v1.9), do not require anat correct * modified SUMA_glxdino.c, cast each 3rd gluTessCallback arg as _GLUfuncptr (some 64-bit machines have complained) 03 August 2004: * modified f2cdir/rawio.h, hiding read/write declarations for 64-bit machines * added Makefile.solaris9_suncc_64 * added Makefile.linux_gcc33_64 (for Fedora Core 2, x86-64) * modified SUMA_glxdino.c, SUMA_pixmap2eps.c to cast gluTessCallback()'s 3rd argument only in the case of the LINUX2 define 11 August 2004: * SUMA_SurfMeasures.c (-> v1.10) to warn users about ~10% inaccuracy in volume 26 August 2004: * modified FD2.c: added -swap_yes and -swap_no options 27 August 2004: * modified FD2.c: replace -swap_yes and -swap_no with a plain -swap (this alters the original program!) 01 September 2004: * modified 3dVol2Surf (-> v6.0) - created vol2surf() library files vol2surf.[ch] from core functions - this represents a significant re-write of many existing functions, modifying locations of action, structure names/contents, etc. - add library to libmri (as this will end up in afni proper) - separate all vol2surf.[ch] functions from SUMA_3dVol2surf.[ch] - keep allocation/free action of results struct within library - now using SUMA_surface struct for surface info (replace node_list) - added main vol2surf(), afni_vol2surf(), free_v2s_results(), and disp...() functions as vol2surf library interface - added options to control column output (-skip_col_NAME) - added -v2s_hist option for library history access * modified Makefile.INCLUDE to put the vol2surf functions in libmri - added vol2surf.o into CS_OBJS and vol2surf.h into LIBHEADERS * added vol2surf.[ch] into the src directory (for libmri) 02 September 2004: * modified 3dROIstats.c to fix the minmax initializer * modified vol2surf.[ch] SUMA_3dVol2Surf.[ch] (-> v6.1) : library shuffle 09 September 2004: * added plug_vol2surf.c: for setting the internal volume to surface options * modifed afni_plugin.[ch]: added function PLUTO_set_v2s_addrs() * modified vol2surf.c - in afni_vol2surf(), show options on debug - allow first_node > last_node if last is 0 (default to n-1) 17 September 2004: * modified SUMA_3dVol2Surf.[ch] (-> v6.2): - added -gp_index and -reverse_norm_dir options * modified vol2surf.[ch]: added support for gp_index and altered norm_dir 23 September 2004: * modified Makefile.linux_gcc33_64 for static Motif under /usr/X11R6/lib64 28 September 2004: * modified thd_coords.c and 3ddata.h, adding THD_3dmm_to_3dind_no_wod() 04 October 2004: * added afni_vol2surf.c: for computing SUMA_irgba from v2s_results * modified afni_niml.c: - if gv2s_plug_opts.ready, call AFNI_vol2surf_func_overlay() - use saved_map in case of calling vol2surf twice, indentically - only send nvtot and nvused to suma via AFNI_vnlist_func_overlay() * modified Makefile.INCLUDE: added afni_vol2surf.o to AFOBJS * modified plug_vol2surf.c: - now set global ready if all is well - clear norms if not in use - name all local functions PV2S_* - if debug > 0, display chosen surfaces in terminal - if debug > 1, display all possible surfaces in terminal - allow oob and oom values to be arbitrary - on debug, output complete surface listing in PV2S_check_surfaces() * modified vol2surf.c: - added thd_mask_from_brick() - added compact_results(), in case nalloc > nused - added realloc_ints() and realloc_vals_list() - in afni_vol2surf(), if 1 surf and no norms, set steps to 1 - in set_surf_results(), pass gp_index to v2s_apply_filter - in segment_imarr() o changed THD_3dmm_to_3dind() to new THD_3dmm_to_3dind_no_wod() o if THD_extract_series() fails, report an error - in init_seg_endpoints() o get rid of p1 and pn o save THD_dicomm_to_3dmm() until the end 06 October 2004: * modified afni.h: added AFNI_vol2surf_func_overlay() prototype * modified afni_niml.c:AFNI_process_niml_data() - added case for name "SUMA_node_normals" via SUMA_add_norms_xyz() * modified afni_suma.h: added SUMA_add_norms_xyz() prototype * modified afni_suma.c: added SUMA_add_norms_xyz() function * modified SUMA_SurfMeasures.c (->v1.11): to mention 'SurfPatch -vol' 07 October 2004: * modified afni_plugin.h: fixed extern name PLUTO_set_v2s_addrs() * modified afni.h: changed prototype for AFNI_vol2surf_func_overlay() * modified afni_niml.c - most of the file is part of a diff, beware... - received local_domain_parent and ID from suma - added local struct types ldp_surf_list and LDP_list - in AFNI_process_NIML_data(), broke process_NIML_TYPE blocks out as separate functions - added process_NIML_SUMA_node_normals() - modified AFNI_niml_redisplay_CB() to process surfaces over a list of local domain parents - added fill_ldp_surf_list(), to create an LDP list from the surfaces - added disp_ldp_surf_list(), for debug * modified afni_vol2surf.c - new params surfA, surfB, use_defaults for AFNI_vol2surf_func_overlay() - pass use_defaults to afni_vol2surf() * modified plug_vol2surf.c - added second surface pair to globals - small help and hint changes - fixed receive order of fr and mm offsets - verify that surface pairs have matching LDPs - added PV2S_disp_afni_surfaces() to list all surfaces w/indices * modified vol2surf.[ch] - added disp_v2s_plugin_opts() - dealt with default v2s mapping of surface pairs - added fill_sopt_default() - moved v2s_write_outfile_*() here, with print_header() - in afni_vol2surf(), actually write output files * modified afni_suma.[ch] - change idcode_domaingroup to idcode_ldp - add char label_ldp[64] - init label_ldp and idcode_ldp * modified SUMA_3dVol2Surf.[ch] (-> v6.3) - in suma2afni_surf() deal with LDP changes to SUMA_surface - changed write_outfile functions to v2s_* and moved them to library 25 October 2004: * modified afni_niml.c - use vol2surf for all surfaces now - so nvused is no longer computed - in ldp_surf_list, added _ldp suffix to idcode and label - added full_label_ldp for user clarity - added functions int_list_posn, slist_choose_surfs, slist_check_user_surfs and slist_surfs_for_ldp to handle an arbitrary number of surfaces per LDP - moved old debug off margin - pass data/threshold pointers to AFNI_vol2surf_func_overlay() - pass threshold element with rthresh - prepare for sending data to suma (but must still define new NIML type) can get data and global threshold from vol2surf - for users, try to track actual LDP label in full_label_ldp - allow absolute thresholding in thd_mask_from_brick() * modified plug_vol2surf.c - make sure the surface pairs are actually different - make sure surfaces have the same number of nodes - process all parameters, but only complain if "ready" - always pass along debug/dnode * modified afni_vol2surf.c:AFNI_vol2surf_func_overlay(): - pass Rdata and Rthr pointers, to optionally return data and thresh - require absolute thresholding for vol2surf mask * modified afni.h - updated AFNI_vol2surf_func_overlay() prototype * modified vol2surf.c - apply debug and dnode, even for defaults - if the user sets dnode, then skip any (debug > 0) tests for it - check for out of bounds, even if an endpoint is in (e.g. midpoint) 01 November 2004: * modified nifti1.h, correcting 3 small errors in the descriptions: - integers from 0 to 2^24 can be represented with a 24 bit mantissa - we require that a = sqrt(1.0-b*b-c*c-d*d) be nonnegative - [a,b,0,0] * [0,0,0,1] = [0,0,-b,a] * modified plug_maxima.[ch] - remove restrictions on threshold input - rearrange options, and add a Debug Level - increment style (should be in {1,2}, not {0,1} - add a little debug output, including show_point_list_s() - removed unused variables - true_max update in find_local_maxima() - added check for warp-on-demand failure 16 November 2004: * modified nifti1_io.[ch] nifti1_test.c to include changes from M Jenkinson - also modified nifti_validfilename, nifti_makebasename and added nifti_find_file_extension * added znzlib directory containing config.h Makefile znzlib.[ch] (unmodified from Mark Jenkinson, except not to define USE_ZLIB) * modified Makefile.INCLUDE to link znzlib.o into nifti1_test and with the CS_OBJS in libmri.a 03 December 2004: * modified nifti1_io.[ch]: - note: header extensions are not yet checked for - added formatted history as global string (for printing) - added nifti_disp_lib_hist(), to display the nifti library history - added nifti_disp_lib_version(), to display the nifti library version - re-wrote nifti_findhdrname() o used nifti_find_file_extension() o changed order of file tests (default is .nii, depends on input) o free hdrname on failure - made similar changes to nifti_findimgname() - check for NULL return from nifti_findhdrname() calls - removed most of ERREX() macros - modified nifti_image_read() o added debug info and error checking (on gni_debug > 0, only) o fail if workingname is NULL o check for failure to open header file o free workingname on failure o check for failure of nifti_image_load() o check for failure of nifti_convert_nhdr2nim() - changed nifti_image_load() to int, and check nifti_read_buffer return - changed nifti_read_buffer() to fail on short read, and to count float fixes (to print on debug) - changed nifti_image_infodump to print to stderr - updated function header comments, or moved comments above header - removed const keyword, changed nifti_image_load() to int, and added LNI_FERR() macro for error reporting on input files * modified nifti1_test.c - if debug, print header and image filenames before changing them - added -nifti_hist and -nifti_ver options 06 December 2004: * added list_struct.[ch] to create TYPE_list structures (for nifti, etc.) (see float_list, for example) * modified mrilib.h to #include list_struct.h * modified Makefile.INCLUDE, adding list_struct.o to CS_OBJS * modified vol2surf.c, changing float_list to float_list_t 10 December 2004: added header extensions to nifti library (v 0.4) * in nifti1_io.h: - added num_ext and ext_list to the definition of nifti_image - made many functions static (more to follow) - added LNI_MAX_NIA_EXT_LEN, for max nifti_type 3 extension length * added __DATE__ to version output in nifti_disp_lib_version() * added nifti_disp_matrix_orient() to print orientation information * added '.nia' as a valid file extension in nifti_find_file_extension() * added much more debug output * in nifti_image_read(), in the case of an ASCII header, check for * extensions after the end of the header * added nifti_read_extensions() function * added nifti_read_next_extension() function * added nifti_add_exten_to_list() function * added nifti_valid_extension() function * added nifti_write_extensions() function * added nifti_extension_size() function * in nifti_set_iname_offest(): - adjust offset by the extension size and the extender size - fixed the 'ceiling modulo 16' computation * in nifti_image_write_hdr_img2(): - added extension writing - check for NULL return from nifti_findimgname() * include number of extensions in nifti_image_to_ascii() output * in nifti_image_from_ascii(): - return bytes_read as a parameter, computed from the final spos - extract num_ext from ASCII header 11 Dec 2004: * added a description of the default operation to the Help in plug_vol2surf.c 14 Dec 2004: added loading a brick list to nifti1 library (v 0.5) * added nifti_brick_list type to nifti1_io.h, along with new prototypes * added main nifti_image_read_bricks() function, with description * added nifti_image_load_bricks() - library function (requires nim) * added valid_nifti_brick_list() - library function * added free_NBL() - library function * added update_nifti_image_for_brick_list() for dimension update * added nifti_load_NBL_bricks(), nifti_alloc_NBL_mem(), nifti_copynsort() and force_positive() (static functions) * in nifti_image_read(), check for failed load only if read_data is set * broke most of nifti_image_load() into nifti_image_load_prep() 15 Dec 2004: (v 0.6) added writing a brick list to nifti library, and and nifti library files under a new nifti directory * modified nifti1_io.[ch]: - nifti_read_extensions(): print no offset warning for nifti_type 3 - nifti_write_all_data(): o pass nifti_brick_list * NBL, for optional writing o if NBL, write each sub-brick, sequentially - nifti_set_iname_offset(): case 1 must have sizeof() cast to int - pass NBL to nifti_image_write_hdr_img2(), and allow NBL or data - added nifti_image_write_bricks() wrapper for ...write_hdr_img2() - prepared for compression use * modified Makefile.INCLUDE to use nifti directory (and for afni_src.tgz) * renamed znzlib directory to nifti * moved nifti1.h, nifti1_io.c, nifti1_io.h and nifti1_test.c under nifti * modified thd_analyzeread.c and thd_niftiread.c: nifti1_io.h is under nifti 16 Dec 2004: * moved nifti_stats.c into the nifti directory * modified Makefile.INCLUDE to compile nifti_stats from the nifti dir * nifti1.io.[ch] (v 0.7): minor changes to extension reading 21 Dec 2004: nifti library update (v 0.8) * in nifti_image_read(), compute bytes for extensions (see remaining) * in nifti_read_extensions(), pass 'remain' as space for extensions, pass it to nifti_read_next_ext(), and update for each one read * in nifti_valid_extension(), require (size <= remain) * in update_nifti_image_brick_list(), update nvox * in nifti_image_load_bricks(), make explicit check for nbricks <= 0 * in int_force_positive(), check for (!list) * in swap_nifti_header(), swap sizeof_hdr, and reorder to struct order * change get_filesize functions to signed ( < 0 is no file or error ) * in nifti_valid_filename(), lose redundant (len < 0) check * make print_hex_vals() static * in disp_nifti_1_header, restrict string field widths 23 Dec 2004: nifti library update (v 0.9) - minor updates * broke ASCII header reading out of nifti_image_read(), into new functions has_ascii_header() and read_ascii_image() * check image_read failure and znzseek failure * altered some debug output * nifti_write_all_data() now returns an int 29 Dec 2004: nifti library update (v 0.10) * renamed nifti_valid_extension() to nifti_check_extension() * added functions nifti_makehdrname() and nifti_makeimgname() * added function valid_nifti_extensions() * in nifti_write_extensions(), check for validity before writing * rewrote nifti_image_write_hdr_img2(): - set write_data and leave_open flags from write_opts - add debug print statements - use nifti_write_ascii_image() for the ascii case - rewrote the logic of all cases to be easier to follow * broke out code as nifti_write_ascii_image() function * added debug to top-level write functions, and free the znzFile * removed unused internal function nifti_image_open() * modified Makefiles for optional zlib compilation on: Makefile.linux_gcc32, Makefile.linux_gcc33_64, Makefile.macosx_10.3_G5 off: Makefile.linux_glibc22 Makefile.macosx_10.2, Makefile.macosx_10.3, Makefile.solaris29_suncc, Makefile.solaris9_suncc_64, Makefile.BSD, Makefile.darwin, Makefile.cygwin, Makefile.FreeBSD, Makefile.linuxPPC, Makefile.sgi10k_6.5, Makefile.sgi10k_6.5_gcc, Makefile.sgi5k_6.3, Makefile.solaris28_gcc, Makefile.solaris28_suncc, Makefile.solaris_gcc, Makefile.sparc5_2.5, Makefile.sparky, Makefile.sunultra 30 Dec 2004: nifti library and start of nifti_tool * modified nifti/nifti1_io.[ch] (library v 1.11) - moved static function prototypes from header to C file - free extensions in nifti_image_free() * added nifti/nifti_tool.[ch] (v 0.1) for new program, nifti_tool * modified Makefile.INCLUDE to compile nifti_tool * modified nifti/Makefile to compile nifti_stats nifti_tool and nifti1_test 03 Jan 2005: * modified mri_read.c:mri_imcount() to check for ':' after "3D" 04 Jan 2005: * afni_niml.c to allow changing the nodes for a surface, made receive message default to the terminal window * added a description of AFNI_SHOW_SURF_POPUPS in README.environment 07 Jan 2005: INITIAL RELEASE OF NIFTI LIBRARY (v 1.0) * added function nifti_set_filenames() * added function nifti_read_header() * added static function nhdr_looks_good() * added static function need_nhdr_swap() * exported nifti_add_exten_to_list symbol * fixed #bytes written in nifti_write_extensions() * only modify offset if it is too small (nifti_set_iname_offset) * added nifti_type 3 to nifti_makehdrname and nifti_makeimgname * added function nifti_set_filenames() * nifti library release 1.1: swap header in nifti_read_header() 07 Jan 2005: INITIAL RELEASE OF nifti_tool (v 1.0) * lots of functions * modified Makefile.INCLUDE to compile nifti_test, nifti_stats and nifti1_test automatically 11 Jan 2005: * modified afni_niml.c: slist_choose_surfs() check_user_surfs on nsurf == 1 14 Jan 2005: nifti_tool v1.1: * changed all non-error/non-debug output from stderr to stdout note: creates a mis-match between normal output and debug messages * modified act_diff_hdrs and act_diff_nims to do the processing in lower-level functions * added functions diff_hdrs, diff_hdrs_list, diff_nims, diff_nims_list * added function get_field, to return a struct pointer via a fieldname * made 'quiet' output more quiet (no description on output) * made hdr and nim_fields arrays global, so do not pass in main() * return (from main()) after first act_diff() difference 21 Jan 2005: * modified Makefile.INCLUDE per the request of Vinai Roopchansingh, adding $(IFLAGS) to the CC line for compiling whereami * submitted the updated plug_permtest.c from Matthew Belmonte 10 Feb 2005: * modified nifti1.h and nifti1_io.[ch] for Kate Fissell's doxygen updates * modified nifti1.h: added doxygen comments for extension structs * modified nifti1_io.h: put most #defines in #ifdef _NIFTI1_IO_C_ block * modified nifti1_io.c: - added a doxygen-style description to every exported function - added doxygen-style comments within some functions - re-exported many znzFile functions that I had made static - re-added nifti_image_open (sorry, Mark) - every exported function now has 'nifti' in the name (19 functions) - made sure every alloc() has a failure test - added nifti_copy_extensions function, for use in nifti_copy_nim_info - nifti_is_gzfile: added initial strlen test - nifti_set_filenames: added set_byte_order parameter option (it seems appropriate to set the BO when new files are associated) - disp_nifti_1_header: prints to stdout (a.o.t. stderr), with fflush * modified thd_niftiread.c to call nifti_swap_Nbytes (nifti_ is new) 14 Feb 2005: * modified plug_maxima.[ch]: - added 'Sphere Values' and 'Dicom Coords' interface options 16 Feb 2005: * modified 3dROIstats, added the -mask_f2short option 23 Feb 2005: * merged Kate's, Mark's and my own nifti code, and made other revisions * removed contents of nifti directory, and re-created it with the source tree from sourceforge.net * modified Makefile.INCLUDE to deal with the new nifti directories * modifed thd_analyzeread.c and thd_niftiread.c not to use include directories - they now have explicit targets in Makefile.INCLUDE 07 Mar 2005: * modified thd_coords.c: added THD_3dind_to_3dmm_no_wod() * modified 3ddata.h: added THD_3dind_to_3dmm_no_wod declaration * modified plug_maxima.[ch]: - output appropriate coords via new THD_3dind_to_3dmm_no_wod() - added new debug output - changed default separation to 4 voxels - added gr_fac for printing data values in debug mode 08 Mar 2005: * modified nifti1_io.[ch], adding global options struct, and optional validation in nifti_read_header() * modified nifti_tool.c to remove validation of nifti_1_header structs 17 Mar 2005: * modified 3dROIstats.c to properly check for failure to use -mask option 21 Mar 2005: * updated nifti tree with Kate's changes (to fsliolib, mostly) 22 Mar 2005: * removed all tabs from these files: - vol2surf.[ch] rickr/3dresample.c rickr/file_tool.[ch] - plug_crender.c plug_vol2surf.c - rickr/Imon.[ch] rickr/realtime.[ch] rickr/r_idisp.[ch] - rickr/r_misc.[ch] rickr/r_new_resam_dset.[ch] rickr/serial_helper.c - SUMA/SUMA_3dSurf2Vol.[ch] SUMA/SUMA_3dVol2Surf.[ch] 24 March 2005: * modified strblast.c: added -help, -new_char, -new_string, -unescape options 05 April 2005: NIFTI changes also uploaded at sourceforge.net * modified nifti/nifti1_io.[ch] - added nifti_read_collapsed_image(), an interface for reading partial datasets, specifying a subset of array indices rci_alloc_mem(), and make_pivot_list() - added nifti_nim_is_valid() to check for consistency (more to do) - added nifti_nim_has_valid_dims() to do many dimensions tests * modified nifti/Makefile: removed escaped characters, added USEZLIB defn. * modified nifti/niftilib/Makefile: added nifti1_io.o target, for USEZLIB * modified nifti/znzlib/Makefile: removed USEZLIB defn. * modified nifti/utils/nifti_tool.c: (v 1.5) cannot mod_hdr on gzipped file(s) 06 April 2005: * modified thd_niftiread.c to set ADN_datum with any ADN_ntt or ADN_nvals * modified edt_dsetitems.c to init new brick types to that of sub-brick 0, in the case where a type array is not provided 08 April 2005: * modifited nifti_tool.[ch] (-> v1.6) - added -cbl: 'copy brick list' dataset copy functionality - added -ccd: 'copy collapsed dimensions' dataset copy functionality - added -disp_ts: 'disp time series' data display functionality - moved raw data display to disp_raw_data() * modified nifti1_io.[ch] (-> v1.7) - added nifti_update_dims_from_array() - to update dimensions - modified nifti_makehdrname() and nifti_makeimgname(): if prefix has a valid extension, use it (else make one up) - added nifti_get_intlist - for making an array of ints - fixed init of NBL->bsize in nifti_alloc_NBL_mem() {thanks, Bob} * modified thd_niftiread.c, thd_writedset.c and afni_pplug_env.c to use the environment variable AFNI_NIFTI_DEBUG * modified README.environment for AFNI_NIFTI_DEBUG 14 April 2005: * modified nifti/Makefile: mention 'docs' dir, not 'doc' * modified nifti/utils/Makefile: added -Wall to nifti_tool build command * modified nifti/niftilib/nifti1.h: doxygen comments for extension fields * modified nifti/niftilib/nifti1.[ch] (-> v1.8) - added nifti_set_type_from_names(), for nifti_set_filenames() (only updates type if number of files does not match it) - added is_valid_nifti_type(), just to be sure - updated description of nifti_read_collapsed_image() for *data change (if *data is already set, assume memory exists for results) - modified rci_alloc_mem() to allocate only if *data is NULL * modified nt_opts in nifti/utils/niftitool.h: ccd->cci, dts_lines->dci_lines, ccd_dims->ci_dims, and added dci (for display collapsed image) * modified nifti/utils/niftitool.[ch] (-> v1.7) - added -dci: 'display collapsed image' functionality - modified -dts to use -dci - modified and updated the help in use_full() - changed copy_collapsed_dims to copy_collapsed_image, etc. - fixed problem in disp_raw_data() for printing NT_DT_CHAR_PTR - modified act_disp_ci(): o was act_disp_ts(), now displays arbitrary collapsed image data o added missed debug filename act_disp_ci() o can now save free() of data pointer for end of file loop - modified disp_raw_data() o takes a flag for whether to print newline o trailing spaces and zeros are removed from printing floats - added clear_float_zeros(), to remove trailing zeros 19 April 2005: * modified nifti1_io.[ch] (-> v1.9) : - added extension codes NIFTI_ECODE_COMMENT and NIFTI_ECODE_XCEDE - added nifti_type codes NIFTI_MAX_ECODE and NIFTI_MAX_FTYPE - added nifti_add_extension() {exported} - added nifti_fill_extension() as a static function - added nifti_is_valid_ecode() {exported} - nifti_type values are now NIFTI_FTYPE_* file codes - in nifti_read_extensions(), decrement 'remain' by extender size, 4 - in nifti_set_iname_offset(), case 1, update if offset differs - only output '-d writing nifti file' if debug > 1 * modified nifti_tool.[ch] (-> v1.8) : - added int_list struct, and keep_hist, etypes & command fields to nt_opts - added -add_comment_ext action - allowed for removal of multiple extensions, including option of ALL - added -keep_hist option, to store the command as a COMMENT extension (includes fill_cmd_string() and add_int(), is done for all actions) - added remove_ext_list(), for removing a list of extensions by indices - added -strip action, to strip all extensions and descrip fields