Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

SUMA_prototype.h File Reference

Go to the source code of this file.


Functions

void SUMA_mapStateChanged (Widget w, XtPointer clientData, XEvent *event, Boolean *cont)
void SUMA_help (void)
void SUMA_help_message (FILE *Out)
char * SUMA_help_message_Info (void)
char * SUMA_help_Cmap_message_Info (SUMA_COLOR_MAP *Cmp)
void SUMA_Help_open (void *p)
 function called when help window is open

void SUMA_Help_destroyed (void *p)
 function called when help window is destroyed

void SUMA_Help_Cmap_open (void *p)
 function called when help window is open

void SUMA_Help_Cmap_destroyed (void *p)
 function called when help window is destroyed

void SUMA_Message_open (void *p)
 function called when Message window is open

void SUMA_Message_destroyed (void *p)
 function called when Message window is destroyed

void SUMA_VolSurf_help (FILE *Out)
void SUMA_Version (FILE *Out)
char * SUMA_New_Additions_perver (int ver, SUMA_Boolean StampOnly)
 Returns a string with version information.

char * SUMA_New_Additions (int ver, SUMA_Boolean StampOnly)
char * SUMA_All_Programs (void)
void SUMA_SetcSV (Widget w, XtPointer clientData, XEvent *event, Boolean *cont)
void SUMA_unSetcSV (Widget w, XtPointer clientData, XEvent *event, Boolean *cont)
char * SUMA_sources_Info (void)
char * SUMA_Help_AllSurfCont (void)

Function Documentation

char* SUMA_All_Programs void   
 

Definition at line 892 of file SUMA_help.c.

References SUMA_STRING::s, SUMA_ENTRY, SUMA_free, SUMA_RETURN, and SUMA_StringAppend().

Referenced by main().

00893 {
00894    char *s=NULL;
00895    static char FuncName[]={"SUMA_All_Programs"};
00896    SUMA_STRING  *SS = NULL; 
00897    
00898    SUMA_ENTRY;
00899    
00900    SS = SUMA_StringAppend (NULL, NULL);
00901    
00902    SS = SUMA_StringAppend ( SS,
00903          "+ List of programs in the SUMA package:\n"
00904          "  3dCRUISEtoAFNI\n"
00905          "  3dBRAIN_VOYAGERtoAFNI\n"
00906          "  3dSkullStrip\n"
00907          "  3dSurf2Vol\n"
00908          "  3dSurfMask\n"
00909          "  3dVol2Surf\n"
00910          "  CompareSurfaces\n"
00911          "  ConvertSurface\n"
00912          "  ConvexHull\n"
00913          "  CreateIcosahedron\n"
00914          "  FSread_annot\n"
00915          "  inspec\n"
00916          "  IsoSurface\n"
00917          "  MakeColorMap\n"
00918          "  MapIcosahedron\n"
00919          "  quickspec\n"
00920          "  ROI2dataset\n"
00921          "  ScaleToMap\n"
00922          "  SUMA_glxdino\n"
00923          "  SurfaceMetrics\n"
00924          "  SurfClust\n"
00925          "  SurfMeasures\n"
00926          "  SurfMesh\n"
00927          "  SurfPatch\n"
00928          "  SurfQual\n"
00929          "  SurfSmooth\n"
00930          "  SurfToSurf\n"
00931      );
00932    
00933    /* clean SS */
00934    SS = SUMA_StringAppend (SS, NULL);
00935    /* copy s pointer and free SS */
00936    s = SS->s;
00937    SUMA_free(SS); 
00938    
00939    SUMA_RETURN(s);      
00940    
00941 }

void SUMA_help void   
 

char* SUMA_Help_AllSurfCont void   
 

Definition at line 1018 of file SUMA_help.c.

References SUMA_ENTRY, SUMA_RETURN, SUMA_SS2S, SUMA_StringAppend(), SUMA_StringAppend_va(), SUMA_SurfContHelp_AbsThr, SUMA_SurfContHelp_Bias, SUMA_SurfContHelp_Cmp, SUMA_SurfContHelp_CmpNew, SUMA_SurfContHelp_Col, SUMA_SurfContHelp_DsetDim, SUMA_SurfContHelp_DsetLblTblr0, SUMA_SurfContHelp_DsetLblTblr1, SUMA_SurfContHelp_DsetLoad, SUMA_SurfContHelp_DsetLoadCol, SUMA_SurfContHelp_DsetOpa, SUMA_SurfContHelp_DsetOrd, SUMA_SurfContHelp_Dsets, SUMA_SurfContHelp_DsetSwitch, SUMA_SurfContHelp_DsetView, SUMA_SurfContHelp_Isym, SUMA_SurfContHelp_more, SUMA_SurfContHelp_Node, SUMA_SurfContHelp_NodeLabelTblr0, SUMA_SurfContHelp_NodeValTblc1, SUMA_SurfContHelp_NodeValTblc2, SUMA_SurfContHelp_NodeValTblc3, SUMA_SurfContHelp_NodeValTblr0, SUMA_SurfContHelp_RangeTbl_c0, SUMA_SurfContHelp_RangeTbl_c1, SUMA_SurfContHelp_RangeTbl_c2, SUMA_SurfContHelp_RangeTbl_c3, SUMA_SurfContHelp_RangeTbl_c4, SUMA_SurfContHelp_RangeTbl_r1, SUMA_SurfContHelp_RangeTbl_r2, SUMA_SurfContHelp_RangeTbl_r3, SUMA_SurfContHelp_RenderMode, SUMA_SurfContHelp_SelBrt, SUMA_SurfContHelp_SelBrtTgl, SUMA_SurfContHelp_SelInt, SUMA_SurfContHelp_SelIntTgl, SUMA_SurfContHelp_SelThr, SUMA_SurfContHelp_SelThrTgl, SUMA_SurfContHelp_SetRngTbl_c1, SUMA_SurfContHelp_SetRngTbl_c2, SUMA_SurfContHelp_SetRngTbl_r0, SUMA_SurfContHelp_SetRngTbl_r1, SUMA_SurfContHelp_SetRngTbl_r2, SUMA_SurfContHelp_SetRngTbl_r3, SUMA_SurfContHelp_SetRngTbl_r4, SUMA_SurfContHelp_Shw0, SUMA_SurfContHelp_Tri, and SUMA_SurfContHelp_Xhr.

Referenced by SUMA_help_Cmap_message_Info().

