#ifndef SUMA_SUMA_SUMA_INCLUDED #define SUMA_SUMA_SUMA_INCLUDED #include "../suma_suma.h" #include "SUMA_DataSets.h" /* memory allocation section, SUMA_COMPILED-specific */ #ifndef DONT_USE_MCW_MALLOC #ifdef SUMA_COMPILED #undef SUMA_MEMTRACE_ON #undef SUMA_MEMTRACE_TOGGLE #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() ; \ } \ } #endif #endif /* debug tracing section */ /* Undefine all that's been defined in suma_suma.h and is SUMA_COMPILED-specific */ #ifdef SUMA_COMPILED #ifdef USE_TRACING #undef SUMA_INOUT_NOTIFY_ON #define SUMA_INOUT_NOTIFY_ON {\ SUMAg_CF->InOut_Notify = YUP; \ DBG_trace = 1;\ } #undef SUMA_INOUT_NOTIFY_OFF #define SUMA_INOUT_NOTIFY_OFF {\ SUMAg_CF->InOut_Notify = NOPE; \ DBG_trace = 0; \ } #undef SUMA_INOUT_NOTIFY_TOGGLE #define SUMA_INOUT_NOTIFY_TOGGLE {\ SUMAg_CF->InOut_Notify = !SUMAg_CF->InOut_Notify; \ if (!DBG_trace) DBG_trace = 1; \ else DBG_trace = 0; \ } #else #undef SUMA_INOUT_NOTIFY_ON #define SUMA_INOUT_NOTIFY_ON {\ SUMAg_CF->InOut_Notify = YUP; \ } #undef SUMA_INOUT_NOTIFY_OFF #define SUMA_INOUT_NOTIFY_OFF {\ SUMAg_CF->InOut_Notify = NOPE; \ } #undef SUMA_INOUT_NOTIFY_TOGGLE #define SUMA_INOUT_NOTIFY_TOGGLE {\ SUMAg_CF->InOut_Notify = !SUMAg_CF->InOut_Notify; \ } #endif #endif /* The include files */ #if defined SUMA_COMPILED /* Undefine all that's been defined in suma_suma.h and is SUMA_COMPILED-specific */ #undef SUMA_STDERR #undef SUMA_STDOUT #undef SUMA_SLP_Err #undef SUMA_SL_Err #undef SUMA_L_Err #undef SUMA_SLP_Note #undef SUMA_SL_Note #undef SUMA_L_Note #undef SUMA_SLP_Warn #undef SUMA_SL_Warn #undef SUMA_L_Warn #undef SUMA_SLP_Crit #undef SUMA_SL_Crit #undef SUMA_L_Crit #undef SUMA_LH #undef SUMA_LHv #undef SUMA_S_Warn #undef SUMA_S_Warnv #undef SUMA_S_Note #undef SUMA_S_Notev #undef SUMA_S_Err #undef SUMA_S_Errv #undef SUMA_S_Crit #ifdef SOLARIS #include /* OpenGL drawing area. */ #else #ifdef SUMA_MOTIF_GLXAREA #include #else #include /* OpenGL drawing area. */ #endif #endif #include #include #include #include /* 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" #include "SUMA_SurfaceToSurface.h" #include "SUMA_LocalStat.h" #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_LH(msg) {\ if (LocalHead) fprintf (SUMA_STDERR, "%s:\n %s\n", FuncName, msg); \ } #define SUMA_LHv SUMA_LH #define SUMA_S_Warn(msg) {\ fprintf (SUMA_STDERR, "Warning %s:\n %s\n", FuncName, msg); \ } #define SUMA_S_Warnv SUMA_S_Warn #define SUMA_S_Note(msg) {\ fprintf (SUMA_STDERR, "Notice %s:\n %s\n", FuncName, msg); \ } #define SUMA_S_Notev SUMA_S_Note #define SUMA_S_Err(msg) {\ fprintf (SUMA_STDERR, "Error %s:\n %s\n", FuncName, msg); \ } #define SUMA_S_Errv SUMA_S_Err #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 ********************************/ #endif