/*! includes various include files, no muss no fuss */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* For XA_RGB_DEFAULT_MAP. */ #include /* For XmuLookupStandardColormap. */ #include #include #include #include #include #include #include #include #include #include #include #include /* from Fri Aug 9 17:54:03 EDT 2002 and on SUMA will need motif headers */ #include #ifdef SOLARIS #include /* OpenGL drawing area. */ #else #ifdef SUMA_MOTIF_GLXAREA #include #else #include /* OpenGL drawing area. */ #endif #endif #include "imseq.h" #include "mrilib.h" #include "niml.h" #include "xutil.h" #include "display.h" #include "xim.h" /* SUMA's generic includes */ #include "SUMA_label.h" #include "SUMA_Algorithms.h" #include "SUMA_DataSets.h" #include "SUMA_Macros.h" #define SUMA_ENTRY ENTRY(FuncName) #define SUMA_RETURN RETURN #define SUMA_RETURNe EXRETURN #define SUMA_mainENTRY mainENTRY(FuncName) #include "../mcw_malloc.h" /* post March 3 04, using AFNI's allocation and tracing routines instead of SUMA's If you do not want to use AFNI's allocation functions, then use -DDONT_USE_MCW_MALLOC in your compile command Relevant afni files: mcw_malloc.c/h debugtrace.c/h */ #define SUMA_free mcw_free /* memory allocation section */ #ifndef DONT_USE_MCW_MALLOC #define SUMA_malloc(a) mcw_malloc((a),__FILE__,__LINE__) #define SUMA_calloc(a,b) mcw_calloc((a),(b),__FILE__,__LINE__) #define SUMA_realloc(a,b) mcw_realloc((a),(b),__FILE__,__LINE__) #define SUMA_MEMTRACE_OFF { /* No such thing */ } #ifdef SUMA_COMPILED #define SUMA_MEMTRACE_ON {\ enable_mcw_malloc() ; \ SUMAg_CF->MemTrace = YUP; \ } #define SUMA_MEMTRACE_TOGGLE { \ if (!SUMAg_CF->MemTrace) { \ SUMAg_CF->MemTrace = YUP; \ enable_mcw_malloc() ; \ } \ } #else #define SUMA_MEMTRACE_ON {\ enable_mcw_malloc() ; \ } #define SUMA_MEMTRACE_TOGGLE { \ if (!SUMAg_CF->MemTrace) { \ enable_mcw_malloc() ; \ } \ } #endif #else #define SUMA_malloc(a) mcw_malloc((a)) #define SUMA_calloc(a,b) mcw_calloc((a),(b)) #define SUMA_realloc(a,b) mcw_realloc((a),(b)) #define SUMA_MEMTRACE_ON {} #define SUMA_MEMTRACE_OFF {} #define SUMA_MEMTRACE_TOGGLE {} #endif /* debug tracing section */ #ifdef SUMA_COMPILED #ifdef USE_TRACING #define SUMA_INOUT_NOTIFY_ON {\ SUMAg_CF->InOut_Notify = YUP; \ DBG_trace = 1;\ } #define SUMA_INOUT_NOTIFY_OFF {\ SUMAg_CF->InOut_Notify = NOPE; \ DBG_trace = 0; \ } #define SUMA_INOUT_NOTIFY_TOGGLE {\ SUMAg_CF->InOut_Notify = !SUMAg_CF->InOut_Notify; \ if (!DBG_trace) DBG_trace = 1; \ else DBG_trace = 0; \ } #else #define SUMA_INOUT_NOTIFY_ON {\ SUMAg_CF->InOut_Notify = YUP; \ } #define SUMA_INOUT_NOTIFY_OFF {\ SUMAg_CF->InOut_Notify = NOPE; \ } #define SUMA_INOUT_NOTIFY_TOGGLE {\ SUMAg_CF->InOut_Notify = !SUMAg_CF->InOut_Notify; \ } #endif #else #ifdef USE_TRACING #define SUMA_INOUT_NOTIFY_ON { DBG_trace = 1; } #define SUMA_INOUT_NOTIFY_OFF { DBG_trace = 0; } #define SUMA_INOUT_NOTIFY_TOGGLE {\ if (!DBG_trace) DBG_trace = 1; \ else DBG_trace = 0; \ } #else #define SUMA_INOUT_NOTIFY_ON { } #define SUMA_INOUT_NOTIFY_OFF { } #define SUMA_INOUT_NOTIFY_TOGGLE { } #endif #endif /* The include files */ #if defined SUMA_COMPILED /* SUMA specific includes*/ #include "SUMA_define.h" #include "SUMA_prototype.h" #include "SUMA_ParseCommands.h" #include "SUMA_niml.h" #include "SUMA_Engine.h" #include "SUMA_display.h" #include "SUMA_input.h" #include "SUMA_SVmanip.h" #include "SUMA_DOmanip.h" #include "SUMA_MiscFunc.h" #include "SUMA_trackball.h" #include "SUMA_Color.h" #include "SUMA_GeomComp.h" #include "SUMA_CreateDO.h" #include "SUMA_Load_Surface_Object.h" #include "SUMA_Surface_IO.h" #include "SUMA_SphericalMapping.h" #include "SUMA_xColBar.h" #include "SUMA_SurfClust.h" #include "SUMA_IsoSurface.h" #include "SUMA_BrainWrap.h" #define SUMA_IGNORE_VOLREG { \ SUMAg_CF->IgnoreVolreg = 1; \ } #else /* define the necessary macros */ #define SUMA_STDERR stderr #define SUMA_STDOUT stdout #define SUMA_SLP_Err SUMA_S_Err #define SUMA_SL_Err SUMA_S_Err #define SUMA_L_Err SUMA_S_Err #define SUMA_SLP_Note SUMA_S_Note #define SUMA_SL_Note SUMA_S_Note #define SUMA_L_Note SUMA_S_Note #define SUMA_SLP_Warn SUMA_S_Warn #define SUMA_SL_Warn SUMA_S_Warn #define SUMA_L_Warn SUMA_S_Warn #define SUMA_SLP_Crit SUMA_S_Crit #define SUMA_SL_Crit SUMA_S_Crit #define SUMA_L_Crit SUMA_S_Crit #define SUMA_IGNORE_VOLREG { } #define SUMA_LH(msg) {\ if (LocalHead) fprintf (SUMA_STDERR, "%s:\n %s\n", FuncName, msg); \ } #define SUMA_S_Warn(msg) {\ fprintf (SUMA_STDERR, "Warning %s:\n %s\n", FuncName, msg); \ } #define SUMA_S_Note(msg) {\ fprintf (SUMA_STDERR, "Notice %s:\n %s\n", FuncName, msg); \ } #define SUMA_S_Err(msg) {\ fprintf (SUMA_STDERR, "Error %s:\n %s\n", FuncName, msg); \ } #define SUMA_S_Crit(msg) {\ fprintf (SUMA_STDERR, "Critical error %s:\n %s\n", FuncName, msg); \ } #endif /******************************* BEGIN IGNORE THIS CHUNK ********************************/ #ifdef USE_SUMA_MALLOC /* NO LONGER SUPPORTED Apr. 09 04 */ /* The pre-March 3/04 way, SUMA uses its own version of memory allocation and tracing. Those tools did not allow for memory corruption checking and used linear pointer storage methods making for inefficient searching Use -DUSE_SUMA_MALLOC in the compile line if you wish to use the old stuff */ #define SUMA_free( p ) \ SUMA_free_fn( FuncName, p ) #define SUMA_calloc( nmemb, size) \ SUMA_calloc_fn( FuncName, nmemb, size) #define SUMA_malloc(size) \ SUMA_malloc_fn( FuncName, size) #define SUMA_realloc( ptr, size) \ SUMA_realloc_fn( FuncName, ptr, size) #define SUMA_ENTRY { \ if (SUMAg_CF->InOut_Notify) SUMA_DBG_IN_NOTIFY(FuncName); \ } #define SUMA_RETURN(m_rvar) {\ if (SUMAg_CF->InOut_Notify) { SUMA_DBG_OUT_NOTIFY(FuncName); }\ return(m_rvar);\ } #define SUMA_RETURNe {\ if (SUMAg_CF->InOut_Notify) { SUMA_DBG_OUT_NOTIFY(FuncName); }\ return ;\ } #define SUMA_mainENTRY {} #define SUMA_INOUT_NOTIFY_ON {\ SUMAg_CF->InOut_Notify = YUP; \ } #define SUMA_INOUT_NOTIFY_OFF {\ SUMAg_CF->InOut_Notify = NOPE; \ } #define SUMA_INOUT_NOTIFY_TOGGLE {\ SUMAg_CF->InOut_Notify = !SUMAg_CF->InOut_Notify; \ } #define SUMA_MEMTRACE_ON {\ SUMAg_CF->MemTrace = YUP; \ } #define SUMA_MEMTRACE_OFF { \ SUMAg_CF->MemTrace = OFF; \ } #define SUMA_MEMTRACE_TOGGLE { \ SUMAg_CF->MemTrace = !SUMAg_CF->MemTrace; \ } #endif /******************************* END IGNORE THIS CHUNK ********************************/