01019 {
01020    static char FuncName[]={"SUMA_Help_AllSurfCont"};
01021    char *s = NULL;
01022    SUMA_STRING *SS = NULL;
01023    
01024    SUMA_ENTRY;
01025    
01026    SS = SUMA_StringAppend (NULL, NULL);
01027    
01028    SS = SUMA_StringAppend(SS, 
01029          "\n"
01030          "\n"
01031          "----------------------------\n"
01032          "Help for Surface Controller:\n"
01033          "----------------------------\n"
01034          "The surface controller is for \n"
01035          "controlling properties pertinent\n"
01036          "to the surface selected (in focus).\n"
01037          "The Surface Controller is launched\n"
01038          "with 'ctrl+s' or \n"
01039          "      View-->Surface Controller .\n"
01040          "\n"
01041          );
01042    SS = SUMA_StringAppend_va(SS, 
01043          "+ Surface Properties Block:\n"
01044          "\n"
01045          "++ more:\n%s\n"
01046          "\n"
01047          "++ RenderMode:\n%s\n"
01048          "\n"
01049          "++ Dsets:\n%s\n"
01050          "\n", 
01051          SUMA_SurfContHelp_more, SUMA_SurfContHelp_RenderMode, SUMA_SurfContHelp_Dsets);
01052    SS = SUMA_StringAppend_va(SS, 
01053          "+ Xhair Info Block:\n"
01054          "\n"
01055          "++ Xhr:\n%s\n"
01056          "\n"
01057          "++ Node:\n%s\n"
01058          "\n"
01059          "++ Tri:\n%s\n"
01060          "\n"
01061          "++ Node Values Table: %s\n"
01062          "+++ Col. Intens\n%s\n"
01063          "+++ Col. Thresh\n%s\n"
01064          "+++ Col. Bright:\n%s\n"
01065          "+++ Row  Val:\n%s\n"
01066          "\n"
01067          "++ Node Label Table:\n"
01068          "+++ Row  Lbl:\n%s\n"
01069          "\n",
01070          SUMA_SurfContHelp_Xhr, SUMA_SurfContHelp_Node, SUMA_SurfContHelp_Tri, 
01071          SUMA_SurfContHelp_NodeValTblr0, SUMA_SurfContHelp_NodeValTblc1,  
01072          SUMA_SurfContHelp_NodeValTblc2, SUMA_SurfContHelp_NodeValTblc3, 
01073          SUMA_SurfContHelp_NodeValTblr0,
01074          SUMA_SurfContHelp_NodeLabelTblr0);
01075    
01076    SS = SUMA_StringAppend_va(SS, 
01077          "+ Dset Controls Block:\n"
01078          "\n"
01079          "++ Dset Info Table: \n"
01080          "+++ Row  Lbl:\n%s\n"
01081          "+++ Row  Par:\n%s\n"
01082          "\n"
01083          "++ Ord:\n%s\n"
01084          "\n"
01085          "++ Opa:\n%s\n"
01086          "\n"
01087          "++ Dim:\n%s\n"
01088          "\n"
01089          "++ view:\n%s\n"
01090          "\n"
01091          "++ Switch Dset:\n%s\n"
01092          "\n", 
01093          SUMA_SurfContHelp_DsetLblTblr0, SUMA_SurfContHelp_DsetLblTblr1, 
01094          SUMA_SurfContHelp_DsetOrd, SUMA_SurfContHelp_DsetOpa, SUMA_SurfContHelp_DsetDim,
01095          SUMA_SurfContHelp_DsetView, SUMA_SurfContHelp_DsetSwitch);
01096    
01097    SS = SUMA_StringAppend_va(SS,       
01098          "++ Load Dset:\n%s\n"
01099          "\n"
01100          "++ Load Col:\n%s\n"
01101          "\n", 
01102          SUMA_SurfContHelp_DsetLoad,
01103          SUMA_SurfContHelp_DsetLoadCol);
01104          
01105    SS = SUMA_StringAppend_va(SS, 
01106          "+ Dset Mapping Block:\n"
01107          "\n"
01108          "++ Mapping Data: \n"
01109          "\n"
01110          "+++ I\n%s\n"
01111          "++++ v:\n%s\n"
01112          "+++ T\n%s\n"
01113          "++++ v\n%s\n"
01114          "+++ B\n%s\n"
01115          "++++ v\n%s\n"
01116          "\n", 
01117          SUMA_SurfContHelp_SelInt, SUMA_SurfContHelp_SelIntTgl,
01118          SUMA_SurfContHelp_SelThr, SUMA_SurfContHelp_SelThrTgl, 
01119          SUMA_SurfContHelp_SelBrt, SUMA_SurfContHelp_SelBrtTgl );
01120          
01121    SS = SUMA_StringAppend_va(SS, 
01122          "++ Mapping Parameters Table:\n%s\n"
01123          "+++ Col. Min\n%s\n"      
01124          "+++ Col. Max\n%s\n"
01125          "+++ Row  I\n%s\n"
01126          "+++ Row  B1\n%s\n"
01127          "+++ Row  B2\n%s\n"
01128          "+++ Row  C\n%s\n"
01129          "\n", 
01130          SUMA_SurfContHelp_SetRngTbl_r0,
01131          SUMA_SurfContHelp_SetRngTbl_c1, SUMA_SurfContHelp_SetRngTbl_c2,
01132          SUMA_SurfContHelp_SetRngTbl_r1, SUMA_SurfContHelp_SetRngTbl_r2,
01133          SUMA_SurfContHelp_SetRngTbl_r3, SUMA_SurfContHelp_SetRngTbl_r4);
01134    
01135    SS = SUMA_StringAppend_va(SS, 
01136          "++ Col\n%s\n"
01137          "\n"
01138          "++ Bias\n%s\n"
01139          "\n"
01140          "Cmp\n%s\n"
01141          "\n"
01142          "New\n%s\n"
01143          "\n"
01144          "|T|\n%s\n"
01145          "\n"
01146          "sym I\n%s\n"
01147          "\n"      
01148          "shw 0\n%s\n"
01149          "\n",      
01150          SUMA_SurfContHelp_Col, SUMA_SurfContHelp_Bias, SUMA_SurfContHelp_Cmp,
01151          SUMA_SurfContHelp_CmpNew, SUMA_SurfContHelp_AbsThr, SUMA_SurfContHelp_Isym,
01152          SUMA_SurfContHelp_Shw0);
01153 
01154    SS = SUMA_StringAppend_va(SS, 
01155          "++ Data Range Table:\n%s\n"
01156          "\n"
01157          "+++ Col Min\n%s\n"
01158          "+++ Col Node\n%s\n"
01159          "+++ Col Max\n%s\n"
01160          "+++ Col Node\n%s\n"
01161          "+++ Row I\n%s\n"
01162          "+++ Row T\n%s\n"
01163          "+++ Row B\n%s\n", 
01164          SUMA_SurfContHelp_RangeTbl_c0,
01165          SUMA_SurfContHelp_RangeTbl_c1, SUMA_SurfContHelp_RangeTbl_c2,
01166          SUMA_SurfContHelp_RangeTbl_c3, SUMA_SurfContHelp_RangeTbl_c4,
01167          SUMA_SurfContHelp_RangeTbl_r1, SUMA_SurfContHelp_RangeTbl_r2, 
01168          SUMA_SurfContHelp_RangeTbl_r3);
01169                
01170             
01171    SUMA_SS2S(SS, s);
01172    
01173    SUMA_RETURN(s);
01174 }

void SUMA_Help_Cmap_destroyed void *    p
 

function called when help window is destroyed

Definition at line 308 of file SUMA_help.c.

References SUMA_X_AllView::Help_Cmap_TextShell, p, SUMA_ENTRY, SUMA_RETURNe, and SUMA_CommonFields::X.

00309 {
00310    static char FuncName[]={"SUMA_Help_Cmap_destroyed"};
00311    
00312    SUMA_ENTRY;
00313 
00314    SUMAg_CF->X->Help_Cmap_TextShell = NULL;
00315    
00316    SUMA_RETURNe;
00317 }

char* SUMA_help_Cmap_message_Info SUMA_COLOR_MAP   Cmp
 

Definition at line 518 of file SUMA_help.c.

References SUMA_STRING::s, SUMA_ColorMapVec_Info(), SUMA_ENTRY, SUMA_free, SUMA_Help_AllSurfCont(), SUMA_New_Additions(), SUMA_RETURN, and SUMA_StringAppend().

Referenced by SUMA_Engine().

00519 {
00520    static char FuncName[]={"SUMA_help_message_Info"};
00521    char stmp[1000], *s = NULL;
00522    SUMA_STRING *SS = NULL;
00523    
00524    SUMA_ENTRY;
00525    
00526    SS = SUMA_StringAppend (NULL, NULL);
00527 
00528    s = SUMA_New_Additions (0, 1);
00529    SS = SUMA_StringAppend (SS, s); SUMA_free(s); s = NULL;
00530    
00531    SS = SUMA_StringAppend (SS, 
00532       "\nKeyboard Controls\n"
00533       "     r: record image of colormap.\n"
00534       "\n"
00535       "     Ctrl+h: this help message\n"
00536       "\n"
00537       "     Z: Zoom in.\n"
00538       "        Maximum zoom in shows 2 colors in the map\n"
00539       "     z: Zoom out.\n"
00540       "        Minimum zoom in shows all colors in the map\n"
00541       "\n"
00542       "     Up/Down arrows: move colormap up/down.\n"
00543       "\n"
00544       "     Home: Reset zoom and translation parameters\n"
00545       "\n");
00546       
00547    SS = SUMA_StringAppend (SS, 
00548       "\nCmap properties\n");
00549    s = SUMA_ColorMapVec_Info(&ColMap, 1, 1);
00550    SS = SUMA_StringAppend (SS, s); SUMA_free(s); s = NULL;
00551 
00552    /* Add help for all controller options */
00553    s = SUMA_Help_AllSurfCont();
00554    SS = SUMA_StringAppend (SS, s); SUMA_free(s); s = NULL;
00555    
00556    /* clean SS */
00557    SS = SUMA_StringAppend (SS, NULL);
00558    /* copy s pointer and free SS */
00559    s = SS->s;
00560    SUMA_free(SS); 
00561    
00562    SUMA_RETURN (s);
00563 
00564 }

void SUMA_Help_Cmap_open void *    p
 

function called when help window is open

Definition at line 295 of file SUMA_help.c.

References p, SUMA_ENTRY, and SUMA_RETURNe.

00296 {
00297    static char FuncName[]={"SUMA_Help_Cmap_open"};
00298 
00299    SUMA_ENTRY;
00300    /* nothing to do here */
00301    
00302    SUMA_RETURNe;
00303 }

void SUMA_Help_destroyed void *    p
 

function called when help window is destroyed

Definition at line 282 of file SUMA_help.c.

References SUMA_X_AllView::Help_TextShell, p, SUMA_ENTRY, SUMA_RETURNe, and SUMA_CommonFields::X.

