00001
00002
00003
00004
00005
00006
00007 #ifndef _AFNI_HEADER_
00008 #define _AFNI_HEADER_
00009
00010 #include "mrilib.h"
00011 #include "imseq.h"
00012 #include "xutil.h"
00013 #include "pbar.h"
00014 #include "afni_graph.h"
00015 #include "afni_pcor.h"
00016
00017 #include <stdio.h>
00018 #include <string.h>
00019 #include <stdlib.h>
00020 #include <math.h>
00021 #include <time.h>
00022
00023 #include <Xm/Separator.h>
00024 #include <Xm/Display.h>
00025 #include <Xm/CascadeB.h>
00026
00027 #include "logo.h"
00028
00029 #define WARP_4D
00030
00031 #ifndef DONT_USE_OPTMENUS
00032 #ifndef USE_OPTMENUS
00033 #define USE_OPTMENUS
00034 #endif
00035 #endif
00036
00037
00038
00039
00040
00041 typedef struct {
00042 float dy , dz , gamma , gsfac ;
00043 Boolean read_images , read_sessions , auto_purge ,
00044 resize_images , keep_logo , pos_func , xtwarns ,
00045 destruct , tlrc_big , warp_4D , unique_dcs ;
00046 int ncolor , datum , ignore , allow_rt , skip_afnirc ;
00047 char orient_code[4] ;
00048 char title_name[32] ;
00049 #ifdef ALLOW_PLUGINS
00050 int noplugins , noplugouts ;
00051 int plugout_code ;
00052 #endif
00053
00054 int first_file_arg , recurse ;
00055 int elide_quality ;
00056 int no_frivolities ;
00057 int install_cmap ;
00058 int left_is_left ;
00059 int read_tim ;
00060 int read_1D ;
00061
00062 Boolean read_dsets ;
00063
00064 char * layout_fname ;
00065
00066 int enable_suma ;
00067
00068 int quiet ;
00069
00070 int yes_niml ;
00071 int port_niml ;
00072
00073 char * script_fname ;
00074 } AF_options ;
00075
00076 #ifdef MAIN
00077 AF_options GLOBAL_argopt ;
00078 #else
00079 extern AF_options GLOBAL_argopt ;
00080 #endif
00081
00082
00083
00084
00085 #undef POPUP_CHOOSERS
00086
00087
00088
00089 #define UNDERLAY_ANAT 0
00090 #define UNDERLAY_ALLFUNC 1
00091 #define UNDERLAY_THRFUNC 2
00092
00093 #define UNDERLAY_ANAT_BVAL (1 << UNDERLAY_ANAT )
00094 #define UNDERLAY_ALLFUNC_BVAL (1 << UNDERLAY_ALLFUNC)
00095 #define UNDERLAY_THRFUNC_BVAL (1 << UNDERLAY_THRFUNC)
00096
00097 #define LAST_UNDERLAY_TYPE 1
00098 #define ISFUNC_UNDERLAY(uu) \
00099 ((uu)==UNDERLAY_ALLFUNC||(uu)==UNDERLAY_THRFUNC)
00100
00101 static char * UNDERLAY_typestr[] =
00102 { "ULay underlay" , "OLay underlay" , "OLay@Thr underlay" } ;
00103
00104 #define DEFAULT_FIM_SCALE 10000
00105
00106 #define DMODE_BRICK 0
00107 #define DMODE_WOD 1
00108
00109 #define DMODE_BRICK_BVAL (1 << DMODE_BRICK)
00110 #define DMODE_WOD_BVAL (1 << DMODE_WOD )
00111
00112
00113 #define USE_SONNETS
00114 #define WANT_RWCOX_IMAGE
00115 #define USE_SKIT
00116
00117 #ifdef NO_FRIVOLITIES
00118 # undef USE_SONNETS
00119 # undef WANT_RWCOX_IMAGE
00120 # undef USE_SKIT
00121 #endif
00122
00123 #define TOPSIZE 2048
00124
00125 #include "AFNI_label.h"
00126 #define VERSION AFNI_VERSION_LABEL
00127
00128 #ifdef MAIN
00129 #define AFNI_about \
00130 "************************************************\n" \
00131 "* GPL AFNI: Analysis of Functional NeuroImages *\n" \
00132 "* Version " VERSION " *\n" \
00133 "* *\n" \
00134 "* Major portions are Copyright 1994-2000, *\n" \
00135 "* Medical College of Wisconsin *\n" \
00136 "* Milwaukee, WI 53226-0509 *\n" \
00137 "* See file README.copyright for information, *\n" \
00138 "* or the Datamode->Misc->License menu item. *\n" \
00139 "* *\n" \
00140 "* Released to the public by MCW under the GNU *\n" \
00141 "* General Public License (version 2), Dec 2000 *\n" \
00142 "* *\n" \
00143 "* Author: Robert W Cox, PhD *\n" \
00144 "************************************************"
00145
00146 char AFNI_tophelp[TOPSIZE] = AFNI_about ;
00147 char AFNI_abohelp[1024] = AFNI_about ;
00148 #else
00149 extern char AFNI_tophelp[TOPSIZE] ;
00150 extern char AFNI_abohelp[1024] ;
00151 #endif
00152
00153 #ifdef USE_SONNETS
00154
00155 extern void AFNI_popup_sonnet( Widget,int ) ;
00156
00157 # ifdef MAIN
00158 # include "sonnets.h"
00159 static int sonnet_index = 0 ;
00160 void RESET_sonnet(void)
00161 { int ll ;
00162 sprintf( AFNI_tophelp , " * %d *\n" ,
00163 sonnet_index+1 ) ; ll = strlen(AFNI_tophelp) ;
00164 strcpy( &(AFNI_tophelp[ll]) , sonnets[sonnet_index] ) ;
00165 sonnet_index = (sonnet_index+lrand48()) % NUM_SONNETS ;
00166 }
00167 # else
00168 extern void RESET_sonnet(void) ;
00169 # endif
00170
00171 # define RESET_AFNI_QUIT(iqqq) \
00172 { AFNI_quit_CB(NULL,(XtPointer)(iqqq),NULL) ; RESET_sonnet() ; }
00173
00174 #else
00175
00176 # define RESET_AFNI_QUIT(iqqq) AFNI_quit_CB(NULL,(XtPointer)(iqqq),NULL)
00177
00178 #endif
00179
00180
00181
00182
00183
00184 #define CLEAR_MONTAGE(iq,bb) \
00185 do{ int bz = abs((bb)->a123.ijk[2])-1 ; \
00186 (iq)->vinfo->xhairs_ndown.ijk[bz] = \
00187 (iq)->vinfo->xhairs_nup.ijk[bz] = \
00188 (iq)->vinfo->xhairs_nskip.ijk[bz] = 0 ; } while(0)
00189
00190
00191
00192 #define ORIMASK_LR ((1<<ORI_R2L_TYPE) | (1<<ORI_L2R_TYPE))
00193 #define ORIMASK_AP ((1<<ORI_P2A_TYPE) | (1<<ORI_A2P_TYPE))
00194 #define ORIMASK_IS ((1<<ORI_I2S_TYPE) | (1<<ORI_S2I_TYPE))
00195
00196 #define ORIMASK_LR_AP (ORIMASK_LR | ORIMASK_AP)
00197 #define ORIMASK_LR_IS (ORIMASK_LR | ORIMASK_IS)
00198 #define ORIMASK_AP_IS (ORIMASK_AP | ORIMASK_IS)
00199 #define ORIMASK_ALL (ORIMASK_LR | ORIMASK_AP | ORIMASK_IS)
00200
00201 typedef struct {
00202 gen_func * receiver_func ;
00203 void * receiver_data ;
00204 int receiver_mask ;
00205 char * receiver_funcname ;
00206 } AFNI_receiver ;
00207
00208 typedef struct {
00209 int i1 , j2 , k3 ;
00210 float xi , yj , zk ;
00211
00212 int i1_old , j2_old , k3_old ;
00213
00214 Boolean xhairs_show_montage , xhairs_periodic , xhairs_all ;
00215 THD_ivec3 xhairs_ndown , xhairs_nup , xhairs_nskip ;
00216 int time_index , top_index , time_on ;
00217
00218 int xhairs_orimask ;
00219
00220 int anat_index , fim_index , thr_index ;
00221
00222 Boolean crosshair_visible , inverted_pause ;
00223 int crosshair_gap , crosshair_ovcolor , crosshair_gap_old ;
00224
00225 int view_type ,
00226 underlay_type ;
00227
00228 int sess_num , anat_num , func_num ;
00229
00230 XmString old_crosshair_label ;
00231
00232 Boolean func_visible , force_anat_wod , force_func_wod ,
00233 pts_visible , show_voxind ;
00234 float func_threshold , resam_vox ;
00235 float func_thresh_top ;
00236 int func_resam_mode , anat_resam_mode , pts_color ;
00237 int thr_resam_mode ;
00238
00239
00240
00241
00242 Boolean use_autorange , use_posfunc ;
00243 float fim_autorange , fim_range ;
00244 XmString old_range_label , autorange_label ;
00245
00246 char anat_val[32] , func_val[32] , thr_val[32] ;
00247
00248
00249
00250
00251 AFNI_receiver ** receiver ;
00252 int num_receiver ;
00253 int drawing_enabled , drawing_mode ;
00254 Pixel drawing_pixel ;
00255
00256 int writeownsize ;
00257
00258 int tempflag ;
00259
00260 int see_ttatlas ;
00261
00262 int view_setter ;
00263
00264 float func_pval ;
00265
00266 int stats_anat_ok,
00267 stats_func_ok,
00268 stats_thresh_ok ;
00269
00270 } AFNI_view_info ;
00271
00272 #define AXIAL 1
00273 #define SAGITTAL 2
00274 #define CORONAL 3
00275
00276 #undef USE_WRITEOWNSIZE
00277
00278 #define SAVE_VPT(iqq) \
00279 ( (iqq)->vinfo->i1_old = (iqq)->vinfo->i1 , \
00280 (iqq)->vinfo->j2_old = (iqq)->vinfo->j2 , \
00281 (iqq)->vinfo->k3_old = (iqq)->vinfo->k3 )
00282
00283 #define WARPED_VIEW(vvv) ((vvv)+1)
00284 #define ISVALID_VIEW(vvv) ((vvv) >= FIRST_VIEW_TYPE && (vvv) <= LAST_VIEW_TYPE)
00285
00286
00287
00288 #define MAXOVSIZE 19
00289 #define MAXOVPIX (MAXOVSIZE*(MAXOVSIZE-1))
00290 typedef struct {
00291 int numpix ;
00292 short dx[MAXOVPIX] , dy[MAXOVPIX] ;
00293 } AFNI_ovtemplate ;
00294
00295
00296
00297
00298 #define BKGD_COUNT 3
00299 #define INIT_BKGD_LAB(iq) \
00300 do{ int qq = ((iq)->s123!=NULL) + ((iq)->s231!=NULL) + ((iq)->s312!=NULL); \
00301 if( qq >= BKGD_COUNT || (qq > 0 && !AFNI_noenv("AFNI_VALUE_LABEL")) ){ \
00302 (iq)->vwid->imag->do_bkgd_lab = True ; \
00303 } else { \
00304 (iq)->vwid->imag->do_bkgd_lab = False ; \
00305 XtUnmanageChild(im3d->vwid->imag->pop_bkgd_lab) ; \
00306 XtUnmanageChild(im3d->vwid->func->bkgd_lab) ; \
00307 FIX_SCALE_SIZE(im3d) ; \
00308 } break ; } while(0)
00309
00310 #define AFNI_XHAIRS_OFF 0
00311 #define AFNI_XHAIRS_SINGLE 1
00312 #define AFNI_XHAIRS_MULTI 2
00313
00314 #define AFNI_XHAIRS_LR_AP 3
00315 #define AFNI_XHAIRS_LR_IS 4
00316 #define AFNI_XHAIRS_AP_IS 5
00317 #define AFNI_XHAIRS_LR 6
00318 #define AFNI_XHAIRS_AP 7
00319 #define AFNI_XHAIRS_IS 8
00320
00321 #define AFNI_XHAIRS_LASTOPTION 8
00322
00323 typedef struct {
00324 Widget frame , rowcol ;
00325 Widget topper , popmenu , pop_bkgd_lab ,
00326 pop_jumpback_pb , pop_imageonly_pb , pop_jumpto_pb , pop_talto_pb ;
00327 Widget pop_jumpto_ijk_pb ;
00328
00329 Widget crosshair_frame , crosshair_rowcol , crosshair_label ;
00330
00331 Widget crosshair_menu, crosshair_dicom_pb, crosshair_spm_pb ;
00332
00333 Widget xhair_rowcol ;
00334 MCW_arrowval * crosshair_av ;
00335 MCW_bbox * xhall_bbox ;
00336
00337 MCW_arrowval * crosshair_color_av ;
00338 MCW_arrowval * time_index_av ;
00339
00340 Widget gap_wrap_rowcol ;
00341 MCW_arrowval * crosshair_gap_av ;
00342 MCW_bbox * wrap_bbox ;
00343
00344 Widget view_frame , view_rowcol ,
00345 xyz_rowcol , yzx_rowcol , zxy_rowcol ,
00346 name_xyz_lab , name_yzx_lab , name_zxy_lab ,
00347 image_xyz_pb , image_yzx_pb , image_zxy_pb ,
00348 graph_xyz_pb , graph_yzx_pb , graph_zxy_pb ;
00349
00350 Boolean do_bkgd_lab ;
00351
00352 Widget pop_whereami_pb , pop_ttren_pb ;
00353 MCW_textwin * pop_whereami_twin ;
00354
00355 Widget pop_sumato_pb ;
00356 Widget pop_mnito_pb ;
00357
00358 Widget pop_environment_pb ;
00359 Widget pop_drawdataset_pb ;
00360 } AFNI_imaging_widgets ;
00361
00362
00363
00364 typedef struct {
00365 Widget wtop , rowcol , top_lab , done_pb ;
00366 int nrow , nall ;
00367 Widget *surf_rc ;
00368 MCW_bbox **surf_bbox ;
00369 MCW_arrowval **surf_node_av, **surf_line_av ;
00370 MCW_arrowval **surf_ledg_av ;
00371 MCW_arrowval *boxsize_av , *linewidth_av ;
00372 } AFNI_surface_widgets ;
00373
00374
00375
00376 typedef struct {
00377 Widget frame , rowcol ;
00378 MCW_bbox * view_bbox ;
00379
00380 Widget marks_frame , marks_rowcol ;
00381 Widget define_marks_pb ;
00382 MCW_bbox * see_marks_bbox ;
00383
00384 Widget func_frame , func_rowcol ;
00385 Widget define_func_pb ;
00386 MCW_bbox * see_func_bbox ;
00387
00388 Widget define_dmode_pb ;
00389
00390 Widget dataset_frame , dataset_rowcol ,
00391 choose_sess_pb , choose_anat_pb , choose_func_pb ,
00392 popchoose_sess_pb , popchoose_anat_pb , popchoose_func_pb ;
00393
00394 Boolean marks_pb_inverted , func_pb_inverted , dmode_pb_inverted ;
00395
00396 Widget choose_surf_pb ;
00397 AFNI_surface_widgets *swid ;
00398 } AFNI_viewing_widgets ;
00399
00400 #define OPEN_PANEL(iq,panel) \
00401 { XtManageChild( (iq)->vwid-> panel ->frame ) ; \
00402 if( ! (iq)->vwid->view-> panel ## _pb_inverted ){ \
00403 MCW_invert_widget( (iq)->vwid->view->define_ ## panel ## _pb ) ; \
00404 (iq)->vwid->view-> panel ## _pb_inverted = True ; } \
00405 XMapRaised( XtDisplay( (iq)->vwid-> panel ->frame ) , \
00406 XtWindow( (iq)->vwid-> panel ->frame ) ) ; }
00407
00408 #define CLOSE_PANEL(iq,panel) \
00409 { XtUnmanageChild( (iq)->vwid-> panel ->frame ) ; \
00410 if( (iq)->vwid->view-> panel ## _pb_inverted ){ \
00411 MCW_invert_widget( (iq)->vwid->view->define_ ## panel ## _pb ) ; \
00412 (iq)->vwid->view-> panel ## _pb_inverted = False ; } }
00413
00414
00415
00416 #define MARKS_MAXPOP (MARKS_MAXNUM+10)
00417
00418 typedef struct {
00419 Widget frame , rowcol ;
00420
00421 Widget tog_frame , tog_rowcol , tog_topper ;
00422 Widget tog[MARKS_MAXNUM] ;
00423 Widget poptog[MARKS_MAXNUM] ;
00424 Widget always_popup[MARKS_MAXPOP] ,
00425 sometimes_popup[MARKS_MAXPOP] ;
00426 int num_always_popup , num_sometimes_popup ;
00427 Boolean inverted[MARKS_MAXNUM] , editable ;
00428
00429 Widget control_frame , control_rowcol ;
00430 MCW_bbox * edits_bbox ;
00431 Widget disp_frame , disp_rowcol ;
00432 MCW_arrowval * disp_pcolor_av , * disp_scolor_av ,
00433 * disp_size_av , * disp_gap_av ;
00434 Widget action_rowcol ,
00435 action_set_pb , action_clear_pb ,
00436 action_quality_pb ,
00437 pop_set_pb , pop_clear_pb ;
00438
00439 Widget transform_pb ;
00440
00441 MCW_bbox * tlrc_big_bbox ;
00442 AFNI_ovtemplate ov_mask ;
00443
00444 int ov_pcolor , ov_scolor , ov_size , ov_gap ;
00445 Boolean ov_visible , old_visible ;
00446
00447 char tog_help[MARKS_MAXNUM][MARKS_MAXHELP] ;
00448
00449 Boolean isprimary[MARKS_MAXNUM] ;
00450 Boolean changed ;
00451
00452 Boolean tag_visible ;
00453 } AFNI_marks_widgets ;
00454
00455
00456
00457 #define THR_PVAL_LABEL_NONE "[N/A]"
00458
00459 #define THR_TOP_EXPON 4
00460 #define THR_FACTOR 0.0001
00461 #define THR_TOP_VALUE 9999.0
00462
00463 #undef USE_FUNC_FIM
00464
00465 typedef struct {
00466 Widget frame , rowcol ;
00467
00468 Widget thr_rowcol , thr_label , thr_scale , thr_pval_label ;
00469 MCW_arrowval * thr_top_av ;
00470
00471 Widget inten_rowcol , inten_label ;
00472 MCW_pbar * inten_pbar ;
00473 MCW_arrowval * inten_av ;
00474 MCW_bbox * inten_bbox ;
00475
00476 Widget pbar_menu , pbar_equalize_pb , pbar_settop_pb ,
00477 pbar_readin_pb , pbar_writeout_pb ;
00478 MCW_arrowval * pbar_palette_av ;
00479 Widget pbar_showtable_pb ;
00480 Widget pbar_environment_pb ;
00481
00482 Widget pbar_saveim_pb ;
00483 MCW_arrowval * pbar_transform0D_av ;
00484 generic_func * pbar_transform0D_func ;
00485 int pbar_transform0D_index ;
00486 MCW_arrowval * pbar_transform2D_av ;
00487 generic_func * pbar_transform2D_func ;
00488 int pbar_transform2D_index ;
00489
00490 Widget options_rowcol , options_label ;
00491 MCW_bbox * underlay_bbox ;
00492
00493 Widget buck_frame , buck_rowcol ;
00494 MCW_arrowval * anat_buck_av , * fim_buck_av , * thr_buck_av ;
00495
00496 Widget range_frame , range_rowcol , range_label ;
00497 MCW_bbox * range_bbox ;
00498 MCW_arrowval * range_av ;
00499
00500 #ifdef USE_FUNC_FIM
00501 Widget fim_frame , fim_rowcol , fim_dset_label , fim_mbar ;
00502 FIM_menu * fim_menu ;
00503 #endif
00504
00505 Widget bkgd_lab ;
00506
00507 MCW_arrowval * range_rotate_av ;
00508
00509 MCW_bbox * see_ttatlas_bbox ;
00510 } AFNI_function_widgets ;
00511
00512 #define PBAR_MODEBUT 0
00513 #define PBAR_MODEPOS (1 << PBAR_MODEBUT)
00514
00515 #define RANGE_AUTOBUT 0
00516 #define RANGE_AUTOVAL (1 << RANGE_AUTOBUT)
00517
00518
00519
00520
00521 #ifdef FIX_SCALE_SIZE_PROBLEM
00522 # define FIX_SCALE_SIZE(iqqq) \
00523 do{ int sel_height ; XtPointer sel_ptr ; \
00524 XtVaGetValues( (iqqq)->vwid->func->thr_scale , \
00525 XmNuserData , &sel_ptr , NULL ) ; \
00526 sel_height = (int) sel_ptr ; \
00527 XtVaSetValues( (iqqq)->vwid->func->thr_scale , \
00528 XmNheight , sel_height , NULL ) ; \
00529 XtManageChild((iqqq)->vwid->func->thr_scale) ; \
00530 } while(0)
00531 # define HIDE_SCALE(iqqq) XtUnmanageChild((iqqq)->vwid->func->thr_scale)
00532 #else
00533 # define FIX_SCALE_SIZE(iqqq)
00534 # define HIDE_SCALE(iqqq)
00535 #endif
00536
00537 #ifdef FIX_SCALE_VALUE_PROBLEM
00538 # define BOXUP_SCALE
00539 # define FIX_SCALE_VALUE(iqqq) \
00540 do { char buf[16] ; float th = (iqqq)->vinfo->func_threshold ; \
00541 if( ISVALID_3DIM_DATASET((iqqq)->fim_now) && \
00542 FUNC_HAVE_THR((iqqq)->fim_now->func_type) ){ \
00543 \
00544 th *= (iqqq)->vinfo->func_thresh_top ; \
00545 if( th < 1.0 ) sprintf(buf,"%4.2f",th) ; \
00546 else if( th < 10.0 ) sprintf(buf,"%4.1f",th) ; \
00547 else sprintf(buf,"%4.0f",th) ; \
00548 XtVaSetValues( (iqqq)->vwid->func->thr_label , LABEL_ARG(buf+1) , NULL ) ; \
00549 MCW_expose_widget( (iqqq)->vwid->func->thr_label ) ; } } while(0)
00550 #else
00551 # define FIX_SCALE_VALUE(iqqq)
00552 #endif
00553
00554 typedef struct {
00555 Widget frame , rowcol ;
00556
00557 MCW_bbox * anatmode_bbox , * funcmode_bbox ;
00558 MCW_arrowval * anat_resam_av , * resam_vox_av ;
00559 MCW_arrowval * func_resam_av ;
00560 MCW_arrowval * thr_resam_av ;
00561 Widget write_rowcol , write_anat_pb , write_func_pb , write_many_pb ;
00562 Widget rescan_rowcol , rescan_pb , rescan_all_pb , rescan_timeseries_pb ;
00563 Widget read_rowcol , read_sess_pb , read_1D_pb , read_Web_pb ;
00564
00565 Widget mbar_rowcol ;
00566 MCW_bbox * lock_bbox ;
00567 Widget lock_enforce_pb , lock_clear_pb , lock_setall_pb ;
00568
00569 Widget misc_voxind_pb ;
00570 Widget misc_hints_pb ;
00571 Widget misc_anat_info_pb , misc_func_info_pb ;
00572 Widget misc_vcheck_pb, misc_purge_pb, misc_tracing_pb,
00573 misc_showmalloc_pb , misc_dumpmalloc_pb ;
00574
00575 MCW_bbox * time_lock_bbox ;
00576
00577 Widget misc_writeownsize_pb ;
00578 MCW_bbox * misc_writeownsize_bbox ;
00579
00580 MCW_bbox * misc_voxind_bbox , * misc_hints_bbox ;
00581
00582 #ifdef ALLOW_PLUGINS
00583 Widget misc_environ_pb ;
00584 Widget misc_2dchain_pb ;
00585 Widget misc_1dchain_pb ;
00586 #endif
00587
00588 MCW_bbox * ijk_lock_bbox ;
00589
00590 Widget misc_savelayout_pb ;
00591 Widget misc_license_pb ;
00592 Widget misc_plugout_pb ;
00593 Widget misc_niml_pb ;
00594 Widget misc_runscript_pb ;
00595
00596 Widget misc_readme_env_pb ;
00597
00598 } AFNI_datamode_widgets ;
00599
00600
00601
00602 #define USE_HIDDEN
00603
00604 typedef struct {
00605 Widget frame , rowcol ;
00606
00607 Widget rc_top , clone_pb , panel_pb ;
00608 Widget rc_bot , button_help_pb , quit_pb ;
00609 Boolean quit_first , panel_pb_inverted ;
00610
00611 #ifdef USE_HIDDEN
00612
00613
00614
00615 Widget hidden_menu ,
00616 hidden_pts_cbut , hidden_pts_menu ,
00617 hidden_readpts_ijk_pb , hidden_readpts_xyz_pb ,
00618 hidden_writepts_ijk_pb , hidden_writepts_xyz_pb ,
00619 hidden_colorpts_pb ;
00620
00621 Widget hidden_sonnet_pb ;
00622
00623 #define PTS_READ_IJK 7
00624 #define PTS_READ_XYZ 8
00625 #define PTS_WRITE_IJK 9
00626 #define PTS_WRITE_XYZ 10
00627 #define PTS_SET_COLOR 11
00628
00629 int hidden_code ;
00630
00631 Widget hidden_mission_pb ;
00632 Widget hidden_gamberi_pb ;
00633 Widget hidden_ranpoem_pb ;
00634 Widget hidden_speech_pb ;
00635 Widget hidden_faces_pb ;
00636 Widget hidden_browser_pb ;
00637 Widget hidden_broutim_pb ;
00638
00639 #endif
00640
00641 } AFNI_program_widgets ;
00642
00643
00644 #ifdef USE_HIDDEN
00645
00646 extern void AFNI_hidden_CB ( Widget , XtPointer , XtPointer );
00647 extern void AFNI_hidden_EV ( Widget , XtPointer , XEvent * , Boolean * ) ;
00648 extern void AFNI_hidden_pts_CB( Widget , XtPointer , MCW_choose_cbs * ) ;
00649
00650 #ifdef USE_SONNETS
00651 extern void AFNI_sonnet_CB ( Widget , XtPointer , XtPointer );
00652 #endif
00653
00654 #endif
00655
00656
00657
00658
00659 struct PLUGIN_interface ;
00660
00661 typedef struct {
00662 Widget top_shell , top_form ;
00663
00664 AFNI_imaging_widgets * imag ;
00665 AFNI_viewing_widgets * view ;
00666 AFNI_marks_widgets * marks ;
00667 AFNI_function_widgets * func ;
00668 AFNI_program_widgets * prog ;
00669 AFNI_datamode_widgets * dmode ;
00670
00671 Widget picture ;
00672 int picture_index ;
00673
00674 Widget file_dialog , file_sbox ;
00675 XtCallbackProc file_cb ;
00676 XtPointer file_cd ;
00677
00678 #ifdef ALLOW_PLUGINS
00679 int nplugbut ;
00680 Widget * plugbut ;
00681 char ** pluglab ;
00682 struct PLUGIN_interface ** plugint ;
00683 #endif
00684
00685
00686
00687 XtPointer parent ;
00688
00689 int butx , buty ;
00690 } AFNI_widget_set ;
00691
00692
00693
00694 #define PICTURE_ON(im) \
00695 do{ if( (im)->type == AFNI_3DDATA_VIEW ) \
00696 XtVaSetValues((im)->vwid->picture,XmNlabelPixmap,logo_pixmap,NULL); \
00697 } while(0)
00698
00699 #define PICTURE_OFF(im) \
00700 do{ if( (im)->type == AFNI_3DDATA_VIEW ) \
00701 XtVaSetValues((im)->vwid->picture,XmNlabelPixmap,XmUNSPECIFIED_PIXMAP,NULL ); \
00702 } while(0)
00703
00704 #define PICTURE_SET(im,px) \
00705 do{ if( (im)->type == AFNI_3DDATA_VIEW ) \
00706 XtVaSetValues((im)->vwid->picture,XmNlabelPixmap,(px),NULL ); \
00707 } while(0)
00708
00709
00710
00711
00712 #define FIM_ALPHA_MASK 1
00713 #define FIM_BEST_MASK 2
00714 #define FIM_PERC_MASK 4
00715 #define FIM_BASE_MASK 8
00716 #define FIM_CORR_MASK 16
00717 #define FIM_PAVE_MASK 32
00718 #define FIM_AVER_MASK 64
00719
00720 #define FIM_PTOP_MASK 128
00721 #define FIM_TOPL_MASK 256
00722 #define FIM_SIGM_MASK 512
00723
00724 #define FIM_DEFAULT_MASK (1 | 2 | 4 | 16)
00725
00726 #define FIM_NUM_OPTS 10
00727
00728 #ifdef MAIN
00729 char * fim_opt_labels[FIM_NUM_OPTS] = {
00730 "Fit Coef" , "Best Index" , "% Change" , "Baseline" ,
00731 "Correlation" ,
00732 "% From Ave" , "Average" ,
00733 "% From Top" , "Topline" ,
00734 "Sigma Resid"
00735 } ;
00736 #else
00737 extern char * fim_opt_labels[] ;
00738 #endif
00739
00740 typedef struct {
00741 MRI_IMAGE * fimref ;
00742 MRI_IMAGE * fimort ;
00743 THD_3dim_dataset * fimdset ;
00744 int refadd_count ;
00745 int init_ignore ;
00746 int polort ;
00747 } AFNI_fimmer_type ;
00748
00749 #define MAX_POLORT 3
00750
00751 #define CLEAR_FIMDATA(iq) \
00752 ( (iq)->fimdata->fimref = NULL , \
00753 (iq)->fimdata->fimort = NULL , \
00754 (iq)->fimdata->fimdset = NULL , \
00755 (iq)->fimdata->refadd_count = 0 , \
00756 (iq)->fimdata->polort = INIT_fim_polort , \
00757 (iq)->fimdata->init_ignore = GLOBAL_argopt.ignore )
00758
00759 #define USABLE_FIMDATA(iq) \
00760 ( IM3D_OPEN(iq) && (iq)->type == AFNI_3DDATA_VIEW && \
00761 DSET_GRAPHABLE((iq)->fimdata->fimdset) && \
00762 (iq)->fimdata->fimref != NULL && \
00763 (iq)->fimdata->fimref->kind == MRI_float && \
00764 (iq)->fimdata->fimref->nx >= DSET_NUM_TIMES((iq)->fimdata->fimdset) )
00765
00766 #ifdef USE_FUNC_FIM
00767 # define ALLOW_COMPUTE_FIM(iq) \
00768 do{ XmString xstr ; THD_3dim_dataset * ds = (iq)->fimdata->fimdset ; \
00769 int fim_ok = USABLE_FIMDATA(iq) , \
00770 ds_ok = DSET_GRAPHABLE((iq)->fimdata->fimdset) ; \
00771 STATUS("** Setting FIM controls") ; \
00772 if( ISVALID_3DIM_DATASET(ds) ){ \
00773 STATUS("setting fim string to dataset") ; \
00774 xstr = XmStringCreateLtoR(ds->dblk->diskptr->filecode, \
00775 XmFONTLIST_DEFAULT_TAG); \
00776 } else { \
00777 STATUS("setting fim string to nothing") ; \
00778 xstr = XmStringCreateLtoR("[FIM not set up]", \
00779 XmFONTLIST_DEFAULT_TAG); \
00780 } \
00781 STATUS("setting fim label to fim string") ; \
00782 XtVaSetValues( (iq)->vwid->func->fim_dset_label , \
00783 XmNlabelString , xstr , NULL ) ; \
00784 XmStringFree(xstr) ; \
00785 SENSITIZE((iq)->vwid->func->fim_menu->fim_execute_pb,fim_ok); \
00786 if( ds_ok ) AFNI_fimmer_fix_optmenu(iq) ; \
00787 STATUS("** Done setting FIM controls") ; \
00788 } while(0)
00789 #else
00790 # define ALLOW_COMPUTE_FIM(iq)
00791 #endif
00792
00793
00794
00795
00796 #define AFNI_NODATA_VIEW 100
00797 #define AFNI_IMAGES_VIEW 101
00798 #define AFNI_3DDATA_VIEW 102
00799
00800 #define IM0D_VALID(ii) ((ii)!=NULL && (ii)->type==AFNI_NODATA_VIEW)
00801 #define IM3D_VALID(ii) ((ii)!=NULL && ((ii)->type==AFNI_IMAGES_VIEW || \
00802 (ii)->type==AFNI_3DDATA_VIEW ) )
00803
00804 #define IM3D_OPEN(ii) (IM3D_VALID(ii) && (ii)->opened)
00805
00806 #define ISVALID_IM3D(ii) IM3D_VALID(ii)
00807
00808 #define AFNI_IGNORE_NOTHING 0
00809 #define AFNI_IGNORE_REDRAWS 1
00810 #define AFNI_IGNORE_EVERYTHING 2
00811
00812 typedef struct {
00813 int type , opened ;
00814 MCW_DC * dc ;
00815
00816 THD_session * ss_now ;
00817 THD_3dim_dataset * anat_dset[LAST_VIEW_TYPE+1] ,
00818 * fim_dset [LAST_VIEW_TYPE+1] ;
00819 THD_3dim_dataset * anat_now , * fim_now ;
00820
00821 AFNI_view_info * vinfo ;
00822
00823 AFNI_fimmer_type * fimdata ;
00824
00825 FD_brick * b123_anat , * b231_anat , * b312_anat ;
00826 FD_brick * b123_fim , * b231_fim , * b312_fim ;
00827 FD_brick * b123_ulay , * b231_ulay , * b312_ulay ;
00828
00829 MCW_imseq * s123 , * s231 , * s312 ;
00830 MCW_grapher * g123 , * g231 , * g312 ;
00831
00832 AFNI_widget_set * vwid ;
00833 char window_title[THD_MAX_NAME] ;
00834 int ignore_seq_callbacks ;
00835
00836 THD_dataxes * wod_daxes ;
00837 THD_warp * anat_voxwarp , * fim_voxwarp ;
00838 int anat_wod_flag , fim_wod_flag ;
00839
00840 KILL_list kl ;
00841 XtPointer parent ;
00842
00843 int brand_new ;
00844
00845 THD_warp * fim_selfwarp ;
00846
00847 int dummied ;
00848 } Three_D_View ;
00849
00850
00851
00852 #define LOAD_ANAT_VIEW(iq) \
00853 do{ (iq)->anat_now->wod_daxes = (iq)->wod_daxes ; \
00854 (iq)->anat_now->wod_flag = (iq)->anat_wod_flag ; \
00855 (iq)->anat_now->vox_warp = (iq)->anat_voxwarp ; \
00856 } while(0)
00857
00858 #define LOAD_FUNC_VIEW(iq) \
00859 do{ if( ISVALID_3DIM_DATASET((iq)->fim_now) ){ \
00860 (iq)->fim_now->wod_daxes = (iq)->wod_daxes ; \
00861 (iq)->fim_now->wod_flag = (iq)->fim_wod_flag ; \
00862 (iq)->fim_now->vox_warp = (iq)->fim_voxwarp ; \
00863 (iq)->fim_now->self_warp = (iq)->fim_selfwarp ; \
00864 } } while(0)
00865
00866 #define LOAD_DSET_VIEWS(iq) \
00867 do{ LOAD_ANAT_VIEW(iq) ; LOAD_FUNC_VIEW(iq) ; } while(0)
00868
00869 extern int AFNI_count_controllers(void) ;
00870 extern void AFNI_controller_clonify(void) ;
00871 extern Three_D_View * new_AFNI_controller( Widget , MCW_DC * , int ) ;
00872 extern void AFNI_initialize_controller( Three_D_View * ) ;
00873 extern void AFNI_purge_dsets(int) ;
00874 extern void AFNI_purge_unused_dsets(void) ;
00875 extern int AFNI_controller_index( Three_D_View * ) ;
00876
00877 extern Three_D_View * AFNI_find_open_controller(void) ;
00878 extern void AFNI_popup_message( char * ) ;
00879
00880 extern void AFNI_start_version_check(void) ;
00881 extern int AFNI_version_check (void) ;
00882 extern char * AFNI_make_update_script (void) ;
00883
00884 extern char * AFNI_get_friend(void) ;
00885 extern char * AFNI_get_date_trivia(void) ;
00886
00887 #define OPEN_CONTROLLER(iq) \
00888 do{ XtRealizeWidget((iq)->vwid->top_shell) ; \
00889 while(XtWindow((iq)->vwid->top_shell)==(Window)NULL) ; \
00890 AFNI_startup_3dview(iq); (iq)->opened = 1; \
00891 } while(0)
00892
00893 #define CLOSE_CONTROLLER(iq) \
00894 ( AFNI_closedown_3dview(iq), XtUnrealizeWidget((iq)->vwid->top_shell), (iq)->opened = 0 )
00895
00896 #define PARENTIZE(ds,par) \
00897 if( ISVALID_3DIM_DATASET((ds)) ) (ds)->parent = (XtPointer) (par)
00898
00899
00900
00901 #define VIEWER_TO_GRAPHER(iq,ss) (((ss)==(iq)->s123) ? (iq)->g123 : \
00902 ((ss)==(iq)->s231) ? (iq)->g231 : \
00903 ((ss)==(iq)->s312) ? (iq)->g312 : NULL)
00904
00905 #define GRAPHER_TO_VIEWER(iq,gg) (((gg)==(iq)->g123) ? (iq)->s123 : \
00906 ((gg)==(iq)->g231) ? (iq)->s231 : \
00907 ((gg)==(iq)->g312) ? (iq)->s312 : NULL)
00908
00909 #define UNDERLAY_TO_VIEWER(iq,bb) (((bb)==(iq)->b123_ulay) ? (iq)->s123 : \
00910 ((bb)==(iq)->b231_ulay) ? (iq)->s231 : \
00911 ((bb)==(iq)->b312_ulay) ? (iq)->s312 : NULL)
00912
00913 #define UNDERLAY_TO_GRAPHER(iq,bb) (((bb)==(iq)->b123_ulay) ? (iq)->g123 : \
00914 ((bb)==(iq)->b231_ulay) ? (iq)->g231 : \
00915 ((bb)==(iq)->b312_ulay) ? (iq)->g312 : NULL)
00916
00917 #define UNDERLAY_TO_OVERLAY(iq,bb) (((bb)==(iq)->b123_ulay) ? (iq)->b123_fim : \
00918 ((bb)==(iq)->b231_ulay) ? (iq)->b231_fim : \
00919 ((bb)==(iq)->b312_ulay) ? (iq)->b312_fim : NULL)
00920
00921
00922
00923
00924 #include "afni_plugin.h"
00925 #ifdef ALLOW_PLUGINS
00926
00927
00928
00929 extern PLUGIN_interface * ENV_init(void) ;
00930 extern void ENV_add_numeric( char * , char * ,
00931 int , int , int , int , generic_func * ) ;
00932 extern void ENV_add_string( char * , char * ,
00933 int , char ** , generic_func * ) ;
00934 extern void ENV_add_yesno( char * , char * ) ;
00935
00936 extern PLUGIN_interface * F2D_init(void) ;
00937 extern PLUGIN_interface * F1D_init(void) ;
00938 #endif
00939
00940 typedef struct {
00941 XtPointer_array * windows ;
00942 XtPointer_array * widgets ;
00943 } MCW_interruptables ;
00944
00945 #ifndef MAX_CONTROLLERS
00946 #define MAX_CONTROLLERS 10
00947 #endif
00948
00949
00950
00951 #include "afni_setup.h"
00952
00953 typedef struct {
00954 MCW_DC * dc ;
00955 THD_sessionlist * sslist ;
00956 MRI_IMARR * timeseries ;
00957 Three_D_View * controllers[MAX_CONTROLLERS] ;
00958 MCW_interruptables interruptables ;
00959
00960 MCW_function_list registered_0D ;
00961 MCW_function_list registered_1D ;
00962 MCW_function_list registered_2D ;
00963
00964 int controller_lock , ignore_lock ;
00965 int have_dummy_dataset ;
00966 int sesstrail ;
00967
00968 THD_coorder cord ;
00969
00970 #ifdef ALLOW_PLUGINS
00971 struct AFNI_plugin_array * plugins ;
00972 #endif
00973
00974 PBAR_palette_table * gpt ;
00975
00976 int time_lock ;
00977
00978 int hints_on ;
00979
00980 float fim_bkthr_perc ;
00981
00982 MCW_function_list registered_fim ;
00983
00984 int ijk_lock ;
00985
00986 THD_session *session ;
00987
00988 MCW_function_list registered_slice_proj ;
00989
00990 Htable *warptable ;
00991
00992 } AFNI_library_type ;
00993
00994 #ifdef MAIN
00995 AFNI_library_type GLOBAL_library ;
00996 int GLOBAL_num_dsets = 0 ;
00997 #else
00998 extern AFNI_library_type GLOBAL_library ;
00999 extern GLOBAL_num_dsets ;
01000 #endif
01001
01002 #define FIM_THR (0.01*GLOBAL_library.fim_bkthr_perc)
01003 #define SET_FIM_bkthr(v) (GLOBAL_library.fim_bkthr_perc = (v))
01004
01005 #define DISABLE_LOCK (GLOBAL_library.ignore_lock=1)
01006 #define ENABLE_LOCK (GLOBAL_library.ignore_lock=0)
01007 #define BEEPIT XBell(GLOBAL_library.dc->display,100)
01008 #define ALLOW_real_time GLOBAL_argopt.allow_rt
01009 #define ELIDE_quality GLOBAL_argopt.elide_quality
01010 #define GPT GLOBAL_library.gpt
01011 #define NO_frivolities GLOBAL_argopt.no_frivolities
01012 #define SESSTRAIL GLOBAL_library.sesstrail
01013 #define AFNI_VERBOSE (!GLOBAL_argopt.quiet)
01014
01015 #define THE_DISPLAY (GLOBAL_library.dc->display)
01016 #define THE_TOPSHELL (GLOBAL_library.controllers[0]->vwid->top_shell)
01017
01018 # define SUMA_ENABLED GLOBAL_argopt.enable_suma
01019
01020 #define DOING_REALTIME_WORK (GLOBAL_library.interruptables.windows != NULL)
01021
01022 #define UNDUMMYIZE \
01023 do { GLOBAL_library.have_dummy_dataset = 0 ; \
01024 XtSetSensitive(GLOBAL_library.controllers[0]->vwid->prog->clone_pb,True); \
01025 } while(0)
01026
01027
01028
01029
01030 extern int AFNI_vnlist_func_overlay( Three_D_View *,int, SUMA_irgba **,int * ) ;
01031 extern int AFNI_vol2surf_func_overlay( Three_D_View *, SUMA_irgba **,
01032 int, int, int, float **, float * );
01033
01034 extern void AFNI_parse_args( int argc , char * argv[] );
01035 extern void FatalError(char * str);
01036
01037 extern void AFNI_splashup (void) ;
01038 extern void AFNI_splashdown (void) ;
01039 extern void AFNI_splashraise(void) ;
01040 extern void AFNI_faceup (void) ;
01041 extern void AFNI_broutim_CB (Widget,XtPointer,XtPointer) ;
01042
01043
01044 extern void AFNI_quit_CB ( Widget wcall , XtPointer cd , XtPointer cbs );
01045 extern void AFNI_quit_timeout_CB ( XtPointer , XtIntervalId * ) ;
01046 extern void AFNI_startup_timeout_CB( XtPointer , XtIntervalId * ) ;
01047
01048 extern void AFNI_startup_layout_CB ( XtPointer, XtIntervalId * ) ;
01049 extern void AFNI_save_layout_CB ( Widget, XtPointer, XtPointer ) ;
01050 extern void AFNI_finalsave_layout_CB( Widget, XtPointer, MCW_choose_cbs * ) ;
01051 extern void AFNI_startup_script_CB ( XtPointer, XtIntervalId * ) ;
01052 extern void AFNI_run_script_CB ( Widget, XtPointer, XtPointer ) ;
01053 extern void AFNI_finalrun_script_CB ( Widget, XtPointer, MCW_choose_cbs * ) ;
01054
01055 #define AFNI_run_script(ss) AFNI_startup_script_CB((XtPointer)(ss),NULL)
01056
01057 extern void AFNI_decode_geom( char * , int *, int *, int *, int * ) ;
01058
01059 extern void AFNI_clone_controller_CB( Widget , XtPointer , XtPointer ) ;
01060 extern void AFNI_controller_panel_CB( Widget , XtPointer , XtPointer ) ;
01061 extern void AFNI_make_controller( int ) ;
01062
01063
01064 extern void AFNI_lock_enforce_CB( Widget , XtPointer , XtPointer ) ;
01065 extern void AFNI_lock_change_CB ( Widget , XtPointer , XtPointer ) ;
01066 extern void AFNI_lock_clear_CB ( Widget , XtPointer , XtPointer ) ;
01067 extern void AFNI_lock_setall_CB ( Widget , XtPointer , XtPointer ) ;
01068 extern void AFNI_lock_carryout ( Three_D_View * ) ;
01069
01070 extern void AFNI_time_lock_carryout( Three_D_View * ) ;
01071 extern void AFNI_time_lock_change_CB( Widget , XtPointer , XtPointer ) ;
01072
01073 extern void AFNI_thresh_lock_carryout( Three_D_View * ) ;
01074 extern void AFNI_pbar_lock_carryout ( Three_D_View * ) ;
01075 extern void AFNI_equate_pbars ( Three_D_View *, Three_D_View * ) ;
01076 extern void AFNI_thrdrag_lock_carryout( Three_D_View * ) ;
01077 extern void AFNI_range_lock_carryout( Three_D_View * ) ;
01078
01079 extern void AFNI_ijk_lock_change_CB( Widget , XtPointer , XtPointer ) ;
01080
01081 extern XtPointer AFNI_brick_to_mri( int n , int type , FD_brick * br );
01082
01083 extern THD_3dim_dataset * AFNI_read_images( int nf , char * fname[] );
01084
01085 extern void AFNI_seq_send_CB(MCW_imseq * seq ,FD_brick * br,ISQ_cbs * cbs);
01086 extern void AFNI_gra_send_CB(MCW_grapher * grapher,FD_brick * br,GRA_cbs * cbs);
01087
01088 extern void AFNI_read_inputs ( int argc, char * argv[] );
01089 extern void AFNI_make_widgets ( Three_D_View * im3d );
01090 extern void AFNI_closedown_3dview( Three_D_View * im3d );
01091 extern void AFNI_startup_3dview ( Three_D_View * im3d );
01092 extern MRI_IMAGE * AFNI_overlay( int n , FD_brick * br );
01093
01094 extern char * AFNI_controller_label( Three_D_View * im3d );
01095 extern void AFNI_set_window_titles( Three_D_View * im3d );
01096
01097 extern void AFNI_crosshair_visible_CB( MCW_arrowval * , XtPointer ) ;
01098 extern void AFNI_view_xyz_CB ( Widget , XtPointer , XtPointer ) ;
01099 extern void AFNI_marktog_CB ( Widget , XtPointer , XtPointer ) ;
01100 extern void AFNI_marks_action_CB ( Widget , XtPointer , XtPointer ) ;
01101
01102 extern void AFNI_viewbut_EV ( Widget, XtPointer, XEvent *, Boolean * ) ;
01103
01104 #define AFNI_SEE_FUNC_ON(iq) ( MCW_set_bbox( (iq)->vwid->view->see_func_bbox, 1 ), \
01105 AFNI_see_func_CB( NULL , (XtPointer)(iq) , NULL ) )
01106
01107 #define AFNI_SEE_FUNC_OFF(iq) ( MCW_set_bbox( (iq)->vwid->view->see_func_bbox, 0), \
01108 AFNI_see_func_CB( NULL , (XtPointer)(iq) , NULL ) )
01109
01110 #define AFNI_SETUP_FUNC_ON(iq) \
01111 do{ if( ! (iq)->vinfo->func_visible ){ \
01112 MCW_set_bbox( (iq)->vwid->view->see_func_bbox, 1 ) ; \
01113 (iq)->vinfo->func_visible = True ; \
01114 } } while(0)
01115
01116 #define AFNI_SWITCH_VIEW(iq,vv) \
01117 do{ if( (iq)->vinfo->view_type != (vv) ){ \
01118 MCW_set_bbox( (iq)->vwid->view->view_bbox , 1 << (vv) ) ; \
01119 AFNI_switchview_CB( NULL , (XtPointer)(iq) , NULL ) ; \
01120 } } while(0) ;
01121
01122 #define AFNI_SETUP_VIEW(iq,vv) \
01123 do{ if( (iq)->vinfo->view_type != (vv) ){ \
01124 MCW_set_bbox( (iq)->vwid->view->view_bbox , 1 << (vv) ) ; \
01125 (iq)->vinfo->view_type = (vv) ; \
01126 } } while(0) ;
01127
01128 extern void AFNI_switchview_CB ( Widget , XtPointer , XtPointer ) ;
01129 extern void AFNI_see_marks_CB ( Widget , XtPointer , XtPointer ) ;
01130 extern void AFNI_see_func_CB ( Widget , XtPointer , XtPointer ) ;
01131 extern void AFNI_marks_edits_CB ( Widget , XtPointer , XtPointer ) ;
01132 extern void AFNI_marks_transform_CB ( Widget , XtPointer , XtPointer ) ;
01133 extern void AFNI_imag_pop_CB ( Widget , XtPointer , XtPointer ) ;
01134 extern void AFNI_define_CB ( Widget , XtPointer , XtPointer ) ;
01135 extern void AFNI_underlay_CB ( Widget , XtPointer , XtPointer ) ;
01136 extern void AFNI_choose_dataset_CB ( Widget , XtPointer , XtPointer ) ;
01137 extern void AFNI_write_dataset_CB ( Widget , XtPointer , XtPointer ) ;
01138 extern void AFNI_write_many_dataset_CB( Widget , XtPointer , XtPointer ) ;
01139 extern void AFNI_anatmode_CB ( Widget , XtPointer , XtPointer ) ;
01140 extern void AFNI_funcmode_CB ( Widget , XtPointer , XtPointer ) ;
01141 extern void AFNI_raiseup_CB ( Widget , XtPointer , XtPointer ) ;
01142
01143 extern void AFNI_do_many_writes ( Widget , XtPointer , MCW_choose_cbs * ) ;
01144 extern void AFNI_finalize_dataset_CB ( Widget , XtPointer , MCW_choose_cbs * ) ;
01145 extern void AFNI_jumpto_CB ( Widget , XtPointer , MCW_choose_cbs * ) ;
01146 extern int AFNI_jumpto_dicom ( Three_D_View * , float, float, float ) ;
01147 extern int AFNI_jumpto_ijk ( Three_D_View * , int, int, int ) ;
01148 extern void AFNI_jumpto_ijk_CB ( Widget , XtPointer , MCW_choose_cbs * ) ;
01149 extern void AFNI_sumato_CB ( Widget , XtPointer , MCW_choose_cbs * ) ;
01150 extern void AFNI_mnito_CB ( Widget , XtPointer , MCW_choose_cbs * ) ;
01151
01152 extern void AFNI_crosshair_pop_CB ( Widget , XtPointer , XtPointer ) ;
01153 extern void AFNI_crosshair_EV ( Widget , XtPointer , XEvent * , Boolean * ) ;
01154 extern void AFNI_crosshair_relabel ( Three_D_View * ) ;
01155
01156 extern void AFNI_fimmer_pickref_CB ( Widget , XtPointer , MCW_choose_cbs * ) ;
01157 extern void AFNI_fimmer_pickort_CB ( Widget , XtPointer , MCW_choose_cbs * ) ;
01158
01159 #ifdef USE_FUNC_FIM
01160 extern void AFNI_fimmer_fix_optmenu( Three_D_View * ) ;
01161 extern void AFNI_fimmer_menu_CB( Widget , XtPointer , XtPointer ) ;
01162 extern void AFNI_fimmer_dset_choose_CB( Widget, XtPointer, MCW_choose_cbs * ) ;
01163 # ifdef USE_OPTMENUS
01164 extern void AFNI_fimmer_ignore_choose_CB( MCW_arrowval *, XtPointer ) ;
01165 # else
01166 extern void AFNI_fimmer_ignore_choose_CB( Widget, XtPointer, MCW_choose_cbs * ) ;
01167 # endif
01168 #endif
01169
01170
01171
01172
01173
01174 typedef struct {
01175 MRI_IMAGE * ref_ts , * ort_ts ;
01176 int nvox , ignore , polort ;
01177 } FIMdata ;
01178
01179 extern void AFNI_register_fimfunc( char *, int, generic_func *, void * );
01180 extern void spearman_fimfunc( int, float *, void *, int, void * );
01181 extern void quadrant_fimfunc( int, float *, void *, int, void * );
01182
01183
01184
01185 extern void AFNI_fimmer_setref( Three_D_View * , MRI_IMAGE * ) ;
01186 extern void AFNI_fimmer_setort( Three_D_View * , MRI_IMAGE * ) ;
01187 extern void AFNI_fimmer_setignore( Three_D_View * , int ) ;
01188 extern void AFNI_fimmer_setpolort( Three_D_View * , int ) ;
01189 extern int AFNI_rescan_session( int ) ;
01190 extern void AFNI_rescan_CB( Widget , XtPointer , XtPointer ) ;
01191 extern void AFNI_rescan_all_CB( Widget , XtPointer , XtPointer ) ;
01192 extern void AFNI_rescan_timeseries_CB( Widget , XtPointer , XtPointer ) ;
01193
01194 extern void AFNI_read_sess_CB( Widget , XtPointer , XtPointer ) ;
01195 extern void AFNI_finalize_read_sess_CB( Widget , XtPointer , XtPointer ) ;
01196 extern void AFNI_make_file_dialog( Three_D_View * ) ;
01197 extern void AFNI_close_file_dialog_CB( Widget , XtPointer , XtPointer ) ;
01198 extern void AFNI_read_1D_CB( Widget , XtPointer , XtPointer ) ;
01199 extern void AFNI_finalize_read_1D_CB( Widget , XtPointer , XtPointer ) ;
01200
01201 extern int DSET_in_global_session( THD_3dim_dataset * ) ;
01202 extern void AFNI_append_sessions( THD_session *, THD_session *);
01203
01204 extern void AFNI_read_Web_CB( Widget, XtPointer, XtPointer );
01205 extern void AFNI_finalize_read_Web_CB( Widget, XtPointer, MCW_choose_cbs * );
01206
01207 extern void AFNI_fimmer_execute( Three_D_View * , int,int ) ;
01208
01209 extern void AFNI_process_interrupts( Widget ) ;
01210 extern void AFNI_add_interruptable( Widget ) ;
01211
01212 extern int AFNI_ts_in_library( MRI_IMAGE * tsim ) ;
01213
01214 extern THD_3dim_dataset * AFNI_fimmer_compute( Three_D_View * ,
01215 THD_3dim_dataset * , MRI_IMAGE *,
01216 MRI_IMAGE *, THD_session *,
01217 int,int ) ;
01218
01219 extern void AFNI_fimmer_redisplay( int , Three_D_View * , THD_3dim_dataset * ) ;
01220
01221 extern void AFNI_crosshair_color_CB( MCW_arrowval * , XtPointer ) ;
01222 extern void AFNI_crosshair_gap_CB ( MCW_arrowval * , XtPointer ) ;
01223 extern void AFNI_time_index_CB ( MCW_arrowval * , XtPointer ) ;
01224 extern void AFNI_marks_disp_av_CB ( MCW_arrowval * , XtPointer ) ;
01225 extern void AFNI_resam_vox_av_CB ( MCW_arrowval * , XtPointer ) ;
01226 extern char * AFNI_resam_texter ( MCW_arrowval * , XtPointer ) ;
01227 extern void AFNI_resam_av_CB ( MCW_arrowval * , XtPointer ) ;
01228
01229 extern void AFNI_bucket_CB ( MCW_arrowval * , XtPointer ) ;
01230 extern char * AFNI_bucket_label_CB( MCW_arrowval * , XtPointer ) ;
01231
01232 extern Boolean AFNI_refashion_dataset( Three_D_View * ,
01233 THD_3dim_dataset *, THD_dataxes * , int ) ;
01234
01235 #define REDISPLAY_OPTIONAL 0
01236 #define REDISPLAY_OVERLAY 1
01237 #define REDISPLAY_ALL 2
01238
01239 extern void AFNI_set_viewpoint( Three_D_View * , int,int,int , int ) ;
01240 extern void AFNI_redisplay_func( Three_D_View * ) ;
01241 extern void AFNI_view_setter( Three_D_View *, MCW_imseq *) ;
01242 extern void AFNI_range_setter( Three_D_View *, MCW_imseq *);
01243
01244 extern XmString AFNI_crosshair_label( Three_D_View * ) ;
01245 extern XmString AFNI_range_label( Three_D_View * ) ;
01246 extern XmString AFNI_autorange_label( Three_D_View * ) ;
01247
01248 extern void AFNI_range_bbox_CB( Widget , XtPointer , XtPointer ) ;
01249 extern void AFNI_range_av_CB ( MCW_arrowval * , XtPointer ) ;
01250 extern void AFNI_inten_bbox_CB( Widget , XtPointer , XtPointer ) ;
01251 extern void AFNI_wrap_bbox_CB( Widget , XtPointer , XtPointer ) ;
01252 extern void AFNI_xhall_bbox_CB( Widget , XtPointer , XtPointer ) ;
01253
01254 extern void AFNI_see_ttatlas_CB( Widget, XtPointer, XtPointer ) ;
01255
01256 extern void AFNI_range_rotate_av_CB( MCW_arrowval *, XtPointer );
01257 extern void AFNI_hintize_pbar( MCW_pbar * , float ) ;
01258
01259 #define HINTIZE_pbar(iq) \
01260 AFNI_hintize_pbar( (iq)->vwid->func->inten_pbar , \
01261 ((iq)->vinfo->fim_range != 0.0) \
01262 ? (iq)->vinfo->fim_range \
01263 : (iq)->vinfo->fim_autorange )
01264
01265 extern void AFNI_reset_func_range( Three_D_View * ) ;
01266
01267 extern int AFNI_first_tog( int , Widget * ) ;
01268 extern int AFNI_all_tog ( int , Widget * ) ;
01269 extern void AFNI_set_tog ( int , int , Widget * ) ;
01270
01271 extern void AFNI_make_ptmask( int , int , AFNI_ovtemplate * ) ;
01272 extern void AFNI_make_tagmask( int , int , AFNI_ovtemplate * ) ;
01273
01274 extern void AFNI_initialize_view( THD_3dim_dataset * , Three_D_View * ) ;
01275
01276 extern void AFNI_setup_viewing( Three_D_View * , Boolean ) ;
01277 extern void AFNI_modify_viewing( Three_D_View * , Boolean ) ;
01278
01279 extern THD_warp * AFNI_find_warp( THD_3dim_dataset * ,
01280 THD_3dim_dataset * ) ;
01281
01282 extern int AFNI_can_transform_vector( THD_3dim_dataset *, THD_3dim_dataset * );
01283
01284 extern THD_fvec3 AFNI_transform_vector( THD_3dim_dataset * ,
01285 THD_fvec3 , THD_3dim_dataset * ) ;
01286 extern THD_fvec3 AFNI_backward_warp_vector( THD_warp * , THD_fvec3 ) ;
01287 extern THD_fvec3 AFNI_forward_warp_vector ( THD_warp * , THD_fvec3 ) ;
01288
01289 extern THD_warp * AFNI_make_warp( Three_D_View * ) ;
01290
01291 extern Boolean AFNI_marks_quality_check( Boolean , Three_D_View * ) ;
01292
01293 extern THD_3dim_dataset * AFNI_init_warp( Three_D_View * ,
01294 THD_3dim_dataset * ,
01295 THD_warp * , float ) ;
01296
01297 extern void AFNI_handler( char * ) ;
01298
01299 extern void AFNI_thr_scale_CB( Widget , XtPointer , XtPointer ) ;
01300 extern void AFNI_set_thr_pval( Three_D_View * im3d ) ;
01301 extern void AFNI_thr_scale_drag_CB( Widget , XtPointer , XtPointer ) ;
01302
01303 extern void AFNI_inten_pbar_CB( MCW_pbar * , XtPointer , int ) ;
01304 extern void AFNI_inten_av_CB( MCW_arrowval * , XtPointer ) ;
01305 extern char * AFNI_inten_av_texter ( MCW_arrowval *, XtPointer ) ;
01306
01307 extern void AFNI_set_thresh_top( Three_D_View * , float ) ;
01308 extern char * AFNI_thresh_tlabel_CB( MCW_arrowval * , XtPointer ) ;
01309 extern void AFNI_thresh_top_CB( MCW_arrowval * , XtPointer ) ;
01310
01311 extern void AFNI_set_valabel( FD_brick *, int, MRI_IMAGE *, char * ) ;
01312
01313 extern void AFNI_init_niml( void ) ;
01314
01315 extern void AFNI_choose_surface_CB( Widget , XtPointer , XtPointer ) ;
01316 extern void AFNI_update_surface_widgets( Three_D_View * ) ;
01317 extern void AFNI_update_all_surface_widgets( THD_session * ) ;
01318
01319 extern void AFNI_disable_suma_overlay( int ) ;
01320
01321
01322
01323
01324
01325 #include "afni_warp.h"
01326
01327
01328
01329 extern THD_3dim_dataset * AFNI_follower_dataset( THD_3dim_dataset * ,
01330 THD_3dim_dataset * ) ;
01331
01332 extern void AFNI_make_descendants( THD_sessionlist * ) ;
01333 extern void AFNI_mark_for_death ( THD_sessionlist * ) ;
01334 extern void AFNI_andersonville ( THD_sessionlist * , Boolean ) ;
01335 extern void AFNI_force_adoption ( THD_session * , Boolean ) ;
01336
01337 extern MRI_IMAGE * AFNI_func_overlay( int , FD_brick * ) ;
01338
01339 extern MRI_IMAGE * AFNI_newfunc_overlay( MRI_IMAGE *, float ,
01340 MRI_IMAGE *,
01341 float,float, rgbyte * ) ;
01342
01343 extern void AFNI_syntax(void) ;
01344
01345 #define AFNI_DEFAULT_CURSOR 888
01346 #define AFNI_WAITING_CURSOR 999
01347
01348 #define SHOW_AFNI_PAUSE AFNI_set_cursor( AFNI_WAITING_CURSOR )
01349 #define SHOW_AFNI_READY AFNI_set_cursor( AFNI_DEFAULT_CURSOR )
01350
01351 extern void AFNI_set_cursor( int ) ;
01352 extern void AFNI_imseq_clearstat( Three_D_View * ) ;
01353
01354 extern void AFNI_copy_statistics( THD_3dim_dataset * , THD_3dim_dataset * ) ;
01355
01356 extern void AFNI_lock_button( Three_D_View * ) ;
01357 extern void AFNI_misc_button( Three_D_View * ) ;
01358 extern void AFNI_misc_CB ( Widget , XtPointer , XtPointer );
01359
01360 extern void AFNI_add_timeseries( MRI_IMAGE * ) ;
01361
01362
01363
01364
01365
01366
01367 extern void AFNI_ijk_to_xyz( THD_3dim_dataset * ,
01368 int,int,int, float *,float *,float *) ;
01369
01370 extern void AFNI_xyz_to_ijk( THD_3dim_dataset * ,
01371 float,float,float , int *,int *,int *) ;
01372
01373 extern void AFNI_xyz_to_dicomm( THD_3dim_dataset * ,
01374 float,float,float , float *,float *,float *) ;
01375
01376 extern void AFNI_dicomm_to_xyz( THD_3dim_dataset * ,
01377 float,float,float , float *,float *,float *) ;
01378
01379
01380
01381
01382 #define RECEIVE_DRAWING_MASK 1
01383 #define RECEIVE_VIEWPOINT_MASK 2
01384 #define RECEIVE_OVERLAY_MASK 4
01385 #define RECEIVE_DRAWNOTICE_MASK 8
01386 #define RECEIVE_DSETCHANGE_MASK 16
01387 #define RECEIVE_TTATLAS_MASK 32
01388 #define RECEIVE_REDISPLAY_MASK 64
01389 #define RECEIVE_FUNCDISPLAY_MASK 128
01390 #define RECEIVE_TIMEINDEX_MASK 256
01391
01392 #define RECEIVE_ALL_MASK ( 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 )
01393
01394
01395
01396 #define DRAWING_LINES BUTTON2_OPENPOLY
01397 #define DRAWING_FILL BUTTON2_CLOSEDPOLY
01398 #define DRAWING_POINTS BUTTON2_POINTS
01399 #define DRAWING_NODRAW BUTTON2_NODRAW
01400
01401 #ifdef MAIN
01402 char * DRAWING_strings[] = { "Lines" , "Filled" , "Points" , "No Draw" } ;
01403 #else
01404 extern char * DRAWING_strings[] ;
01405 #endif
01406
01407 #define DRAWING_OVCINDEX 11
01408 #define DRAWING_X11PIXEL 12
01409 #define DRAWING_STARTUP 18
01410 #define DRAWING_SHUTDOWN 19
01411 #define DRAWING_LINEWIDTH 13
01412
01413 #define VIEWPOINT_STARTUP 28
01414 #define VIEWPOINT_SHUTDOWN 29
01415
01416 #define REDISPLAY_STARTUP 78
01417 #define REDISPLAY_SHUTDOWN 79
01418
01419 #define FUNCDISPLAY_STARTUP 88
01420 #define FUNCDISPLAY_SHUTDOWN 89
01421
01422 #define OVERLAY_STARTUP 38
01423 #define OVERLAY_SHUTDOWN 39
01424
01425 #define DRAWNOTICE_STARTUP 48
01426 #define DRAWNOTICE_SHUTDOWN 49
01427
01428 #define DSETCHANGE_STARTUP 58
01429 #define DSETCHANGE_SHUTDOWN 59
01430
01431 #define TTATLAS_STARTUP 68
01432 #define TTATLAS_SHUTDOWN 69
01433
01434 #define TIMEINDEX_STARTUP 98
01435 #define TIMEINDEX_SHUTDOWN 99
01436
01437 #define EVERYTHING_SHUTDOWN 666
01438
01439
01440
01441 #define RECEIVE_POINTS 101
01442 #define RECEIVE_VIEWPOINT 102
01443 #define RECEIVE_OVERLAY 103
01444 #define RECEIVE_CLOSURE 104
01445 #define RECEIVE_ALTERATION 105
01446 #define RECEIVE_DRAWNOTICE 106
01447 #define RECEIVE_DSETCHANGE 107
01448 #define RECEIVE_TTATLAS 108
01449 #define RECEIVE_REDISPLAY 109
01450 #define RECEIVE_FUNCDISPLAY 110
01451 #define RECEIVE_TIMEINDEX 111
01452
01453
01454
01455 #define SINGLE_MODE 1000
01456 #define PLANAR_MODE 2000
01457 #define THREED_MODE 3000
01458 #define SPECIAL_MODE 100000
01459 #define UNDO_MODE 101000
01460
01461 extern void AFNI_toggle_drawing ( Three_D_View * ) ;
01462 extern int AFNI_receive_init ( Three_D_View *, int, gen_func *, void *, char * ) ;
01463 extern void AFNI_receive_destroy( Three_D_View * ) ;
01464 extern int AFNI_receive_control ( Three_D_View *, int,int, void * ) ;
01465
01466 extern void AFNI_process_viewpoint ( Three_D_View * ) ;
01467 extern void AFNI_process_drawnotice ( Three_D_View * ) ;
01468 extern void AFNI_process_dsetchange ( Three_D_View * ) ;
01469 extern void AFNI_process_alteration ( Three_D_View * ) ;
01470 extern void AFNI_process_drawing ( Three_D_View *, int,int, int *,int *,int * );
01471 extern void AFNI_process_ttatlas ( Three_D_View * ) ;
01472 extern void AFNI_process_redisplay ( Three_D_View * ) ;
01473 extern void AFNI_process_funcdisplay( Three_D_View * ) ;
01474 extern void AFNI_process_timeindex ( Three_D_View * ) ;
01475
01476 extern void AFNI_do_bkgd_lab( Three_D_View * ) ;
01477
01478 extern MRI_IMAGE * AFNI_ttatlas_overlay(Three_D_View *, int,int,int,int, MRI_IMAGE *) ;
01479
01480 extern void AFNI_3d_linefill( int ,int * ,int * ,int * ,
01481 int *,int **,int **,int ** ) ;
01482
01483
01484
01485
01486 #define TTO_CMAX 48
01487 #define TTO_LMAX (TTO_CMAX+16)
01488 #define TTO_FORMAT "%s [%3d,%3d,%3d]"
01489
01490 typedef struct {
01491 short xx,yy,zz,tdlev,tdval ;
01492 char name[TTO_CMAX] ;
01493 } TTO_point ;
01494
01495 #define TTO_COUNT 241
01496
01497 #define TTO_COUNT_BROD 209
01498 #define TTO_COUNT_NONBROD 125
01499
01500 #ifdef MAIN
01501 TTO_point TTO_list[TTO_COUNT] = {
01502 { 0, -1, -1,0, 0,"Anterior Commissure....................."} ,
01503 { 0, 23, 0,0, 0,"Posterior Commissure...................."} ,
01504 { 0, 7, 21,0, 0,"Corpus Callosum........................."} ,
01505 { 30, 24, -9,4, 68,"Left Hippocampus......................."} ,
01506 {-30, 24, -9,4, 68,"Right Hippocampus......................."} ,
01507 { 23, 5,-15,4, 71,"Left Amygdala.........................."} ,
01508 {-23, 5,-15,4, 71,"Right Amygdala.........................."} ,
01509 { 10, 54, 14,2, 20,"Left Posterior Cingulate..............."} ,
01510 {-10, 54, 14,2, 20,"Right Posterior Cingulate..............."} ,
01511 { 8,-32, 7,2, 21,"Left Anterior Cingulate................"} ,
01512 { -8,-32, 7,2, 21,"Right Anterior Cingulate................"} ,
01513 { 11,-11,-12,2, 22,"Left Subcallosal Gyrus................."} ,
01514 {-11,-11,-12,2, 22,"Right Subcallosal Gyrus................."} ,
01515 { 50, 22, 12,2, 24,"Left Transverse Temporal Gyrus........."} ,
01516 {-50, 22, 12,2, 24,"Right Transverse Temporal Gyrus........."} ,
01517 { 25, 2,-28,2, 25,"Left Uncus............................."} ,
01518 {-25, 2,-28,2, 25,"Right Uncus............................."} ,
01519 { 7,-30,-23,2, 26,"Left Rectal Gyrus......................"} ,
01520 { -7,-30,-23,2, 26,"Right Rectal Gyrus......................"} ,
01521 { 40, 48,-16,2, 27,"Left Fusiform Gyrus...................."} ,
01522 {-40, 48,-16,2, 27,"Right Fusiform Gyrus...................."} ,
01523 { 35, 86, -7,2, 28,"Left Inferior Occipital Gyrus.........."} ,
01524 {-35, 86, -7,2, 28,"Right Inferior Occipital Gyrus.........."} ,
01525 { 56, 39,-13,2, 29,"Left Inferior Temporal Gyrus..........."} ,
01526 {-56, 39,-13,2, 29,"Right Inferior Temporal Gyrus..........."} ,
01527 { 39, 7, 9,2, 30,"Left Insula............................"} ,
01528 {-39, 7, 9,2, 30,"Right Insula............................"} ,
01529 { 25, 25,-12,2, 31,"Left Parahippocampal Gyrus............."} ,
01530 {-25, 25,-12,2, 31,"Right Parahippocampal Gyrus............."} ,
01531 { 14, 78, -3,2, 32,"Left Lingual Gyrus....................."} ,
01532 {-14, 78, -3,2, 32,"Right Lingual Gyrus....................."} ,
01533 { 35, 83, 9,2, 33,"Left Middle Occipital Gyrus............"} ,
01534 {-35, 83, 9,2, 33,"Right Middle Occipital Gyrus............"} ,
01535 { 11,-39,-25,2, 34,"Left Orbital Gyrus....................."} ,
01536 {-11,-39,-25,2, 34,"Right Orbital Gyrus....................."} ,
01537 { 52, 39, 0,2, 35,"Left Middle Temporal Gyrus............."} ,
01538 {-52, 39, 0,2, 35,"Right Middle Temporal Gyrus............."} ,
01539 { 51, 17, 0,2, 36,"Left Superior Temporal Gyrus..........."} ,
01540 {-51, 17, 0,2, 36,"Right Superior Temporal Gyrus..........."} ,
01541 { 37, 82, 27,2, 37,"Left Superior Occipital Gyrus.........."} ,
01542 {-37, 82, 27,2, 37,"Right Superior Occipital Gyrus.........."} ,
01543 { 44,-24, 2,2, 39,"Left Inferior Frontal Gyrus............"} ,
01544 {-44,-24, 2,2, 39,"Right Inferior Frontal Gyrus............"} ,
01545 { 13, 83, 18,2, 40,"Left Cuneus............................"} ,
01546 {-13, 83, 18,2, 40,"Right Cuneus............................"} ,
01547 { 45, 64, 33,2, 41,"Left Angular Gyrus....................."} ,
01548 {-45, 64, 33,2, 41,"Right Angular Gyrus....................."} ,
01549 { 51, 48, 31,2, 42,"Left Supramarginal Gyrus..............."} ,
01550 {-51, 48, 31,2, 42,"Right Supramarginal Gyrus..............."} ,
01551 { 10, 11, 34,2, 43,"Left Cingulate Gyrus..................."} ,
01552 {-10, 11, 34,2, 43,"Right Cingulate Gyrus..................."} ,
01553 { 48, 41, 39,2, 44,"Left Inferior Parietal Lobule.........."} ,
01554 {-48, 41, 39,2, 44,"Right Inferior Parietal Lobule.........."} ,
01555 { 14, 61, 41,2, 45,"Left Precuneus........................."} ,
01556 {-14, 61, 41,2, 45,"Right Precuneus........................."} ,
01557 { 27, 59, 53,2, 46,"Left Superior Parietal Lobule.........."} ,
01558 {-27, 59, 53,2, 46,"Right Superior Parietal Lobule.........."} ,
01559 { 37,-29, 26,2, 47,"Left Middle Frontal Gyrus.............."} ,
01560 {-37,-29, 26,2, 47,"Right Middle Frontal Gyrus.............."} ,
01561 { 7, 32, 53,2, 48,"Left Paracentral Lobule................"} ,
01562 { -7, 32, 53,2, 48,"Right Paracentral Lobule................"} ,
01563 { 43, 25, 43,2, 49,"Left Postcentral Gyrus................."} ,
01564 {-43, 25, 43,2, 49,"Right Postcentral Gyrus................."} ,
01565 { 44, 8, 38,2, 50,"Left Precentral Gyrus.................."} ,
01566 {-44, 8, 38,2, 50,"Right Precentral Gyrus.................."} ,
01567 { 19,-40, 27,2, 51,"Left Superior Frontal Gyrus............"} ,
01568 {-19,-40, 27,2, 51,"Right Superior Frontal Gyrus............"} ,
01569 { 9,-24, 35,2, 52,"Left Medial Frontal Gyrus.............."} ,
01570 { -9,-24, 35,2, 52,"Right Medial Frontal Gyrus.............."} ,
01571 { 22, 1, 2,2, 70,"Left Lentiform Nucleus................."} ,
01572 {-22, 1, 2,2, 70,"Right Lentiform Nucleus................."} ,
01573 { 4, 3, -9,4, 72,"Left Hypothalamus......................"} ,
01574 { -4, 3, -9,4, 72,"Right Hypothalamus......................"} ,
01575 { 5, 19, -4,4, 73,"Left Red Nucleus......................."} ,
01576 { -5, 19, -4,4, 73,"Right Red Nucleus......................."} ,
01577 { 11, 18, -7,4, 74,"Left Substantia Nigra.................."} ,
01578 {-11, 18, -7,4, 74,"Right Substantia Nigra.................."} ,
01579 { 32, 1, 5,2, 75,"Left Claustrum........................."} ,
01580 {-32, 1, 5,2, 75,"Right Claustrum........................."} ,
01581 { 12, 19, 8,2, 76,"Left Thalamus.........................."} ,
01582 {-12, 19, 8,2, 76,"Right Thalamus.........................."} ,
01583 { 11, -7, 9,2, 77,"Left Caudate..........................."} ,
01584 {-11, -7, 9,2, 77,"Right Caudate..........................."} ,
01585 { 27, 35, 9,4,124,"Left Caudate Tail......................"} ,
01586 {-27, 35, 9,4,124,"Right Caudate Tail......................"} ,
01587 { 12, -6, 14,4,125,"Left Caudate Body......................"} ,
01588 {-12, -6, 14,4,125,"Right Caudate Body......................"} ,
01589 { 9,-13, 0,4,126,"Left Caudate Head......................"} ,
01590 { -9,-13, 0,4,126,"Right Caudate Head......................"} ,
01591 { 11, 6, 9,4,128,"Left Ventral Anterior Nucleus.........."} ,
01592 {-11, 6, 9,4,128,"Right Ventral Anterior Nucleus.........."} ,
01593 { 15, 20, 4,4,129,"Left Ventral Posterior Medial Nucleus.."} ,
01594 {-15, 20, 4,4,129,"Right Ventral Posterior Medial Nucleus.."} ,
01595 { 18, 19, 5,4,130,"Left Ventral Posterior Lateral Nucleus."} ,
01596 {-18, 19, 5,4,130,"Right Ventral Posterior Lateral Nucleus."} ,
01597 { 6, 16, 8,4,131,"Left Medial Dorsal Nucleus............."} ,
01598 { -6, 16, 8,4,131,"Right Medial Dorsal Nucleus............."} ,
01599 { 12, 20, 16,4,132,"Left Lateral Dorsal Nucleus............"} ,
01600 {-12, 20, 16,4,132,"Right Lateral Dorsal Nucleus............"} ,
01601 { 16, 27, 8,4,133,"Left Pulvinar.........................."} ,
01602 {-16, 27, 8,4,133,"Right Pulvinar.........................."} ,
01603 { 17, 20, 14,4,134,"Left Lateral Posterior Nucleus........."} ,
01604 {-17, 20, 14,4,134,"Right Lateral Posterior Nucleus........."} ,
01605 { 14, 12, 9,4,135,"Left Ventral Lateral Nucleus..........."} ,
01606 {-14, 12, 9,4,135,"Right Ventral Lateral Nucleus..........."} ,
01607 { 7, 18, 16,4,136,"Left Midline Nucleus..................."} ,
01608 { -7, 18, 16,4,136,"Right Midline Nucleus..................."} ,
01609 { 8, 8, 12,4,137,"Left Anterior Nucleus.................."} ,
01610 { -8, 8, 12,4,137,"Right Anterior Nucleus.................."} ,
01611 { 11, 20, 2,4,138,"Left Mammillary Body..................."} ,
01612 {-11, 20, 2,4,138,"Right Mammillary Body..................."} ,
01613 { 15, 4, -2,4,144,"Left Medial Globus Pallidus............"} ,
01614 {-15, 4, -2,4,144,"Right Medial Globus Pallidus............"} ,
01615 { 20, 5, 0,4,145,"Left Lateral Globus Pallidus..........."} ,
01616 {-20, 5, 0,4,145,"Right Lateral Globus Pallidus..........."} ,
01617 { 24, 0, 3,4,151,"Left Putamen..........................."} ,
01618 {-24, 0, 3,4,151,"Right Putamen..........................."} ,
01619 { 12, -8, -8,4,146,"Left Nucleus Accumbens................."} ,
01620 {-12, -8, -8,4,146,"Right Nucleus Accumbens................."} ,
01621 { 17, 24, -2,4,147,"Left Medial Geniculum Body............."} ,
01622 {-17, 24, -2,4,147,"Right Medial Geniculum Body............."} ,
01623 { 22, 24, -1,4,148,"Left Lateral Geniculum Body............"} ,
01624 {-22, 24, -1,4,148,"Right Lateral Geniculum Body............"} ,
01625 { 10, 13, -3,4,149,"Left Subthalamic Nucleus..............."} ,
01626 {-10, 13, -3,4,149,"Right Subthalamic Nucleus..............."} ,
01627 { 53, 19, 50,4, 81,"Left Brodmann area 1..................."} ,
01628 {-53, 19, 50,4, 81,"Right Brodmann area 1..................."} ,
01629 { 49, 26, 43,4, 82,"Left Brodmann area 2..................."} ,
01630 {-49, 26, 43,4, 82,"Right Brodmann area 2..................."} ,
01631 { 39, 23, 50,4, 83,"Left Brodmann area 3..................."} ,
01632 {-39, 23, 50,4, 83,"Right Brodmann area 3..................."} ,
01633 { 39, 18, 49,4, 84,"Left Brodmann area 4..................."} ,
01634 {-39, 18, 49,4, 84,"Right Brodmann area 4..................."} ,
01635 { 16, 40, 57,4, 85,"Left Brodmann area 5..................."} ,
01636 {-16, 40, 57,4, 85,"Right Brodmann area 5..................."} ,
01637 { 29, 0, 50,4, 86,"Left Brodmann area 6..................."} ,
01638 {-29, 0, 50,4, 86,"Right Brodmann area 6..................."} ,
01639 { 16, 60, 48,4, 87,"Left Brodmann area 7..................."} ,
01640 {-16, 60, 48,4, 87,"Right Brodmann area 7..................."} ,
01641 { 24,-30, 44,4, 88,"Left Brodmann area 8..................."} ,
01642 {-24,-30, 44,4, 88,"Right Brodmann area 8..................."} ,
01643 { 32,-33, 30,4, 89,"Left Brodmann area 9..................."} ,
01644 {-32,-33, 30,4, 89,"Right Brodmann area 9..................."} ,
01645 { 24,-56, 6,4, 90,"Left Brodmann area 10.................."} ,
01646 {-24,-56, 6,4, 90,"Right Brodmann area 10.................."} ,
01647 { 17,-43,-18,4, 91,"Left Brodmann area 11.................."} ,
01648 {-17,-43,-18,4, 91,"Right Brodmann area 11.................."} ,
01649 { 39, 4, 8,4, 93,"Left Brodmann area 13.................."} ,
01650 {-39, 4, 8,4, 93,"Right Brodmann area 13.................."} ,
01651 { 10, 88, 5,4, 94,"Left Brodmann area 17.................."} ,
01652 {-10, 88, 5,4, 94,"Right Brodmann area 17.................."} ,
01653 { 19, 85, 4,4, 95,"Left Brodmann area 18.................."} ,
01654 {-19, 85, 4,4, 95,"Right Brodmann area 18.................."} ,
01655 { 34, 80, 18,4, 96,"Left Brodmann area 19.................."} ,
01656 {-34, 80, 18,4, 96,"Right Brodmann area 19.................."} ,
01657 { 47, 21,-23,4, 97,"Left Brodmann area 20.................."} ,
01658 {-47, 21,-23,4, 97,"Right Brodmann area 20.................."} ,
01659 { 58, 18,-10,4, 98,"Left Brodmann area 21.................."} ,
01660 {-58, 18,-10,4, 98,"Right Brodmann area 21.................."} ,
01661 { 57, 23, 5,4, 99,"Left Brodmann area 22.................."} ,
01662 {-57, 23, 5,4, 99,"Right Brodmann area 22.................."} ,
01663 { 4, 37, 24,4,100,"Left Brodmann area 23.................."} ,
01664 { -4, 37, 24,4,100,"Right Brodmann area 23.................."} ,
01665 { 6, -6, 30,4,101,"Left Brodmann area 24.................."} ,
01666 { -6, -6, 30,4,101,"Right Brodmann area 24.................."} ,
01667 { 6,-15,-13,4,102,"Left Brodmann area 25.................."} ,
01668 { -6,-15,-13,4,102,"Right Brodmann area 25.................."} ,
01669 { 15, 35, 0,4,103,"Left Brodmann area 27.................."} ,
01670 {-15, 35, 0,4,103,"Right Brodmann area 27.................."} ,
01671 { 22, -2,-24,4,104,"Left Brodmann area 28.................."} ,
01672 {-22, -2,-24,4,104,"Right Brodmann area 28.................."} ,
01673 { 6, 48, 11,4,105,"Left Brodmann area 29.................."} ,
01674 { -6, 48, 11,4,105,"Right Brodmann area 29.................."} ,
01675 { 13, 62, 10,4,106,"Left Brodmann area 30.................."} ,
01676 {-13, 62, 10,4,106,"Right Brodmann area 30.................."} ,
01677 { 9, 47, 32,4,107,"Left Brodmann area 31.................."} ,
01678 { -9, 47, 32,4,107,"Right Brodmann area 31.................."} ,
01679 { 8,-24, 30,4,108,"Left Brodmann area 32.................."} ,
01680 { -8,-24, 30,4,108,"Right Brodmann area 32.................."} ,
01681 { 5,-12, 24,4,109,"Left Brodmann area 33.................."} ,
01682 { -5,-12, 24,4,109,"Right Brodmann area 33.................."} ,
01683 { 18, 0,-16,4,110,"Left Brodmann area 34.................."} ,
01684 {-18, 0,-16,4,110,"Right Brodmann area 34.................."} ,
01685 { 23, 25,-15,4,111,"Left Brodmann area 35.................."} ,
01686 {-23, 25,-15,4,111,"Right Brodmann area 35.................."} ,
01687 { 33, 33,-15,4,112,"Left Brodmann area 36.................."} ,
01688 {-33, 33,-15,4,112,"Right Brodmann area 36.................."} ,
01689 { 48, 55, -7,4,113,"Left Brodmann area 37.................."} ,
01690 {-48, 55, -7,4,113,"Right Brodmann area 37.................."} ,
01691 { 41,-12,-23,4,114,"Left Brodmann area 38.................."} ,
01692 {-41,-12,-23,4,114,"Right Brodmann area 38.................."} ,
01693 { 48, 64, 28,4,115,"Left Brodmann area 39.................."} ,
01694 {-48, 64, 28,4,115,"Right Brodmann area 39.................."} ,
01695 { 51, 40, 38,4,116,"Left Brodmann area 40.................."} ,
01696 {-51, 40, 38,4,116,"Right Brodmann area 40.................."} ,
01697 { 47, 26, 11,4,117,"Left Brodmann area 41.................."} ,
01698 {-47, 26, 11,4,117,"Right Brodmann area 41.................."} ,
01699 { 63, 22, 12,4,118,"Left Brodmann area 42.................."} ,
01700 {-63, 22, 12,4,118,"Right Brodmann area 42.................."} ,
01701 { 58, 10, 16,4,119,"Left Brodmann area 43.................."} ,
01702 {-58, 10, 16,4,119,"Right Brodmann area 43.................."} ,
01703 { 53,-11, 12,4,120,"Left Brodmann area 44.................."} ,
01704 {-53,-11, 12,4,120,"Right Brodmann area 44.................."} ,
01705 { 54,-23, 10,4,121,"Left Brodmann area 45.................."} ,
01706 {-54,-23, 10,4,121,"Right Brodmann area 45.................."} ,
01707 { 50,-38, 16,4,122,"Left Brodmann area 46.................."} ,
01708 {-50,-38, 16,4,122,"Right Brodmann area 46.................."} ,
01709 { 38,-24,-11,4,123,"Left Brodmann area 47.................."} ,
01710 {-38,-24,-11,4,123,"Right Brodmann area 47.................."} ,
01711 { 2, 65,-32,2, 53,"Left Uvula of Vermis..................."} ,
01712 { -2, 65,-32,2, 53,"Right Uvula of Vermis..................."} ,
01713 { 2, 73,-28,2, 54,"Left Pyramis of Vermis................."} ,
01714 { -2, 73,-28,2, 54,"Right Pyramis of Vermis................."} ,
01715 { 2, 71,-24,2, 55,"Left Tuber of Vermis..................."} ,
01716 { -2, 71,-24,2, 55,"Right Tuber of Vermis..................."} ,
01717 { 2, 72,-17,2, 56,"Left Declive of Vermis................."} ,
01718 { -2, 72,-17,2, 56,"Right Declive of Vermis................."} ,
01719 { 3, 63, -3,2, 57,"Left Culmen of Vermis.................."} ,
01720 { -3, 63, -3,2, 57,"Right Culmen of Vermis.................."} ,
01721 { 28, 51,-36,2, 58,"Left Cerebellar Tonsil................."} ,
01722 {-28, 51,-36,2, 58,"Right Cerebellar Tonsil................."} ,
01723 { 29, 71,-38,2, 59,"Left Inferior Semi-Lunar Lobule........"} ,
01724 {-29, 71,-38,2, 59,"Right Inferior Semi-Lunar Lobule........"} ,
01725 { 7, 54,-20,2, 60,"Left Fastigium........................."} ,
01726 { -7, 54,-20,2, 60,"Right Fastigium........................."} ,
01727 { 7, 55,-27,2, 61,"Left Nodule............................"} ,
01728 { -7, 55,-27,2, 61,"Right Nodule............................"} ,
01729 { 21, 76,-26,2, 62,"Left Uvula............................."} ,
01730 {-21, 76,-26,2, 62,"Right Uvula............................."} ,
01731 { 27, 74,-30,2, 63,"Left Pyramis..........................."} ,
01732 {-27, 74,-30,2, 63,"Right Pyramis..........................."} ,
01733 { 20, 46,-16,2, 66,"Left Culmen............................"} ,
01734 {-20, 46,-16,2, 66,"Right Culmen............................"} ,
01735 { 26, 69,-17,2, 65,"Left Declive..........................."} ,
01736 {-26, 69,-17,2, 65,"Right Declive..........................."} ,
01737 { 14, 54,-23,4,127,"Left Dentate..........................."} ,
01738 {-14, 54,-23,4,127,"Right Dentate..........................."} ,
01739 { 44, 71,-27,2, 64,"Left Tuber............................."} ,
01740 {-44, 71,-27,2, 64,"Right Tuber............................."} ,
01741 { 4, 45,-13,2, 67,"Left Cerebellar Lingual................"} ,
01742 { -4, 45,-13,2, 67,"Right Cerebellar Lingual................"}
01743 } ;
01744
01745 char * TTO_labels[TTO_COUNT] ;
01746
01747 int TTO_labeled = 0 ;
01748 int TTO_current = 0 ;
01749 #else
01750 extern TTO_point TTO_list[TTO_COUNT] ;
01751 extern char * TTO_labels[TTO_COUNT] ;
01752 extern int TTO_labeled ;
01753 extern int TTO_current ;
01754 #endif
01755
01756 extern void AFNI_talto_CB( Widget, XtPointer, MCW_choose_cbs * ) ;
01757
01758 #define CAN_TALTO(q3d) \
01759 ( (q3d)->vinfo->view_type == VIEW_TALAIRACH_TYPE || \
01760 AFNI_can_transform_vector( \
01761 (q3d)->anat_dset[VIEW_TALAIRACH_TYPE] , (q3d)->anat_now ) )
01762
01763 extern char * AFNI_ttatlas_query( Three_D_View * ) ;
01764 extern void AFNI_pop_whereami_kill( Three_D_View * ) ;
01765
01766 extern void TTRR_popup( Three_D_View * ) ;
01767
01768 typedef struct {
01769 int num , meth , hemi ;
01770 byte *ttbrik ;
01771 byte *ttval ;
01772 byte *ttovc ;
01773 } TTRR_params ;
01774
01775 #define TTRR_METH_OFF 0
01776 #define TTRR_METH_GAF 1
01777 #define TTRR_METH_AGF 2
01778 #define TTRR_METH_FGA 3
01779 #define TTRR_METH_FAG 4
01780
01781 #define TTRR_HEMI_LEFT 0
01782 #define TTRR_HEMI_RIGHT 1
01783 #define TTRR_HEMI_BOTH 2
01784
01785 extern TTRR_params * TTRR_get_params(void) ;
01786
01787
01788
01789
01790 extern int AFNI_driver( char *cmd ) ;
01791 extern int AFNI_controller_code_to_index( char *code ) ;
01792
01793
01794
01795
01796
01797
01798 extern void log10_func( int, float * ) ;
01799 extern void ssqrt_func( int, float * ) ;
01800
01801
01802
01803 extern void osfilt3_func( int, double,double, float * ) ;
01804 extern void median3_func( int, double,double, float * ) ;
01805 extern void absfft_func ( int, double,double, float * ) ;
01806
01807
01808
01809 extern float max_proj ( int, float * ) ;
01810 extern float min_proj ( int, float * ) ;
01811 extern float mean_proj( int, float * ) ;
01812
01813 extern float extreme_proj( int, float * ) ;
01814
01815
01816
01817 extern void median9_box_func ( int, int, double,double, float * ) ;
01818 extern void winsor9_box_func ( int, int, double,double, float * ) ;
01819 extern void osfilt9_box_func ( int, int, double,double, float * ) ;
01820 extern void fft2D_func ( int, int, double,double, float * ) ;
01821 extern void median21_box_func( int, int, double,double, float * ) ;
01822 extern void winsor21_box_func( int, int, double,double, float * ) ;
01823
01824 extern void AFNI_register_nD_function( int, char *, generic_func *, int ) ;
01825 extern void AFNI_register_nD_func_init( int nd , generic_func *fin ) ;
01826
01827 #define AFNI_register_0D_function(cc,ff) \
01828 AFNI_register_nD_function(0,(char *)(cc),(generic_func *)(ff),0)
01829 #define AFNI_register_1D_function(cc,ff) \
01830 AFNI_register_nD_function(1,(char *)(cc),(generic_func *)(ff),0)
01831 #define AFNI_register_2D_function(cc,ff) \
01832 AFNI_register_nD_function(2,(char *)(cc),(generic_func *)(ff),0)
01833
01834 #define AFNI_register_slice_proj(cc,ff) \
01835 AFNI_register_nD_function(-1,(char *)(cc),(generic_func *)(ff),0)
01836
01837 #define AFNI_register_1D_funcstr(cc,ff) \
01838 AFNI_register_nD_function(1,(char *)(cc),(generic_func *)(ff),RETURNS_STRING)
01839
01840 extern void AFNI_store_dset_index(int,int) ;
01841 extern int AFNI_needs_dset_ijk(void) ;
01842 extern int AFNI_needs_dset_tin(void) ;
01843
01844
01845
01846
01847
01848
01849 #define DEFAULT_NGRAY 80
01850 #define DEFAULT_GAMMA 1.0
01851
01852 #define DEFAULT_NCOLOVR 40
01853 #define MAX_NCOLOVR 199
01854
01855
01856
01857 #define DEFAULT_CROSSHAIR_COLOR 13
01858 #define DEFAULT_PRIMARY_COLOR 17
01859 #define DEFAULT_SECONDARY_COLOR 14
01860
01861 #define DEFAULT_MARK_SIZE 8
01862 #define DEFAULT_MARK_GAP 3
01863 #define DEFAULT_CROSSHAIR_GAP 5
01864
01865
01866
01867 void AFNI_load_defaults( Widget w ) ;
01868
01869 #ifdef MAIN
01870
01871
01872
01873 static char * INIT_def_colovr[DEFAULT_NCOLOVR] = {
01874 "#ffff00" , "#ffcc00" , "#ff9900" , "#ff6900" , "#ff4400" , "#ff0000" ,
01875 "#0000ff" , "#0044ff" , "#0069ff" , "#0099ff" , "#00ccff" , "#00ffff" ,
01876 "green" , "limegreen" , "violet" , "hotpink" ,
01877 "white" , "#dddddd" , "#bbbbbb" , "black" ,
01878
01879 "#cc1033" , "#992066" , "#663199" , "#3341cc" ,
01880 "#0051ff" , "#0074cc" , "#009799" , "#00b966" ,
01881 "#00dc33" , "#00ff00" , "#33ff00" , "#66ff00" ,
01882 "#99ff00" , "#ccff00" , "#ffff00" , "#ffcc00" ,
01883 "#ff9900" , "#ff6600" , "#ff3300" , "#ff0000"
01884 } ;
01885
01886 #define RGBCYC_COUNT 20
01887 #define RGBCYC_FIRST 20
01888
01889 static char * INIT_def_labovr[DEFAULT_NCOLOVR] = {
01890 "yellow" , "yell-oran" , "oran-yell" , "orange" , "oran-red" , "red" ,
01891 "dk-blue", "blue" , "lt-blue1" , "lt-blue2" , "blue-cyan", "cyan" ,
01892 "green" , "limegreen" , "violet" , "hotpink" ,
01893 "white" , "gry-dd" , "gry-bb" , "black" ,
01894
01895 "rbgyr20_01" , "rbgyr20_02" , "rbgyr20_03" , "rbgyr20_04" ,
01896 "rbgyr20_05" , "rbgyr20_06" , "rbgyr20_07" , "rbgyr20_08" ,
01897 "rbgyr20_09" , "rbgyr20_10" , "rbgyr20_11" , "rbgyr20_12" ,
01898 "rbgyr20_13" , "rbgyr20_14" , "rbgyr20_15" , "rbgyr20_16" ,
01899 "rbgyr20_17" , "rbgyr20_18" , "rbgyr20_19" , "rbgyr20_20"
01900 } ;
01901
01902
01903
01904 char * INIT_colovr[MAX_NCOLOVR] ;
01905 char * INIT_labovr[MAX_NCOLOVR] ;
01906
01907
01908
01909 int INIT_ngray = DEFAULT_NGRAY ,
01910 INIT_ncolovr = DEFAULT_NCOLOVR ,
01911 INIT_crosshair_color = DEFAULT_CROSSHAIR_COLOR ,
01912 INIT_marks1_color = DEFAULT_PRIMARY_COLOR ,
01913 INIT_marks2_color = DEFAULT_SECONDARY_COLOR ,
01914 INIT_marks_size = DEFAULT_MARK_SIZE ,
01915 INIT_marks_gap = DEFAULT_MARK_GAP ,
01916 INIT_crosshair_gap = DEFAULT_CROSSHAIR_GAP ,
01917 INIT_purge = 0 ,
01918 INIT_posfunc = 0 ,
01919 INIT_bigscroll = 5 ,
01920 INIT_resam_anat = RESAM_LINEAR_TYPE ,
01921 INIT_resam_func = RESAM_NN_TYPE ,
01922 INIT_resam_thr = RESAM_NN_TYPE ;
01923
01924 float INIT_gamma = DEFAULT_GAMMA ,
01925 INIT_resam_vox = DEFAULT_RESAMPLE_VOX ;
01926
01927 int INIT_ignore = 0 ;
01928 int INIT_tlrc_big = 1 ;
01929 int INIT_montage_periodic = 1 ;
01930 int INIT_fim_polort = 1 ;
01931
01932 #else
01933
01934 extern int INIT_ngray ,
01935 INIT_ncolovr ,
01936 INIT_crosshair_color ,
01937 INIT_marks1_color ,
01938 INIT_marks2_color ,
01939 INIT_marks_size ,
01940 INIT_marks_gap ,
01941 INIT_crosshair_gap ,
01942 INIT_purge ,
01943 INIT_posfunc ,
01944 INIT_bigscroll ,
01945 INIT_resam_anat ,
01946 INIT_resam_func ,
01947 INIT_resam_thr ;
01948
01949 extern float INIT_gamma ,
01950 INIT_resam_vox ;
01951
01952 extern int INIT_ignore ;
01953 extern int INIT_tlrc_big ;
01954 extern int INIT_montage_periodic ;
01955
01956 extern int INIT_fim_polort ;
01957
01958 extern char * INIT_colovr[] ;
01959 extern char * INIT_labovr[] ;
01960
01961 #endif
01962
01963
01964
01965
01966 extern void AFNI_setup_inten_pbar( Three_D_View * ) ;
01967
01968 #define DEFAULT_PANES_POS 8
01969 #define DEFAULT_PANES_SGN 9
01970
01971 #ifdef MAIN
01972 int INIT_panes_pos = DEFAULT_PANES_POS ,
01973 INIT_panes_sgn = DEFAULT_PANES_SGN ,
01974 INIT_panes_hide = 0 ;
01975
01976 #define NPANE_INIT 10
01977
01978 float INIT_pval_pos[NPANE_MAX+1][NPANE_MAX+1] = {
01979 { 0 },
01980 { 1.00, 0.00 },
01981 { 1.00, 0.50, 0.00 },
01982 { 1.00, 0.67, 0.33, 0.00 },
01983 { 1.00, 0.75, 0.50, 0.25, 0.00 },
01984 { 1.00, 0.80, 0.60, 0.40, 0.20, 0.00 },
01985 { 1.00, 0.84, 0.67, 0.50, 0.33, 0.16, 0.00 },
01986 { 1.00, 0.90, 0.75, 0.60, 0.45, 0.30, 0.15, 0.00 },
01987 { 1.00, 0.80, 0.70, 0.60, 0.50, 0.40, 0.30, 0.15, 0.00 },
01988 { 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.25, 0.15, 0.05, 0.00 },
01989 { 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.40, 0.30, 0.20, 0.10, 0.00 }
01990 } ;
01991
01992 int INIT_ovin_pos[NPANE_MAX+1][NPANE_MAX+1] = {
01993 { 0 } ,
01994 { 1 } ,
01995 { 1 , 0 } ,
01996 { 1 , 6 , 0 } ,
01997 { 1 , 4 , 6 , 0 } ,
01998 { 1 , 3 , 5 , 6 , 0 } ,
01999 { 1 , 2 , 3 , 5 , 6 , 0 } ,
02000 { 1 , 2 , 3 , 4 , 5 , 6 , 0 } ,
02001 { 1 , 2 , 3 , 4 , 5 , 6 ,16 , 0 } ,
02002 { 1 , 2 , 3 , 4 , 5 , 6 ,16 ,15 , 0 } ,
02003 { 1 , 2 , 3 , 5 , 5 , 6 ,16 ,15 , 7 , 0 }
02004 } ;
02005
02006 float INIT_pval_sgn[NPANE_MAX+1][NPANE_MAX+1] = {
02007 { 0 },
02008 { 1.00,-1.00 },
02009 { 1.00, 0.00, -1.00 },
02010 { 1.00, 0.05, -0.05, -1.00 },
02011 { 1.00, 0.50, 0.00, -0.50, -1.00 },
02012 { 1.00, 0.50, 0.05, -0.05, -0.50, -1.00 },
02013 { 1.00, 0.66, 0.33, 0.00, -0.33, -0.66, -1.00 },
02014 { 1.00, 0.66, 0.33, 0.05, -0.05, -0.33, -0.66, -1.00 },
02015 { 1.00, 0.75, 0.50, 0.25, 0.00, -0.25, -0.50, -0.75, -1.00 },
02016 { 1.00, 0.75, 0.50, 0.25, 0.05, -0.05, -0.25, -0.50, -0.75, -1.00 },
02017 { 1.00, 0.80, 0.60, 0.40, 0.20, 0.00, -0.20, -0.40, -0.60, -0.80, -1.00 }
02018 } ;
02019
02020 int INIT_ovin_sgn[NPANE_MAX+1][NPANE_MAX+1] = {
02021 { 0 } ,
02022 { 1 } ,
02023 { 1 , 11 } ,
02024 { 1 , 0 , 11 } ,
02025 { 1 , 4 , 8 , 11 } ,
02026 { 1 , 4 , 0 , 8 , 11 } ,
02027 { 1 , 3 , 5 , 7 , 9 , 11 } ,
02028 { 1 , 3 , 5 , 0 , 7 , 9 , 11 } ,
02029 { 1 , 2 , 4 , 5 , 8 , 9 , 10 , 11 } ,
02030 { 1 , 2 , 4 , 5 , 0 , 8 , 9 , 10 , 11 } ,
02031 { 1 , 2 , 3 , 4 , 5 , 7 , 8 , 9 , 10 , 11 }
02032 } ;
02033 #else
02034 extern int INIT_panes_pos , INIT_panes_sgn , INIT_panes_hide ;
02035
02036 extern float INIT_pval_pos[NPANE_MAX+1][NPANE_MAX+1] ;
02037 extern int INIT_ovin_pos[NPANE_MAX+1][NPANE_MAX+1] ;
02038
02039 extern float INIT_pval_sgn[NPANE_MAX+1][NPANE_MAX+1] ;
02040 extern int INIT_ovin_sgn[NPANE_MAX+1][NPANE_MAX+1] ;
02041 #endif
02042
02043 #endif