00283 {
00284    static char FuncName[]={"SUMA_Help_destroyed"};
00285    
00286    SUMA_ENTRY;
00287 
00288    SUMAg_CF->X->Help_TextShell = NULL;
00289    
00290    SUMA_RETURNe;
00291 }

void SUMA_help_message FILE *    Out
 

Controls help message

Definition at line 870 of file SUMA_help.c.

References SUMA_ENTRY, SUMA_free, SUMA_help_message_Info(), and SUMA_RETURNe.

00871 {
00872         char *s=NULL;
00873    static char FuncName[]={"SUMA_help_message"};
00874    
00875    SUMA_ENTRY;
00876 
00877    if (Out == NULL) {
00878                 Out = stdout;
00879         }
00880    
00881    s = SUMA_help_message_Info();
00882    if (!s) {
00883       fprintf (SUMA_STDERR, "Error %s: Failed in SUMA_help_message_Info.\n", FuncName);
00884    }else {
00885       fprintf (Out, "%s\n", s);
00886       SUMA_free(s);
00887    }
00888         
00889    SUMA_RETURNe;
00890 }

char* SUMA_help_message_Info void   
 

Definition at line 566 of file SUMA_help.c.

References SUMA_CommonFields::Dev, SUMA_STRING::s, SUMA_ENTRY, SUMA_free, SUMA_New_Additions(), SUMA_RETURN, and SUMA_StringAppend().

Referenced by SUMA_Engine(), and SUMA_help_message().

00567 {
00568    static char FuncName[]={"SUMA_help_message_Info"};
00569    char stmp[1000], *s = NULL;
00570    SUMA_STRING *SS = NULL;
00571    
00572    SUMA_ENTRY;
00573    
00574    SS = SUMA_StringAppend (NULL, NULL);
00575 
00576    s = SUMA_New_Additions (0, 1);
00577    SS = SUMA_StringAppend (SS, s); SUMA_free(s); s = NULL;
00578    
00579    SS = SUMA_StringAppend (SS, 
00580       "\nKeyboard Controls (substitute Alt with Apple key on MACs)\n");
00581    SS = SUMA_StringAppend (SS, 
00582       "     a: attenuation by background, toggle.\n\n");
00583    SS = SUMA_StringAppend (SS, 
00584       "     B: Backface culling, toggle.\n");
00585    SS = SUMA_StringAppend (SS, 
00586       "     b: background color, toggle.\n\n");
00587    SS = SUMA_StringAppend (SS, 
00588       "     c: load a node color file.\n\n");
00589    SS = SUMA_StringAppend (SS, 
00590       "     Ctrl+d: draw ROI controller.\n\n");
00591    if (SUMAg_CF->Dev) SS = SUMA_StringAppend (SS, 
00592       "     d: Show all DO objects in DOv.\n\n");
00593    if (SUMAg_CF->Dev) SS = SUMA_StringAppend (SS, 
00594       "     Ctrl+e: Look for OpenGL errors.\n\n"); 
00595    SS = SUMA_StringAppend (SS, 
00596       "     F: Flip light position between +z and -z.\n");
00597    SS = SUMA_StringAppend (SS, 
00598       "     f: functional overlay, toggle.\n\n");
00599    SS = SUMA_StringAppend (SS, 
00600       "     H: Highlight nodes inside a specified box.\n"
00601       "        Does not update other viewers\n"
00602       "        Paints into existing colors\n"
00603       "        Highlight is wiped out with new\n"
00604       "        colors.\n\n");
00605    SS = SUMA_StringAppend (SS, 
00606       "     h: NO LONGER USED.\n"
00607       "        Please use Ctrl+h instead.\n");
00608    SS = SUMA_StringAppend (SS, 
00609       "     Ctrl+h: help message\n\n");
00610    SS = SUMA_StringAppend (SS, 
00611       "     J: Set the selected FaceSet on Surface Object\n"
00612       "        in Focus. Does not update in other viewers\n"
00613       "        or in AFNI.\n");
00614    SS = SUMA_StringAppend (SS, 
00615       "     j: Set the cross hair to a certain node on \n"
00616       "        SO in Focus.\n"
00617       "        Does update in other viewers\n"
00618       "        if linked by index"
00619       "        and AFNI if connected\n");
00620    SS = SUMA_StringAppend (SS, 
00621       "     Ctrl+j: Set the cross hair's XYZ location. \n"
00622       "        Does update in other viewers\n"
00623       "        if linked by XYZ"
00624       "        and AFNI if connected\n");
00625    SS = SUMA_StringAppend (SS, 
00626       "     Alt+j: Set the Focus node. \n"
00627       "        Cross hair's XYZ remain unchanged.\n"
00628       "        Does not update in other viewers\n"
00629       "        or in AFNI\n\n");
00630    SS = SUMA_StringAppend (SS, 
00631       "     L: Light's XYZ coordinates\n");
00632    SS = SUMA_StringAppend (SS, 
00633       "     l: look at point\n");
00634    SS = SUMA_StringAppend (SS, 
00635       "     Alt+l: look at cross hair\n");
00636    SS = SUMA_StringAppend (SS, 
00637       "     Ctrl+l: Switch locking mode for all viewers \n"
00638       "             between: No Lock, Index Lock and \n"
00639       "             XYZ Lock. The switching is order is \n"
00640       "             based on the lock of the first viewer.\n\n");
00641    SS = SUMA_StringAppend (SS, 
00642       "     Alt+Ctrl+M: Dumps memory trace to file \n"
00643       "                 called malldump.NNN where NNN\n"
00644       "                 is the smallest number between\n"
00645       "                 001 and 999 that has not been used.\n");
00646    SS = SUMA_StringAppend (SS, 
00647       "     m: momentum, toggle\n\n");
00648    if (SUMAg_CF->Dev) SS = SUMA_StringAppend (SS, 
00649       "     n: bring a node to direct view (does not work AT ALL)\n");
00650    SS = SUMA_StringAppend (SS, 
00651       "     Ctrl+n: Open a new surface viewer window.\n\n");
00652    SS = SUMA_StringAppend (SS, 
00653       "     p: Viewer rendering mode  \n"
00654       "        (Fill, Line, Points), switch.\n\n");
00655    SS = SUMA_StringAppend (SS, 
00656       "     r: record current image\n"
00657       "        in an a la AFNI image viewer.\n"
00658       "        Identical images are rejected.\n\n");
00659    SS = SUMA_StringAppend (SS, 
00660       "     R: Toggle continuous recording \n"
00661       "        to an a la AFNI image viewer.\n"
00662       "        Identical images are rejected.\n\n");
00663    SS = SUMA_StringAppend (SS, 
00664       "     s: NO LONGER IN USE. \n"
00665       "        View the surface's structure contents.\n"
00666       "        Use:View->Surface Controller->More.\n");
00667    SS = SUMA_StringAppend (SS, 
00668       "     Ctrl+s: Open controller for \n"
00669       "             surface in Focus.\n");
00670    if (SUMAg_CF->Dev) SS = SUMA_StringAppend (SS, 
00671       "     Ctrl+Alt+s: Input filename with coordinates\n"
00672       "                 forming a segment (6 values) on \n"
00673       "                 each line.\n");
00674    SS = SUMA_StringAppend (SS, 
00675       "     Alt+s: Switch mouse buttons 1 and 3.\n\n");
00676    if (SUMAg_CF->Dev) SS = SUMA_StringAppend (SS, 
00677       "     S: Show all surface objects registered in DOv.\n\n");
00678    SS = SUMA_StringAppend (SS, 
00679       "     t: talk to AFNI, toggle.\n");
00680    SS = SUMA_StringAppend (SS, 
00681       "     Ctrl+t: Force a resend of \n"
00682       "            surfaces to AFNI.\n\n");
00683    SS = SUMA_StringAppend (SS, 
00684       "     T: Start listening for niml connections\n\n");
00685    SS = SUMA_StringAppend (SS, 
00686       "     Ctrl+u: Open SUMA controller.\n\n");   
00687    SS = SUMA_StringAppend (SS, 
00688       "     v: NO LONGER IN USE. \n"
00689       "        View the viewer's structure contents.\n"
00690       "        Use: View->Viewer Controller->More.\n"
00691       "\n");
00692    SS = SUMA_StringAppend (SS, 
00693       "     w: This option has been dropped.\n"
00694       "        Instead, use 'r' or 'R' recording options\n"
00695       "        or use a screen grab instead. \n"
00696       "        (like xv on unix systems, and grab on Macs.)\n");
00697    SS = SUMA_StringAppend (SS, 
00698       "     W: Write ascii files containing the NodeList,\n"
00699       "        the FaceSetList and the nodecolors of the \n"
00700       "        surface in focus.\n\n");
00701    SS = SUMA_StringAppend (SS, 
00702       "     Z/z: Zoom in/out\n\n");
00703    SS = SUMA_StringAppend (SS, 
00704       "     [: Show/Hide left hemisphere.\n"
00705       "     ]: Show/Hide right hemisphere.\n"
00706       "        Window title shows which \n"
00707       "        hemispheres are shown :LR:\n"
00708       "        :-R: :L-: or :--:\n\n");
00709    SS = SUMA_StringAppend (SS, 
00710       "  8: Set the number of smoothing iterations\n"
00711       "     to be applied to the foreground colors.\n"
00712       "     This setting will be applied to all subsequent\n"
00713       "     color sets.\n");
00714    SS = SUMA_StringAppend (SS, 
00715       "  *: Smooth node colors by averaging with neighbors.\n"
00716       "     The smoothing is only applied to the current colors,\n"
00717       "     and will be not be applied to new color sets.\n\n");
00718    if (SUMAg_CF->Dev) SS = SUMA_StringAppend (SS, 
00719       "     @: Compute curvatures along principal directions \n"
00720       "        on the surface, results written to disk.\n\n");
00721    if (SUMAg_CF->Dev) SS = SUMA_StringAppend (SS, 
00722       "     (: Compute convexity of surface, \n"
00723       "        results written to disk.\n\n");
00724    SS = SUMA_StringAppend (SS, 
00725       "     ,/. (think </>): Switch to next/previous view state.\n\n");
00726    SS = SUMA_StringAppend (SS, 
00727       "     SPACE: Toggle between Mapping Reference and\n"
00728       "            Current view state.\n\n");
00729 
00730    SS = SUMA_StringAppend (SS, 
00731       "     L-R arrows: rotate about screen's Y axis\n");
00732    SS = SUMA_StringAppend (SS, 
00733       "     U-D arrows: rotate about screen's X axis\n");
00734    SS = SUMA_StringAppend (SS, 
00735       "     Shift+L-R arrows: translate about screen's \n"
00736       "                       Y axis\n");
00737    SS = SUMA_StringAppend (SS, 
00738       "     Shift+U-D arrows: translate about screen's \n"
00739       "                       X axis\n");
00740    SS = SUMA_StringAppend (SS, 
00741       "     Ctrl+L-R arrows: LR cardinal views\n");
00742    SS = SUMA_StringAppend (SS, 
00743       "     Ctrl+U-D arrows: IS cardinal views\n");
00744    SS = SUMA_StringAppend (SS, 
00745       "     Ctrl+Shift+U-D arrows: AP cardinal views\n\n");
00746 
00747    SS = SUMA_StringAppend (SS, 
00748       "     F1: screen axis (X-Red, Y-Green), toggle. \n");
00749    SS = SUMA_StringAppend (SS, 
00750       "     F2: surface axis (X-Red, Y-Green, Z-Blue), \n"
00751       "         switch. \n");
00752    SS = SUMA_StringAppend (SS, 
00753       "     F3: cross hair, toggle. \n");
00754    SS = SUMA_StringAppend (SS, 
00755       "     F4: node selection highlight, toggle. \n");
00756    SS = SUMA_StringAppend (SS, 
00757       "     F5: FaceSet selection highlight, toggle.\n");
00758    SS = SUMA_StringAppend (SS, 
00759       "     F6: Viewer background color, toggle.\n");
00760    SS = SUMA_StringAppend (SS, 
00761       "     F7: Switch between color mixing modes.\n"
00762       "         ORIG: Col = ( 1 - opacity ) * OldCol + opacity * NewCol \n"
00763       "         MOD1: Col = ( 1 - opacity ) * OldCol +           NewCol \n");
00764    SS = SUMA_StringAppend (SS, 
00765       "     F8: Viewing mode (Perspective or Orthographic Projection), toggle.\n"
00766       );
00767    SS = SUMA_StringAppend (SS, 
00768       "     F12: Time 20 scene renderings.\n\n");
00769    SS = SUMA_StringAppend (SS, 
00770       "     HOME: reset view to startup\n\n");
00771    SS = SUMA_StringAppend (SS, 
00772       "     ESCAPE: close the surface viewer window.\n");
00773    SS = SUMA_StringAppend (SS, 
00774       "     Shft+ESCAPE: close all surface viewer windows.\n\n");
00775    SS = SUMA_StringAppend (SS, 
00776       "     Mouse Controls:\n");
00777    SS = SUMA_StringAppend (SS, 
00778       "     Button 1-Motion: rotation as if you were using\n"
00779       "                      a trackball.\n");
00780    SS = SUMA_StringAppend (SS, 
00781       "       Pure vertical motion is equivalent to using \n"
00782       "       the up/down arrow keys.\n");
00783    SS = SUMA_StringAppend (SS, 
00784       "       Pure horizontal motion is equivalent to using \n"
00785       "       the left/right arrow keys.\n");
00786    SS = SUMA_StringAppend (SS, 
00787       "       Of course, the advantage to using the mouse is \n"
00788       "       a continuous range of rotation angles and \n");
00789    SS = SUMA_StringAppend (SS, 
00790       "       simultaneous rotations about the screen's \n"
00791       "       X & Y axis.\n");
00792    SS = SUMA_StringAppend (SS, 
00793       "       This mode of rotation is similar to SGI's \n"
00794       "       ivview interface.\n");
00795    SS = SUMA_StringAppend (SS, 
00796       "     Button 2-Motion: translation\n"); 
00797    SS = SUMA_StringAppend (SS, 
00798       "     Button 1+2-Motion OR \n"
00799       "      Shift+Button2-Motion: \n"
00800       "          Zoom in/out\n");
00801    SS = SUMA_StringAppend (SS, 
00802       "     Button 3-Press: picking \n");
00803    SS = SUMA_StringAppend (SS, 
00804       "     shft+Button 3-Press: ROI drawing \n"
00805       "                          (when in DrawROI mode)\n");
00806    SS = SUMA_StringAppend (SS, 
00807       "    \n");
00808    SS = SUMA_StringAppend (SS, 
00809       "    File Menu:\n"
00810       "    ->Save View: Save viewer's display settings.\n"
00811       "    ->Load View: Load and apply display settings.\n"
00812       "    ->Close: Close this viewer.\n"
00813       "             Exit SUMA if this is the only viewer.\n");
00814    SS = SUMA_StringAppend (SS, 
00815       "    View Menu:\n"
00816       "    ->SUMA Controller: Open SUMA controller interface.\n"
00817       "    ->Surface Controller: Open selected surface's \n"
00818       "                          controller interface.\n"
00819       "    ->Viewer Controller: Open viewer's controller interface.\n"
00820       "    --------\n"
00821       "    ->Cross Hair: Toggle cross hair display.\n"
00822       "    ->Node in Focus: Toggle highlight of selected node.\n"
00823       "    ->Selected Faceset: Toggle highlight of selected faceset.\n");
00824    SS = SUMA_StringAppend (SS, 
00825       "    Tools Menu:\n"
00826       "    ->Draw ROI: Open Draw ROI controller.\n");
00827    SS = SUMA_StringAppend (SS, 
00828       "    Help Menu:\n"
00829       "    ->Usage: Opens window with this message.\n"
00830       "    ->Message Log: Opens window that will \n"
00831       "                   contain errors and warnings\n"
00832       "                   typically output to screen.\n"
00833       "    -------\n"
00834       "    ->SUMA Global: Output debugging information\n"
00835       "                   about some of SUMA's global \n"
00836       "                   structure's variables.\n"
00837       "    ->Viewer Struct: Output debugging info on \n"
00838       "                     a viewer's structure.\n"
00839       "    ->Surface Struct: Output debugging info on\n"
00840       "                      the selected surface's struct.\n"
00841       "    -------\n"
00842       "    ->InOut Notify: Turn on/off function in/out tracing.\n"
00843       "    ->MemTrace: Turn on memory tracing.\n"
00844       "                Once turned on, this can't be turned off.\n"
00845       "\n");
00846    SS = SUMA_StringAppend (SS, 
00847       "    More help at \n"
00848       "    http://afni.nimh.nih.gov/ssc/ziad/SUMA/SUMA_doc.htm\n");
00849    SS = SUMA_StringAppend (SS, 
00850       "\n");
00851    
00852    /* add latest additions */
00853    SS = SUMA_StringAppend (SS, "Current Version Info:\n");
00854    s = SUMA_New_Additions (0, 0);
00855    SS = SUMA_StringAppend (SS, s); SUMA_free(s); s = NULL;
00856 
00857    /* clean SS */
00858    SS = SUMA_StringAppend (SS, NULL);
00859    /* copy s pointer and free SS */
00860    s = SS->s;
00861    SUMA_free(SS); 
00862    
00863    SUMA_RETURN (s);
00864 
00865 }

void SUMA_Help_open void *    p
 

function called when help window is open

Definition at line 269 of file SUMA_help.c.

References p, SUMA_ENTRY, and SUMA_RETURNe.

00270 {
00271    static char FuncName[]={"SUMA_Help_open"};
00272 
00273    SUMA_ENTRY;
00274    /* nothing to do here */
00275    
00276    SUMA_RETURNe;
00277 }

void SUMA_mapStateChanged Widget    w,
XtPointer    clientData,
XEvent *    event,
Boolean *    cont
 

Definition at line 929 of file SUMA_display.c.

References SUMA_X_AllView::App, event, SUMA_SurfaceViewer::GVS, SUMA_SurfaceViewer::isShaded, LocalHead, SUMA_X::MOMENTUMID, SUMA_SurfaceViewer::rdc, SUMA_SurfaceViewer::ResetGLStateVariables, SUMA_SurfaceViewer::StdView, SUMA_ANY_WIDGET2SV, SUMA_Boolean, SUMA_ENTRY, SUMA_LH, SUMA_postRedisplay(), SUMA_RDC_X_MAPSTATE, SUMA_RETURNe, SUMA_CommonFields::X, and SUMA_SurfaceViewer::X.

Referenced by SUMA_X_SurfaceViewer_Create().

00931 {
00932 
00933    static char FuncName[]={"SUMA_mapStateChanged"};
00934    int isv;
00935    SUMA_SurfaceViewer *sv;
00936    SUMA_Boolean LocalHead = NOPE;
00937    
00938    SUMA_ENTRY;
00939    
00940    SUMA_LH("Called");
00941    
00942    /* determine the surface viewer that the widget belongs to */
00943    SUMA_ANY_WIDGET2SV(w, sv, isv);
00944    if (isv < 0) {
00945       fprintf (SUMA_STDERR, "Error %s: Failed in macro SUMA_ANY_WIDGET2SV.\n", FuncName);
00946       SUMA_RETURNe;
00947    }
00948 
00949    sv->rdc = SUMA_RDC_X_MAPSTATE;
00950    
00951    /* When using multiple viewers, you must reset the OpenGL state variables or risk having abrupt changes with the first click */
00952    sv->ResetGLStateVariables = YUP;
00953 
00954    /*fprintf(stdout, "widget window being mapped/unmapped\n");*/
00955    switch (event->type) {
00956    case MapNotify:
00957       sv->isShaded = NOPE;
00958       if (sv->GVS[sv->StdView].ApplyMomentum)
00959          sv->X->MOMENTUMID = XtAppAddTimeOut(SUMAg_CF->X->App, 1, SUMA_momentum, (XtPointer)w);
00960       break;
00961    case UnmapNotify:
00962       sv->isShaded = YUP;
00963       if (sv->GVS[sv->StdView].ApplyMomentum) {
00964          if (sv->X->MOMENTUMID) XtRemoveTimeOut(sv->X->MOMENTUMID);
00965          sv->X->MOMENTUMID = 0;
00966       }
00967       break;
00968    }
00969   
00970   SUMA_postRedisplay(w, clientData, NULL);
00971   
00972   SUMA_RETURNe;
00973 }

void SUMA_Message_destroyed void *    p
 

function called when Message window is destroyed

Definition at line 335 of file SUMA_help.c.

References SUMA_X_AllView::Log_TextShell, p, SUMA_ENTRY, SUMA_RETURNe, and SUMA_CommonFields::X.

00336 {
00337    static char FuncName[]={"SUMA_Message_destroyed"};
00338    
00339    SUMA_ENTRY;
00340 
00341    SUMAg_CF->X->Log_TextShell = NULL;
00342    
00343    SUMA_RETURNe;
00344 }

void SUMA_Message_open void *    p
 

function called when Message window is open

Definition at line 322 of file SUMA_help.c.

References p, SUMA_ENTRY, and SUMA_RETURNe.

00323 {
00324    static char FuncName[]={"SUMA_Message_open"};
00325 
00326    SUMA_ENTRY;
00327    /* nothing to do here */
00328    
00329    SUMA_RETURNe;
00330 }

char* SUMA_New_Additions int    ver,
SUMA_Boolean    StampOnly
 

Definition at line 34 of file SUMA_help.c.

References i, SUMA_STRING::s, SUMA_Boolean, SUMA_ENTRY, SUMA_free, SUMA_New_Additions_perver(), SUMA_RETURN, SUMA_StringAppend(), SUMA_StringAppend_va(), SUMA_VERSION_LABEL, and verv.

Referenced by cmp_surf_usage(), main(), SUMA_help_Cmap_message_Info(), SUMA_help_message_Info(), SUMA_Version(), usage_3dBRAIN_VOYAGERtoAFNI(), usage_3dCRUISEtoAFNI(), usage_3dSurfMask(), usage_PROGRAM_NAME(), usage_SUMA_coarsen(), usage_SUMA_SampBias(), and usage_SurfToSurf().

00035 {
00036    static char FuncName[]={"SUMA_New_Additions"};
00037    char *s = NULL;
00038    int i;
00039    SUMA_STRING *SS = NULL;
00040    
00041    SUMA_ENTRY;
00042    
00043    SS = SUMA_StringAppend (NULL, NULL);
00044    
00045    if (ver == 0) { /* just the latest */
00046       s = SUMA_New_Additions_perver( verv[0], StampOnly);
00047       if (s) {
00048          SS = SUMA_StringAppend (SS, s); SUMA_free(s); s = NULL;
00049       }
00050    } else if (ver < 0) {
00051       /* all history */
00052       SS = SUMA_StringAppend (SS, "All Version Info:\n"); 
00053       i = 0;
00054       while (verv[i] > 0) {
00055          s = SUMA_New_Additions_perver( verv[i], StampOnly);
00056          if (s) {
00057          SS = SUMA_StringAppend (SS, s); SUMA_free(s); s = NULL;
00058          SS = SUMA_StringAppend (SS, "\n");
00059          }
00060          ++i;
00061       }
00062       
00063    } else {
00064       /* just for ver */
00065       s = SUMA_New_Additions_perver( ver, StampOnly);
00066       if (s) {
00067          SS = SUMA_StringAppend (SS, s); SUMA_free(s); s = NULL;
00068       }
00069    }
00070    
00071    /* add the CVS tag */
00072    SS = SUMA_StringAppend_va (SS, "\nCVS tag:\n   %s\n", SUMA_VERSION_LABEL);
00073    
00074    /* add the compile date */
00075    SS = SUMA_StringAppend_va (SS, "\nCompile Date:\n   %s\n",__DATE__);
00076    
00077    /* clean SS */
00078    SS = SUMA_StringAppend (SS, NULL);
00079    /* copy s pointer and free SS */
00080    s = SS->s;
00081    SUMA_free(SS); 
00082    
00083    SUMA_RETURN(s);      
00084    
00085 }

char* SUMA_New_Additions_perver int    ver,
SUMA_Boolean    StampOnly
 

Returns a string with version information.

Parameters:
ver  (float) Version number
StampOnly  (SUMA_Boolean) if YUP then return the time stamp of the version only)
Returns:
s (char *) the string, yall have to free it with SUMA_free
See also:
SUMA_New_Additions

  • To add a new version, you must add a case statement in SUMA_New_Additions_perver AND add the version number in the beginning of SUMA_VERSION_VECTOR in SUMA_DataSets.h

Definition at line 99 of file SUMA_help.c.

References SUMA_STRING::s, SUMA_Boolean, SUMA_ENTRY, SUMA_free, SUMA_RETURN, SUMA_StringAppend(), SUMA_StringAppend_va(), and SUMA_ver2date().

Referenced by SUMA_New_Additions().

00100 {
00101    static char FuncName[]={"SUMA_New_Additions_perver"};
00102    char *s = NULL;
00103    SUMA_STRING *SS = NULL;
00104    
00105    SUMA_ENTRY;
00106    
00107    SS = SUMA_StringAppend (NULL, NULL);
00108    
00109    
00110    switch (ver) {
00111       /* Must modify verv in SUMA_New_Additions when you touch this block */
00112       /*
00113       case XX:
00114          SS = SUMA_StringAppend_va(SS, 
00115             "++ SUMA version %s\n", SUMA_ver2date(ver)); if (StampOnly) break;
00116          SS = SUMA_StringAppend(SS, 
00117             "New Programs:\n"
00118             "  + \n"
00119             "Modifications:\n"
00120             "  + \n");
00121          break; 
00122       */
00123       
00124       case 20041229:
00125          SS = SUMA_StringAppend_va(SS, 
00126             "++ SUMA version %s\n", SUMA_ver2date(ver)); if (StampOnly) break;
00127          SS = SUMA_StringAppend(SS, 
00128             "New Programs:\n"
00129             "  + SurfClust: Program to find clusters of activation\n"
00130             "               on the surface.\n"
00131             "  + IsoSurface: Program to create isosurfaces from AFNI volumes.\n"
00132             "  + ConvexHull: Program to create the convex hull of a set of\n"
00133             "                points.\n"
00134             "  + 3dSkullStrip: Program to remove the skull from anatomical \n"
00135             "                  volumes.\n"
00136             "  + 3dCRUISEtoAFNI: Program to convert CRUISE volumes to AFNI\n"
00137             "  + 3dBRAIN_VOYAGERtoAFNI: Program to convert BrainVoyager .vmr\n"
00138             "                           volumes to AFNI\n"
00139             "  + SurfMesh: Program to increase or decrease a mesh's density.\n"
00140             "  + SurfMask: Program to find the volume enclosed by a surface.\n"
00141             "  + SurfToSurf: Program to interpolate between non-isotopic surfaces.\n"
00142             "Modifications:\n"
00143             "  + SUMA:\n"
00144             "    o Slight modification to threshold scale.\n"
00145             "    o Added environment variable SUMA_ThresholdScalePower.\n"
00146             "    o Fixed a few kinks in the surface controller.\n"
00147             "    o Fixed ROI drawing trace on OSX.\n"
00148             "    o Added geodesic distance measurements in ROI drawing\n"
00149             "    controller.\n"
00150             "    o Suma can read surfaces specified on command line.\n"
00151             "    o Fixed bug reading AFNI generated niml files.\n"
00152             "    o Useful axis displayed with F2 key.\n"
00153             "    o Fixed bug with recursive function used to fill ROIs.\n"
00154             "    o Support for reading CRUISE surfaces in OpenDX format\n"
00155             "    o Support for reading BrainVoyager surfaces (.srf) format\n"
00156             "    o Mouse motion effect is modulated with Zoom level\n"
00157             "    o F8 toggles between orthographic and perspective viewing\n"
00158             "  + ConvertSurface:\n"
00159             "    o Option -make_consistent added to make the winding\n"
00160             "    of the mesh consistent.  \n"
00161             "  + SurfQual:\n"
00162             "    o Checks and warns about mesh's winding inconsistency.\n"
00163             "  + SurfSmooth:\n"
00164             "    o Added NN_geom, nearest neighbor interpolation option.\n"
00165             "    o Combined with -match_vol or -match_area, this geometry\n"
00166             "    smoothing mode can be used to inflate surfaces.\n"
00167             "  + SurfaceMetrics:\n"
00168             "    o Option -vol calculates the volume of the closed surface.\n"
00169             "  + SurfPatch:\n"
00170             "    o Option -vol to calculate the volume between two isotopic\n"
00171             "    surface patches.\n"
00172             "  + ROI2dataset:\n"
00173             "    o Option -pad_to_node and -pad_label to output datasets\n"
00174             "    containing full node listings.\n"
00175             "  + ConvertDset:\n"
00176             "    o Option -o_1dp was added to write 1D file data only,\n"
00177             "    without additional comments.\n"
00178             );
00179          break; 
00180          
00181       case 20040610:   /* used to be 25000 */
00182          SS = SUMA_StringAppend_va(SS, 
00183             "++ SUMA version %s (used to be 2.500)\n", SUMA_ver2date(ver)); if (StampOnly) break;
00184          SS = SUMA_StringAppend(SS, 
00185             "Modifications:\n"
00186             "  + SUMA's surface controller 'ctrl+s' has been\n"
00187             "    vastly improved. \n"
00188             "    Of note are the following features:\n"
00189             "     - interactive color mapping\n"
00190             "     - thresholding controls \n"
00191             "     - brightness modulation\n"
00192             "     - choice of colormaps\n"
00193             "     - coordinate bias (tres tres cool)\n"
00194             "     - info on current cross hair location\n"
00195             "    Use Bhelp button in the controller for detailed help.\n"
00196             "  + 3dVol2Surf can output NIML formatted datasets.\n"
00197             "    Options -first_node and -last_node can be used\n"
00198             "    to restrict the mapping to a subset of the nodes.\n"
00199             "    That is useful if your output file size exceeds 2GB.\n"
00200             "Bug Fix:\n"
00201             "  + Fixed bug on Mac OS-X that cause all viewers to close\n"
00202             "    after pressing 'Yes' on the 'Close this viewer' prompt.\n"  
00203             );
00204          break;
00205          
00206       case 20040116:    /* used to be 24800 */
00207          SS = SUMA_StringAppend_va(SS, 
00208             "++ SUMA version %s (used to be 2.480)\n", SUMA_ver2date(ver)); if (StampOnly) break;
00209          SS = SUMA_StringAppend(SS, 
00210             "New Programs:\n"
00211             "  + FS_readannot: Program to read FreeSurfer's\n"
00212             "                  annotation files.\n"
00213             "  + SurfPatch: Program to create surface patches\n"
00214             "               from a set of nodes.\n"
00215             "  + SurfQual: Program to report defects in surfaces.\n"
00216             "              For the moment, works on spherical \n"
00217             "              surfaces only.\n"
00218             "Modifications:\n"
00219             "  + Added affine transforms to ConvertSurface.\n"
00220             "  + Added datasets into SUMA's code (no interface).\n"
00221             "  + Added saving/loading of viewer settings.\n"
00222             "  + Beginning of multiple group support in SUMA.\n"
00223             "  + Redisplays of Surface Viewers due to X events\n"
00224             "    are no longer passed to the image recorder.\n" );
00225          break; 
00226          
00227       case 20040106:    /* used to be 24500 */
00228          SS = SUMA_StringAppend_va(SS, 
00229             "++ SUMA version %s (used to be 2.450)\n", SUMA_ver2date(ver)); if (StampOnly) break;
00230          SS = SUMA_StringAppend(SS, 
00231             "New Programs:\n"
00232             "  + inspec: Shows the contents of a spec file\n"
00233             "  + quickspec: Creates a minimal spec file for one\n"
00234             "               or a bunch of surfaces.\n"
00235             "  + SurfSmooth: Smoothes surface data or geometry\n"
00236             "  + SurfMeasures: Outputs various surface attributes  \n"
00237             "                  and measurements such as:\n"
00238             "                  Thickness, Area, Volume, etc.\n"
00239             "Modifications:\n"
00240             "  + Foreground color smoothing option (SUMA keyb. 8)\n"
00241             "  + No more MappingRef field in Spec files.\n"
00242             "    The field is broken up into a set of other\n"
00243             "    fields for more flexibility.\n"
00244             "  + Surface input to command-line programs is \n"
00245             "    now done via -spec files too.\n"
00246             "  + One-way communication with SUMA via niml.\n"
00247             "    Only available with SurfSmooth for the moment.\n"
00248             "  + Began, in good faith, to update the new version \n"
00249             "    information.\n"); 
00250          break;
00251       
00252       default:
00253          SS = SUMA_StringAppend_va(SS, "++ %d? No such version, fool!\n", ver);
00254          break;
00255    }
00256    
00257    /* clean SS */
00258    SS = SUMA_StringAppend (SS, NULL);
00259    /* copy s pointer and free SS */
00260    s = SS->s;
00261    SUMA_free(SS); 
00262    
00263    SUMA_RETURN(s);
00264 }

void SUMA_SetcSV Widget    w,
XtPointer    clientData,
XEvent *    event,
Boolean *    cont
 

Definition at line 1913 of file SUMA_display.c.

References SUMA_X::DPY, event, LocalHead, SUMA_SurfaceViewer::rdc, SUMA_SurfaceViewer::ResetGLStateVariables, SUMA_ANY_WIDGET2SV, SUMA_Boolean, SUMA_ENTRY, SUMA_postRedisplay(), SUMA_RDC_X_ENTER_WINDOW, SUMA_RETURNe, and SUMA_SurfaceViewer::X.

Referenced by SUMA_X_SurfaceViewer_Create().

01914 {
01915    static char FuncName[]={"SUMA_SetcSV"};
01916    SUMA_SurfaceViewer *sv;
01917    int isv;
01918    SUMA_Boolean LocalHead = NOPE;
01919    
01920    SUMA_ENTRY;
01921    
01922    if (LocalHead) fprintf(SUMA_STDERR,"%s:\n Called, w = %p\n", FuncName, w);
01923    
01924 
01925    /* When using multiple viewers, you must reset the OpenGL state variables or risk having abrupt changes with the first click */
01926    SUMA_ANY_WIDGET2SV(w, sv, isv);
01927    if (isv < 0) {
01928       fprintf (SUMA_STDERR, "Error %s: Failed in macro SUMA_ANY_WIDGET2SV.\n", FuncName);
01929       SUMA_RETURNe;
01930    }
01931 
01932    #ifdef DARWIN
01933       /* Set the focus manually.
01934       If you're not using motif widgets, window focus is not managed.
01935       You can manage it yourself with XSetInputFocus when the EnterWindowEvent is captured.
01936       You don't need to do that however if you link (for some reason) to -lXm.
01937       But on the macosx10, -lXm does not help, so we manage the foucs ourselves */
01938       /* The downside is that this call seems to be related to a crash on the mac,
01939       reported as a complaint coming from X_SetInputFocus.
01940       The crash happened when multiple viewers were open and one of them was closed
01941       AND suma was set to prompt the user with "Close this viewer?"
01942       I tried resetting the focus to a viewer that is not being closed before
01943       closing the reviewer as requested by the user but that did not help.
01944       It turns out that the problem does not occur if the prompt window does not
01945       appear on top of the viewer to be closed. More precisely, if the pointer ends
01946       up on top of the viewer just after the prompt window disapears SUMA crashes with the 
01947       message: X Error of failed request: BadMatch (invalid parameter attributes) ...
01948       The solution is simple, on DARWIN, make sure prompt window appears to the right
01949       of the viewer. If the user moves it back over the viewer AND then presses YES to close 
01950       the viewer then they will suffer the crash. June 15 04*/
01951 
01952       XSetInputFocus(sv->X->DPY, XtWindow(w), RevertToPointerRoot, CurrentTime);
01953    #endif
01954 
01955    sv->rdc = SUMA_RDC_X_ENTER_WINDOW;
01956    
01957    if (LocalHead) fprintf (SUMA_STDERR, "%s: in Surface Viewer #%d.\n", FuncName, isv);
01958    sv->ResetGLStateVariables = YUP;  
01959 
01960    SUMA_postRedisplay(w, clientData, NULL);
01961 
01962    
01963    SUMA_RETURNe;
01964 }

char* SUMA_sources_Info void   
 

Definition at line 346 of file SUMA_help.c.

References SUMA_ENTRY, SUMA_RETURN, SUMA_SS2S, and SUMA_StringAppend().

Referenced by main().

00347 {
00348    static char FuncName[]={"SUMA_sources_Info"};
00349    char *s = NULL;
00350    SUMA_STRING *SS = NULL;
00351    
00352    SUMA_ENTRY;
00353    
00354    SS = SUMA_StringAppend (NULL, NULL);
00355    
00356    SS = SUMA_StringAppend(SS,
00357    "Parts of SUMA use functions from various sources.\n"
00358    "Library sources:\n"
00359    "----------------\n"
00360    "* MarchingCubes:\n"
00361    "  The code for the heart of the program IsoSurface is a translation of:\n"
00362    "  Thomas Lewiner's C++ implementation of the algorithm in:\n"
00363    "  Efficient Implementation of Marching Cubes´ Cases with Topological Guarantees\n"
00364    "  by Thomas Lewiner, Hélio Lopes, Antônio Wilson Vieira and Geovan Tavares \n"
00365    "  in Journal of Graphics Tools. \n"
00366    "  http://www-sop.inria.fr/prisme/personnel/Thomas.Lewiner/JGT.pdf\n"
00367    "  Permission to use this translation in other programs must be obtained \n"
00368    "  from Mr. Lewiner.\n"
00369    "\n"
00370    "* QHull:\n"
00371    "                       Qhull, Copyright (c) 1993-2001 \n"
00372    "  The National Science and Technology Research Center for \n"
00373    "          Computation and Visualization of Geometric Structures \n"
00374    "                          (The Geometry Center) \n"
00375    "                         University of Minnesota \n"
00376    "                              400 Lind Hall \n"
00377    "                          207 Church Street S.E. \n"
00378    "                         Minneapolis, MN 55455  USA \n"
00379    "   \n"
00380    "                         email: qhull@geom.umn.edu \n"
00381    "   \n"
00382    "  This software includes Qhull from The Geometry Center.  Qhull is  \n"
00383    "  copyrighted as noted above.  Qhull is free software and may be obtained  \n"
00384    "  via anonymous ftp from geom.umn.edu.  It may be freely copied, modified,  \n"
00385    "  and redistributed under the following conditions: \n"
00386    "   \n"
00387    "  1. All copyright notices must remain intact in all files. \n"
00388    "   \n"
00389    "  2. A copy of this text file must be distributed along with any copies  \n"
00390    "     of Qhull that you redistribute; this includes copies that you have  \n"
00391    "     modified, or copies of programs or other software products that  \n"
00392    "     include Qhull. \n"
00393    "   \n"
00394    "  3. If you modify Qhull, you must include a notice giving the \n"
00395    "    name of the person performing the modification, the date of \n"
00396    "     modification, and the reason for such modification. \n"
00397    "   \n"
00398    "  4. When distributing modified versions of Qhull, or other software \n"
00399    "     products that include Qhull, you must provide notice that the original \n"
00400    "     source code may be obtained as noted above.\n"
00401    "  \n"
00402    "  5. There is no warranty or other guarantee of fitness for Qhull, it is \n"
00403    "     provided solely ""as is"".  Bug reports or fixes may be sent to \n"
00404    "     qhull_bug@geom.umn.edu; the authors may or may not act on them as \n"
00405    "    they desire.\n"
00406    "  \n"
00407    "\n"
00408    "* GLUT: Mark. J. Kilgard's code from the book 'Programming OpenGL for \n"
00409    "        the X Window System' (ISBN:0-201-48359-9) published by \n"
00410    "        Addison-Wesley.\n"
00411    "  NOTICE:  This source code distribution contains source code contained\n"
00412    "  in the book 'Programming OpenGL for the X Window System' (ISBN:\n"
00413    "  0-201-48359-9) published by Addison-Wesley.  The programs and\n"
00414    "  associated files contained in the distribution were developed by Mark\n"
00415    "  J. Kilgard and are Copyright 1994, 1995, 1996 by Mark J.  Kilgard\n"
00416    "  (unless otherwise noted).  The programs are not in the public domain,\n"
00417    "  but they are freely distributable without licensing fees.  These\n"
00418    "  programs are provided without guarantee or warrantee expressed or\n"
00419    "  implied.\n"
00420    "\n"
00421    "* PLY: A set of functions for reading/writing PLY polygon files by\n"
00422    "       Greg Turk.\n"
00423    "  Copyright (c) 1994 The Board of Trustees of The Leland Stanford\n"
00424    "  Junior University.  All rights reserved.   \n"
00425    "   \n"
00426    "  Permission to use, copy, modify and distribute this software and its  \n" 
00427    "  documentation for any purpose is hereby granted without fee, provided \n"  
00428    "  that the above copyright notice and this permission notice appear in  \n" 
00429    "  all copies of this software and that you do not sell the software.   \n"
00430    "    \n"
00431    "  THE SOFTWARE IS PROVIDED 'AS IS' AND WITHOUT WARRANTY OF ANY KIND,   \n"
00432    "  EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY   \n"
00433    "  WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  \n" 
00434    "  \n"
00435    "* SimpEnvelopes: A set of functions for simplifying triangular meshes by\n"
00436    "                 Jonathan Cohen (cohenj@cs.unc.edu) and Amitabh Varshney\n"
00437    "                 (varshney@cs.sunysb.edu).\n"
00438    "  Copyright 1995 The University of North Carolina at Chapel Hill.\n"
00439    "  All Rights Reserved.\n"
00440    "\n"
00441    "  Permission to use, copy, modify and distribute this software and its\n"
00442    "  documentation for educational, research and non-profit purposes,\n"
00443    "  without fee, and without a written agreement is hereby granted,\n"
00444    "  provided that the above copyright notice and the following three\n"
00445    "  paragraphs appear in all copies.\n"
00446    "\n"
00447    "  IN NO EVENT SHALL THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL BE\n"
00448    "  LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR\n"
00449    "  CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE\n"
00450    "  USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY\n"
00451    "  OF NORTH CAROLINA HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH\n"
00452    "  DAMAGES.\n"
00453    "\n"
00454    "\n"
00455    "  Permission to use, copy, modify and distribute this software and its\n"
00456    "  documentation for educational, research and non-profit purposes,\n"
00457    "  without fee, and without a written agreement is hereby granted,\n"
00458    "  provided that the above copyright notice and the following three\n"
00459    "  paragraphs appear in all copies.\n"
00460    "\n"
00461    "  THE UNIVERSITY OF NORTH CAROLINA SPECIFICALLY DISCLAIM ANY\n"
00462    "  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n"
00463    "  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE\n"
00464    "  PROVIDED HEREUNDER IS ON AN 'AS IS' BASIS, AND THE UNIVERSITY OF\n"
00465    "  NORTH CAROLINA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,\n"
00466    "  UPDATES, ENHANCEMENTS, OR MODIFICATIONS.\n"
00467    "\n"
00468    "  The authors may be contacted via:\n"
00469    "\n"
00470    "  US Mail:  Jonathan Cohen                      Amitabh Varshney\n"
00471    "            Department of Computer Science      Department of Computer Science \n"
00472    "            Sitterson Hall, CB #3175            State University of New York\n"
00473    "            University of N. Carolina           Stony Brook, NY 11794-4400, USA \n"
00474    "            Chapel Hill, NC 27599-3175\n"
00475    "        \n"
00476    "  Phone:    (919)962-1749                       Phone: (516)632-8446 \n"
00477    "        \n"
00478    "  EMail:    cohenj@cs.unc.edu                   varshney@cs.sunysb.edu\n"
00479    "\n"
00480    "Sample code sources:\n"
00481    "--------------------\n"
00482    "* 'Mastering Algorithms with C': a book by Kyle Loudon,  \n"
00483    "                                 published by O'Reilly & Associates. \n"
00484    "   This code is under copyright and cannot be included in any other book, publication,\n"
00485    "   or  educational product  without  permission  from  O'Reilly & Associates.  No\n"
00486    "   warranty is attached; we cannot take responsibility for errors or  fitness for\n"
00487    "   use.\n"
00488    "\n"
00489    "* 'C Language Algorithms for Digital Signal Processing': a book by \n"
00490    "                Bruce Kimball, Paul Embree and Bruce Kimble\n"
00491    "                published by Prentice Hall, 1991.\n"
00492    "\n"
00493    "* 'Motif Programming Manual': a book by Dan Heller and Paula Ferguson\n"  
00494    "                              published by O'Reilly & Associates, Inc. 1994\n"  
00495    "   * Written by Dan Heller and Paula Ferguson.\n"  
00496    "   * Copyright 1994, O'Reilly & Associates, Inc.\n" 
00497    "   * Permission to use, copy, and modify this program without\n" 
00498    "   * restriction is hereby granted, as long as this copyright\n" 
00499    "   * notice appears in each copy of the program source code.\n" 
00500    "   * This program is freely distributable without licensing fees and\n" 
00501    "   * is provided without guarantee or warrantee expressed or implied.\n" 
00502    "   * This program is -not- in the public domain.\n"
00503    "\n"
00504    "* 'http://astronomy.swin.edu.au/~pbourke': Paul Bourke's personal pages\n"
00505    "                                           on geometry and rendering .\n"
00506    "   Copyright notice on webpage: Copyright Paul Bourke or a third party \n"
00507    "   contributer where indicated. You may view this site and its contents \n"
00508    "   using your web browser. You may print or save an electronic copy of \n"
00509    "   parts of this web site for your own personal use. \n"
00510    "   Permission must be sought for any other use. \n"
00511    "\n" ); 
00512 
00513    SUMA_SS2S(SS,s);
00514    
00515    SUMA_RETURN (s);
00516 }

void SUMA_unSetcSV Widget    w,
XtPointer    clientData,
XEvent *    event,
Boolean *    cont
 

Definition at line 1966 of file SUMA_display.c.

References event, SUMA_ENTRY, and SUMA_RETURNe.

Referenced by SUMA_X_SurfaceViewer_Create().

01967 {
01968    static char FuncName[]={"SUMA_unSetcSV"};
01969    
01970    SUMA_ENTRY;
01971    SUMA_RETURNe;
01972 }

void SUMA_Version FILE *    Out
 

SUMA version

Definition at line 947 of file SUMA_help.c.

References SUMA_free, and SUMA_New_Additions().

Referenced by cmp_surf_usage(), and SUMA_usage().

00948 {
00949    static char FuncName[]={"SUMA_Version"};
00950    char *s = NULL;
00951    
00952    if (Out == NULL) {
00953                 Out = stdout;
00954         }
00955    s = SUMA_New_Additions (0, 0);
00956         if (s) {
00957       fprintf (Out, "\n   %s\n", s);
00958       SUMA_free(s);
00959    } else {
00960       fprintf (Out, "\n");
00961    }
00962    
00963         return;
00964 }

void SUMA_VolSurf_help FILE *    Out
 

Surface .. Volume relationships

Definition at line 969 of file SUMA_help.c.

00970 {
00971         if (Out == NULL) {
00972                 Out = stdout;
00973         }
00974     fprintf (Out, "SUMA_VolSurf_help: This function is obsolete.\n");
00975          return;
00976          fprintf (Out, "\nVolume <--> Surface jeremiad:\n");
00977          fprintf (Out, "-----------------------------\n");
00978          fprintf (Out, "\tTo transform surface node coordinates to voxel coordinates a few parameters are required.\n");
00979          fprintf (Out, "\tThose paramters vary depending on the type of surfaces used. Currently, SUMA supports \n");
00980          fprintf (Out, "\tFreeSurfer and SureFit surfaces.\n");
00981          fprintf (Out, "\nParent Volume (VolPar):\n");
00982          fprintf (Out, "\tThe surface model is created from a high-resolution anatomical scan\n"); 
00983          fprintf (Out, "\treferred to as Parent Volume (VolPar).\n"); 
00984          fprintf (Out, "\tTo align the surface with data from a particular experiment, VolPar must\n"); 
00985          fprintf (Out, "\tbe brought to alignment with the experiemt's data.\n"); 
00986          fprintf (Out, "\tFor example, VolPar is aligned with data from experiment Day1 using:\n"); 
00987          fprintf (Out, "\t3dvolreg -clipit -twopass -twodup -zpad 8 -rotcom -verbose \n"); 
00988          fprintf (Out, "\t-base SPGR_Day1 -prefix VolPar_Day1 VolMast >>& VolParAlignLog\n");
00989          fprintf (Out, "\twhere SPGR_Day1 is the high-resolution anatomical scan obtained in\n"); 
00990          fprintf (Out, "\texperiment Day1 and VolPar_Day1 is VolPar aligned to SPGR_Day1.\n"); 
00991          fprintf (Out, "\nSurface segmentation programs typically require the resolution of VolPar to\n"); 
00992          fprintf (Out, "\tbe 1x1x1mm. Such volumes, especially for FreeSurfer are quite large and\n"); 
00993          fprintf (Out, "\t3dvolreg might run out of memory. If that happens, you could resample \n"); 
00994          fprintf (Out, "\tVolPar to a lower resolution such as 1.2x1.2x1.2mm, prior to registration. \n"); 
00995          fprintf (Out, "\tNote that SPGR_Day1 must have the same resolution and number of slices as VolPar.\n"); 
00996          fprintf (Out, "\n\t+FreeSurfer Parent Volume:\n"); 
00997          fprintf (Out, "\tConstruct VolPar from the .COR images used to create the surface using:\n"); 
00998          fprintf (Out, "\tto3d -prefix CW-cSurfParent-SPGR -xSLAB 127.5L-R -ySLAB 127.5S-I -zSLAB 127.5P-A COR-???\n");
00999          fprintf (Out, "\tExample command line for a FreeSurfer suface with VolPar aligned to experiment ARzs:\n"); 
01000          fprintf (Out, "\t./suma -vp CW-cSurfParent-SPGR_Reg2_ARzsspgrax_1mm_256pad_cor_RSP_down12+orig\\\n");
01001          fprintf (Out, "\t -spec CW-FreeSurfer.SumaSpec\n");
01002          fprintf (Out, "\n\t+SureFit Parent Volume:\n"); 
01003          fprintf (Out, "\tVolPar is the anatomical 1x1x1 mm volume in the correct orientation (LPI) \n"); 
01004          fprintf (Out, "\tthat is used by SureFit to create the surface. Typically, this volume has \n"); 
01005          fprintf (Out, "\tthe .Orient string in its name unless it was in LPI orientation from the \n"); 
01006          fprintf (Out, "\tstart. Because SureFit crops the volume before segmentation, it is also \n"); 
01007          fprintf (Out, "\tnecessary to supply the .params file along with VolPar. The .params file is \n"); 
01008          fprintf (Out, "\ttypically named something like: (anything here).L.full.sMRI.params for the \n"); 
01009          fprintf (Out, "\tleft full hemisphere.  Example command line for a SureFit surface with VolPar:\n"); 
01010          fprintf (Out, "\t./suma -vp colin_short_Orient+orig. colin_short+orig.L.full.sMRI.params\\\n");
01011          fprintf (Out, "\t -s_s colin.fiducial.coord colin.topo");
01012          fprintf (Out, "\nor:\n");
01013          fprintf (Out, "\t./suma -vp CW-cSurfParent-SPGR-AX_LPI+orig. -spec CW-SureFit.SumaSpec\n");
01014          fprintf (Out, "\t\n"); 
01015          return;
01016 }
 

Powered by Plone

This site conforms to the following standards: