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_xColBar.h

Go to the documentation of this file.
00001 #ifndef SUMA_XCOLBAR_INCLUDED
00002 #define SUMA_XCOLBAR_INCLUDED
00003 
00004 #define SUMA_CMAP_WIDTH    20
00005 #define SUMA_CMAP_HEIGHT   300
00006 #define SUMA_SCALE_WIDTH 70
00007 #define SUMA_SCALE_HEIGHT  SUMA_CMAP_HEIGHT   
00008 #define SUMA_CMAP_ORIGIN   0.0,  0.0,     0.0
00009 #define SUMA_CMAP_TOPLEFT  SUMA_CMAP_WIDTH, SUMA_CMAP_HEIGHT,   0.0
00010 #define SUMA_CMAP_VIEW_FROM (2 * SUMA_CMAP_HEIGHT)
00011 #define SUMA_CMAP_FOV_INITIAL 28.07249 /*!< 2 * atan((double)SUMA_CMAP_HEIGHT/2.0/(double)SUMA_CMAP_VIEW_FROM) * 180 * SUMA_PI , see labbook page 3 */
00012 #if 0 /* the old one */
00013    #define SUMA_RANGE_STRING(m_nel, m_i, m_str_min, m_str_max, m_range){  \
00014       int m_loc[2];  \
00015       if (SUMA_GetColRange(m_nel, m_i, m_range, m_loc)) {   \
00016          sprintf(m_str_min, "%.2f %d", m_range[0], m_loc[0]);   \
00017          sprintf(m_str_max, "%.2f %d", m_range[1], m_loc[1]);   \
00018       } else { \
00019          sprintf(m_str_min, "??? ???");   \
00020          sprintf(m_str_max, "??? ???");   \
00021       }  \
00022    }
00023 #else
00024    #define SUMA_RANGE_STRING(m_dset, m_i, m_str_min, m_str_max, m_str_minloc, m_str_maxloc, m_range){  \
00025       int m_loc[2];  \
00026       if (SUMA_GetDsetColRange(m_dset, m_i, m_range, m_loc)) {   \
00027          SUMA_SurfaceObject *m_SOp = NULL;   \
00028          char *m_idcode_str = NULL; \
00029          int m_N_Node=-1;  \
00030          /* number of nodes of parent surface */   \
00031          m_idcode_str = NI_get_attribute(m_dset->ngr, "MeshParent_idcode"); /* obsolete */\
00032          if (!m_idcode_str) m_idcode_str = NI_get_attribute(m_dset->ngr, "Parent_ID"); \
00033          if (m_idcode_str) { \
00034             m_SOp = SUMA_findSOp_inDOv(m_idcode_str, SUMAg_DOv, SUMAg_N_DOv);  \
00035             if (m_SOp) {  \
00036                m_N_Node = m_SOp->N_Node;   \
00037             }  \
00038          }  \
00039          sprintf(m_str_min, "%s", MV_format_fval2(m_range[0], 7));   \
00040          sprintf(m_str_max, "%s", MV_format_fval2(m_range[1], 7));   \
00041          sprintf(m_str_minloc, "%d", SUMA_GetNodeIndex_FromNodeRow(m_dset, m_loc[0], m_N_Node));   \
00042          sprintf(m_str_maxloc, "%d", SUMA_GetNodeIndex_FromNodeRow(m_dset, m_loc[1], m_N_Node));   \
00043       } else { \
00044          sprintf(m_str_min, "???");   \
00045          sprintf(m_str_max, "???");   \
00046          sprintf(m_str_minloc, "???");   \
00047          sprintf(m_str_maxloc, "???");   \
00048       }  \
00049    }
00050 #endif
00051 
00052 #define SUMA_XHAIR_STRING(v, str)   {\
00053    /* sprintf(str,"%5s , %5s , %5s", \
00054                MV_format_fval(v[0]), MV_format_fval(v[1]), MV_format_fval(v[2]));   */\
00055    /*
00056    This one below does not work, all three three strings have the same value
00057    sprintf(str,"%s, %s, %s", \
00058       MV_format_fval2(v[0], 7),  MV_format_fval2(v[1], 7),  MV_format_fval2(v[2], 7)); */\
00059    sprintf(str,"%s", MV_format_fval2(v[0], 7)); \
00060    sprintf(str,"%s, %s", str, MV_format_fval2(v[1], 7)); \
00061    sprintf(str,"%s, %s", str, MV_format_fval2(v[2], 7)); \
00062 }
00063 
00064 #define SUMA_INSERT_CELL_STRING(TF, i, j, strng)   {  \
00065    if (TF->str_value) { \
00066       SUMA_STRING_REPLACE(TF->str_value[j*TF->Ni+i], strng);\
00067    }  \
00068    XtVaSetValues (TF->cells[j*TF->Ni+i], XmNvalue, strng, NULL);  \
00069 }
00070 
00071 #define SUMA_INSERT_CELL_VALUE(TF, i, j, val)   {  \
00072    if (TF->type == SUMA_int || TF->type == SUMA_float) { \
00073       TF->cell_modified = j*TF->Ni+i;  \
00074       TF->num_value[TF->cell_modified] = val;  \
00075       SUMA_TableF_SetString(TF);\
00076       TF->cell_modified = -1; \
00077    }  else {   \
00078       SUMA_SL_Err("Macro for numerical tables only"); \
00079    }  \
00080 }
00081 
00082 /*!
00083    \brief retrieves the cell index using the cell's widget
00084 */
00085 #define SUMA_WHICH_CELL(TF, w, Found)  {  \
00086    int m_nmx, m_i=0; \
00087    m_nmx = TF->Ni*TF->Nj;  \
00088    Found = -1; \
00089    while (m_i<m_nmx) {  \
00090       if (TF->cells[m_i] == w) { Found = m_i; m_i = m_nmx; }      \
00091       ++m_i;   \
00092    }  \
00093 }
00094 
00095 
00096 /* scale size gets messed up, see afni_widg.c and afni.h's
00097 FIX_SCALE_SIZE*/
00098 #define SUMA_FORCE_SCALE_HEIGHT(SO) {\
00099   XtVaSetValues(  SO->SurfCont->thr_sc, XmNheight,  SUMA_CMAP_HEIGHT, NULL ) ;   \
00100 }
00101 
00102 void SUMA_ShowMeTheChildren(Widget w);
00103 XImage *SUMA_cmap_to_XImage (Widget wid, SUMA_COLOR_MAP *cm);
00104 void SUMA_DrawCmap(SUMA_COLOR_MAP *Cmap);
00105 void SUMA_cmap_wid_display(SUMA_SurfaceObject *SO);
00106 void SUMA_cmap_context_Init(SUMA_SurfaceObject *SO);
00107 void SUMA_cmap_wid_graphicsInit (Widget w, XtPointer clientData, XtPointer call);
00108 Boolean SUMA_cmap_wid_handleRedisplay(XtPointer clientData);
00109 void SUMA_cmap_wid_postRedisplay(Widget w, XtPointer clientData, XtPointer call);
00110 void SUMA_cmap_wid_expose(Widget w, XtPointer clientData, XtPointer call);
00111 void SUMA_cmap_wid_resize(Widget w, XtPointer clientData, XtPointer call);
00112 void SUMA_cmap_wid_input(Widget w, XtPointer clientData, XtPointer call);
00113 unsigned char *SUMA_read_ppm(char *fname, int *width, int *height, int verb);
00114 void SUMA_CreateCmapWidgets(Widget parent, SUMA_SurfaceObject *SO);
00115 void SUMA_cb_ColMap_Switch(Widget w, XtPointer clientData, XtPointer call);
00116 void SUMA_cb_SwitchBrightness(Widget w, XtPointer clientData, XtPointer call);
00117 void SUMA_cb_SwitchThreshold(Widget w, XtPointer clientData, XtPointer call);
00118 void SUMA_cb_SwitchIntensity(Widget w, XtPointer clientData, XtPointer call);
00119 SUMA_MenuItem *SUMA_FreeMenuVector(SUMA_MenuItem *menu, int Nels);
00120 SUMA_MenuItem *SUMA_FormSwitchColMenuVector(SUMA_SurfaceObject *SO, int what, int *N_items);
00121 void SUMA_set_cmap_options(SUMA_SurfaceObject *SO, SUMA_Boolean NewDset, SUMA_Boolean NewMap);
00122 void SUMA_cb_SwitchCmap(Widget w, XtPointer client_data, XtPointer call);
00123 SUMA_MenuItem *SUMA_FormSwitchCmapMenuVector(SUMA_COLOR_MAP **CMv, int N_maps);
00124 void SUMA_cb_SelectSwitchCmap (Widget w, XtPointer client_data, XtPointer call);
00125 void SUMA_cb_CloseSwitchCmap (Widget w, XtPointer client_data, XtPointer call);
00126 SUMA_Boolean SUMA_CmapSelectList(SUMA_SurfaceObject *SO, int type, int bringup);
00127 SUMA_Boolean SUMA_SwitchColPlaneCmap(SUMA_SurfaceObject *SO, SUMA_COLOR_MAP *CM);
00128 SUMA_Boolean SUMA_SetCmapMenuChoice(SUMA_SurfaceObject *SO, char *str);
00129 void SUMA_SetScaleRange(SUMA_SurfaceObject *SO, float range[2]);  
00130 void SUMA_cb_set_threshold_label(Widget w, XtPointer clientData, XtPointer call);
00131 void SUMA_optmenu_EV( Widget w , XtPointer cd ,
00132                       XEvent *ev , Boolean *continue_to_dispatch );
00133 void SUMA_cb_SetCoordBias(Widget widget, XtPointer client_data, XtPointer call_data);
00134 SUMA_Boolean SUMA_RedisplayAllShowing(char *SO_idcode_str, SUMA_SurfaceViewer *SVv, int N_SVv);
00135 void SUMA_CreateTable(  Widget parent,
00136                         int Ni, int Nj, 
00137                         char **row_tit, char **col_tit, 
00138                         char **row_hint, char **col_hint,
00139                         char **row_help, char **col_help, 
00140                         int *cwidth, SUMA_Boolean editable, SUMA_VARTYPE type, 
00141                         void (*NewValueCallback)(void * data), void *cb_data,
00142                         void (*TitLabelEVHandler)(Widget w , XtPointer cd , XEvent *ev , Boolean *ctd), void *TitLabelEVHandlerData,
00143                         void (*CellEVHandler)(Widget w , XtPointer cd , XEvent *ev , Boolean *ctd), void *CellEVHandlerData,
00144                         SUMA_TABLE_FIELD *TF);
00145 void SUMA_TableF_cb_label_Modify (Widget w, XtPointer client_data, XtPointer call_data);
00146 void SUMA_TableF_SetString (SUMA_TABLE_FIELD * AF);
00147 void SUMA_TableF_cb_label_change (Widget w, XtPointer client_data, XtPointer call_data);
00148 void SUMA_leave_TableField( Widget w , XtPointer client_data ,
00149                            XEvent * ev , Boolean * continue_to_dispatch );
00150 void SUMA_SetRangeValue (void *data);
00151 SUMA_TABLE_FIELD * SUMA_AllocTableField(void);
00152 SUMA_TABLE_FIELD * SUMA_FreeTableField(SUMA_TABLE_FIELD *TF);
00153 SUMA_CELL_VARIETY SUMA_cellvariety (SUMA_TABLE_FIELD *TF, int n);
00154 SUMA_Boolean SUMA_InitRangeTable(SUMA_SurfaceObject *SO, int what);
00155 void SUMA_CreateXhairWidgets(Widget parent, SUMA_SurfaceObject *SO);
00156 SUMA_Boolean SUMA_UpdateXhairField(SUMA_SurfaceViewer *sv);
00157 void SUMA_XhairInput (void* data);
00158 SUMA_Boolean SUMA_UpdateNodeField(SUMA_SurfaceObject *SO);
00159 void SUMA_NodeInput (void* data);
00160 void  SUMA_SetCellEditMode(SUMA_TABLE_FIELD *TF, int i, int j, int Mode);
00161 void SUMA_TriInput (void* data);
00162 SUMA_Boolean SUMA_UpdateTriField(SUMA_SurfaceObject *SO);
00163 SUMA_Boolean SUMA_UpdateNodeLblField(SUMA_SurfaceObject *SO);
00164 SUMA_Boolean SUMA_UpdateNodeValField(SUMA_SurfaceObject *SO);
00165 SUMA_Boolean SUMA_UpdateNodeNodeField(SUMA_SurfaceObject *SO);
00166 SUMA_Boolean SUMA_Init_SurfCont_CrossHair(SUMA_SurfaceObject *SO);
00167 void SUMA_cb_AbsThresh_tb_toggled (Widget w, XtPointer data, XtPointer client_data);
00168 void SUMA_cb_SymIrange_tb_toggled (Widget w, XtPointer data, XtPointer client_data);
00169 void SUMA_cb_ShowZero_tb_toggled (Widget w, XtPointer data, XtPointer client_data);
00170 void SUMA_cb_SetCmapMode(Widget widget, XtPointer client_data, XtPointer call_data);
00171 void SUMA_cb_Cmap_Load(Widget w, XtPointer data, XtPointer client_data);
00172 void SUMA_LoadCmapFile (char *filename, void *data);
00173 void SUMA_CreateUpdatableCmapMenu(SUMA_SurfaceObject *SO);
00174 int SUMA_ThreshVal2ScalePos(SUMA_SurfaceObject *SO, float *val);
00175 void SUMA_SetScaleThr(void *data);
00176 
00177 /* the help strings */
00178 
00179 /* Surface Properties Block */
00180 #define  SUMA_SurfContHelp_more  \
00181    "Opens a dialog with detailed\n" \
00182    "information about the surface\n"\
00183    "object."
00184 
00185 #define  SUMA_SurfContHelp_RenderMode  \
00186    "Choose the rendering mode for this surface.\n" \
00187    "   Viewer: Surface's rendering mode is set\n"  \
00188    "           by the viewer's setting which can\n"   \
00189    "           be changed with the 'p' option.\n"  \
00190    "   Fill:   Shaded rendering mode.\n"  \
00191    "   Line:   Mesh rendering mode.\n"    \
00192    "   Points: Points rendering mode."   
00193 
00194 #define SUMA_SurfContHelp_Dsets  \
00195    "Show/Hide Dataset (previously Color Plane) controllers"
00196 
00197 #define SUMA_SurfContHelp_Xhr \
00198    "Crosshair coordinates on\n"   \
00199    "this controller's surface.\n"   \
00200    "Entering new coordinates \n"   \
00201    "makes the crosshair jump\n"   \
00202    "to that location (like 'ctrl+j').\n"   \
00203    "Use 'alt+l' to center the\n"   \
00204    "cross hair in your viewer."    
00205 
00206 #define SUMA_SurfContHelp_Node   \
00207    "Node index of node in\n"   \
00208    "focus on this controller's\n"   \
00209    "surface. Nodes in focus are\n"   \
00210    "highlighted by the blue sphere\n"   \
00211    "in the crosshair.\n"   \
00212    "Entering a new node's index\n"   \
00213    "will put that node in focus\n"   \
00214    "and send the crosshair to its\n"   \
00215    "location (like 'j').\n"   \
00216    "Use 'alt+l' to center the\n"   \
00217    "cross hair in your viewer."
00218          
00219 #define SUMA_SurfContHelp_Tri   \
00220    "1- Triangle (faceset) index of\n"   \
00221    "triangle in focus on this \n"   \
00222    "on this controller's surface.\n"   \
00223    "Triangle in focus is highlighted\n"   \
00224    "in gray. Entering a new triangle's\n"   \
00225    "index will set a new triangle in\n"   \
00226    "focus (like 'J').\n"   \
00227    "2- Nodes forming triangle."
00228 
00229 #define SUMA_SurfContHelp_NodeValTblr0 \
00230    "Data Values at node in focus"
00231 
00232 #define SUMA_SurfContHelp_NodeValTblc0 \
00233    "Data Values at node in focus"
00234 
00235 #define SUMA_SurfContHelp_NodeValTblc1 \
00236    "Intensity (I) value"
00237 
00238 #define SUMA_SurfContHelp_NodeValTblc2 \
00239    "Threshold (T) value"
00240 
00241 #define SUMA_SurfContHelp_NodeValTblc3 \
00242    "Brightness modulation (B) value"
00243 
00244 #define SUMA_SurfContHelp_NodeLabelTblr0 \
00245    "Color from the selected Dset\n" \
00246    "at the node in focus.\n"   \
00247    "For the moment, only color\n"   \
00248    "is displayed. The plan is\n"   \
00249    "to display labels of various\n"   \
00250    "sorts here."
00251 
00252 #define SUMA_SurfContHelp_DsetLblTblr0 \
00253   "Label of Dset." 
00254   
00255 #define SUMA_SurfContHelp_DsetLblTblr1 \
00256    "Parent surface of Dset."
00257 
00258 #define SUMA_SurfContHelp_DsetOrd \
00259    "Order of Dset's colorplane.\n"  \
00260    "Dset with highest number is \n"   \
00261    "on top of the stack. Separate \n"  \
00262    "stacks exits for foreground (fg:)\n" \
00263    "and background planes (bg:)."
00264 
00265 #define SUMA_SurfContHelp_DsetOpa \
00266    "Opacity of Dset's colorplane.\n"  \
00267    "Opaque planes have an opacity\n"   \
00268    "of 1, transparent planes have\n"  \
00269    "an opacity of 0. \n"   \
00270    "Opacities are used when mixing\n" \
00271    "planes within the same group  \n"  \
00272    "foreground (fg:) or background(bg:).\n"   \
00273    "\n"  \
00274    "Opacity values are not applied\n"  \
00275    "to the first plane in a group.\n"   \
00276    "Consequently, if you have just\n"   \
00277    "one plane to work with, opacity \n"   \
00278    "value is meaningless.\n"  \
00279    "\n"  \
00280    "Color mixing can be done in two \n"  \
00281    "ways, use F7 to toggle between \n" \
00282    "mixing modes.\n"
00283    
00284 #define SUMA_SurfContHelp_DsetDim  \
00285    "Dimming factor to apply to colormap\n" \
00286    "before mapping the intensity (I) data.\n" \
00287    "The colormap, if displayed on the right,\n"   \
00288    "is not visibly affected by Dim but the\n"   \
00289    "colors mapped onto the surface are.\n"   \
00290    "For RGB Dsets (.col files), Dim is\n" \
00291    "applied to the RGB colors directly"
00292    
00293 #define SUMA_SurfContHelp_DsetView  \
00294    "View (ON)/Hide Dset node colors."
00295 
00296 #define SUMA_SurfContHelp_DsetViewOne  \
00297    "If ON, view only the selected\n"\
00298    "Dset's colors. No mixing of colors in the\n"\
00299    "foreground stack is done.\n"   \
00300    "\n"  \
00301    "If OFF, then mix the color planes\n"  \
00302    "in the foreground stack.\n"  \
00303    "\n"  \
00304    "This option makes it easy to view \n" \
00305    "one Dset's colors at a time without\n"   \
00306    "having to worry about color mixing,\n"   \
00307    "opacity, and stacking order.\n" \
00308    "\n"  \
00309    "Needless to say, options such as\n" \
00310    "'Ord:' and 'Opa:' in this panel are \n" \
00311    "of little use when this button is ON."
00312 
00313 #define SUMA_SurfContHelp_DsetSwitch   \
00314    "Switch between datasets."
00315 
00316 #define SUMA_SurfContHelp_SetThreshTblr0   \
00317    "Set the threshold."
00318 
00319 #define SUMA_SurfContHelp_DsetLoad  \
00320    "Load a new dataset (Dset).\n"   \
00321    "Datasets can be of 2 formats:\n"   \
00322    "1- NIML (.niml.dset)\n"   \
00323    "     This format is internal \n"   \
00324    "     to AFNI/SUMA. \n"   \
00325    "2- 1D   (.1D.dset)\n"   \
00326    "     Simple ASCII tabular format\n"   \
00327    "     supporting numerical values\n"   \
00328    "     only.\n"   \
00329    "     Each row i contains Nj data\n"   \
00330    "     values per node.\n"   \
00331    "     Since this format has no header\n"   \
00332    "     associated with it, it makes\n"   \
00333    "     some assumption about the data\n"   \
00334    "     in the columns. \n"   \
00335    "   You can choose from 3 options:\n"   \
00336    "     (see below for nomenclature)\n"   \
00337    "   - Each column has Ni values where\n"   \
00338    "     Ni = N_Node \n"   \
00339    "     In this case, it is assumed that\n"   \
00340    "     row i has values for node i on\n"   \
00341    "     the surface.\n"   \
00342    "   - If Ni is not equal to N_Node then\n"   \
00343    "     SUMA will check to see if column 0\n"   \
00344    "     (Col_0) is all integers with values\n"   \
00345    "     v satisfying:  0 <= v < N_Node .\n"   \
00346    "     If that is the case then column 0\n"   \
00347    "     contains the node indices. The values\n"   \
00348    "     in row j of Dset are for the node\n"   \
00349    "     indexed Col_0[j].\n"   \
00350    "     In the Sample 1D Dset shown below\n"   \
00351    "     assuming N_Node > 58, SUMA\n"   \
00352    "     will consider the 1st column to \n"   \
00353    "     contain node indices. In that case\n"   \
00354    "     the values -12.1 and 0.9 are for \n"   \
00355    "     node 58 on the surface.\n"   \
00356    "   - Lastly, if Col_0 fails the node index\n"   \
00357    "     test, then SUMA considers the data\n"   \
00358    "     in row i to be associated with node i.\n"   \
00359    "\n"   \
00360    "   If you're confused, try creating some\n"   \
00361    "   toy datasets like the one below and \n"   \
00362    "   load them into SUMA.\n"   \
00363    "\n"   \
00364    "   Sample 1D Dset (Call it pickle.1D.dset):\n"   \
00365    "     25    22.7     1.2   \n"   \
00366    "     58    -12.1    0.9   \n"   \
00367    "\n"   \
00368    "   Nomenclature and conventions:\n"   \
00369    "     - N_Node is the number of nodes\n"   \
00370    "       forming the surface.\n"   \
00371    "     - Indexing always starts at 0.\n"   \
00372    "       In the example, value v at \n"   \
00373    "       row 0, column 1 is v = 22.7 .\n"   \
00374    "     - A Dset has Ni rows and Nj columns.\n"   \
00375    "       In other terms, Ni is the number\n"   \
00376    "       of values per node and Nj is the\n"   \
00377    "       number of nodes for which data are\n"   \
00378    "       specified in Dset.\n"   \
00379    "       Ni = 2, Nj = 3 in the example."
00380    
00381 #define SUMA_SurfContHelp_DsetLoadCol  \
00382    "Load a new color plane.\n"   \
00383    "(Same as ctrl+c option)."
00384 
00385 #define SUMA_SurfContHelp_SelInt \
00386    "Select Intensity (I) column.\n"   \
00387    "Use this menu to select\n"   \
00388    "which column in the\n"   \
00389    "dataset (Dset) should be \n"   \
00390    "used for an Intensity (I)\n"   \
00391    "measure.\n"   \
00392    "\n"   \
00393    "I values are the ones that \n"   \
00394    "get colored by the colormap.\n" \
00395    "\n"   \
00396    "No coloring is done if the\n"   \
00397    "'v' button on the right is\n"   \
00398    "turned off.\n"   \
00399    "\n"   \
00400    "I value for the selected node\n"   \
00401    "is shown in the 'Val' table\n"   \
00402    "of the 'Xhair Info' section \n"   \
00403    "on the left." 
00404 
00405 #define SUMA_SurfContHelp_SelThr \
00406    "Select Threshold (T) column.\n"   \
00407    "Use this menu to select\n"   \
00408    "which column in the\n"   \
00409    "dataset (Dset) should be \n"   \
00410    "used for a Threshold (T)\n"   \
00411    "measure.\n"   \
00412    "\n"   \
00413    "T values are the ones used \n"   \
00414    "to determine if a node \n"   \
00415    "gets colored based on its\n"   \
00416    "I value.\n"   \
00417    "\n"   \
00418    "A node n is not colored if:\n"   \
00419    "    T(n)   < Tscale   \n"   \
00420    "or if '|T|' option below\n"   \
00421    "is turned ON.\n"   \
00422    "  | T(n) | < Tscale .\n"  \
00423    "\n"   \
00424    "Thresholding is not applied\n"   \
00425    "when the 'v' button on the \n"   \
00426    "right is turned off.\n"   \
00427    "\n"   \
00428    "T(n) for the selected node n\n"   \
00429    "is shown in the 'Val'\n"   \
00430    "table of the 'Xhair Info'\n"   \
00431    "section on the left."   
00432 
00433 #define SUMA_SurfContHelp_SelBrt \
00434    "Select Brightness (B) column.\n"   \
00435    "Use this menu to select\n"   \
00436    "which column in the\n"   \
00437    "dataset (Dset) should be \n"   \
00438    "used for color Brightness (B)\n"   \
00439    "modulation.\n"   \
00440    "\n"   \
00441    "B values are the ones used \n"   \
00442    "to control the brightness of\n"   \
00443    "a node's color.\n"  \
00444    "\n"   \
00445    "Brightness modulation is\n"   \
00446    "controlled by ranges in the\n"   \
00447    "'B' cells of the table below.\n"   \
00448    "\n"   \
00449    "Brightness modulation is not\n"   \
00450    "applied when the 'v' button on \n"   \
00451    "the right is turned off.\n"  \
00452    "\n"   \
00453    "B(n) for the selected node n\n"   \
00454    "is shown in the 'Val'\n"   \
00455    "table of the 'Xhair Info'\n"   \
00456    "section on the left."
00457 
00458 #define SUMA_SurfContHelp_SelIntTgl \
00459    "View (ON)/Hide Dset node colors."
00460 
00461 #define SUMA_SurfContHelp_SelThrTgl \
00462    "Apply (ON)/Ignore thresholding"
00463    
00464 #define SUMA_SurfContHelp_SelBrtTgl \
00465    "View (ON)/Ignore brightness modulation"
00466 
00467 #define SUMA_SurfContHelp_SetRngTbl_r0 \
00468    "Used for setting the clipping ranges."   \
00469    "Clipping is only done for \n"   \
00470    "color mapping. Actual data \n"   \
00471    "values do not change."
00472 
00473 #define SUMA_SurfContHelp_SetRngTbl_r1 \
00474    "Intensity clipping range.\n" \
00475    "Values in the intensity data \n"   \
00476    "that are less than Min are colored\n"   \
00477    "by the first (bottom) color of the \n"   \
00478    "colormap. \n"   \
00479    "Values larger than Max are mapped \n"   \
00480    "to the top color.\n"   \
00481    "\n"   \
00482    "Left click locks ranges\n"   \
00483    "from automatic resetting.\n"   \
00484    "Locked range is applied to\n"   \
00485    "current Dset only.\n"   \
00486    "\n"   \
00487    "Right click resets values\n"   \
00488    "to full range in data."  
00489 
00490 #define SUMA_SurfContHelp_SetRngTbl_r2 \
00491    "Brightness modulation clipping range.\n"   \
00492    "Values in the brightness data are\n"   \
00493    "clipped to the Min to Max range before\n"   \
00494    "calculating their modulation factor\n"   \
00495    "(see next table row).\n"   \
00496    "\n"   \
00497    "Left click locks ranges\n"   \
00498    "from automatic resetting.\n"   \
00499    "Locked range is applied to\n"   \
00500    "current Dset only.\n"  \
00501    "\n"   \
00502    "Right click resets values\n"   \
00503    "to full range in data."   
00504 
00505 #define SUMA_SurfContHelp_SetRngTbl_r3 \
00506    "Brightness modulation factor range.\n"   \
00507    "Brightness modulation values, after\n"   \
00508    "clipping per the values in the row above,\n"   \
00509    "are scaled to fit the range specified\n"   \
00510    "here."
00511    
00512 #define SUMA_SurfContHelp_SetRngTbl_r4 \
00513    "Coordinate bias range.\n"   \
00514    "Coordinates of nodes that are mapped\n"   \
00515    "to the colormap can have a bias added\n"   \
00516    "to their coordinates. \n"   \
00517    "\n"   \
00518    "Nodes mapped to the first color of \n"   \
00519    "the map receive the minimum bias and\n"   \
00520    "nodes mapped to the last color receive\n"   \
00521    "the maximum bias. \n"   \
00522    "\n"   \
00523    "Nodes not colored, because of \n"   \
00524    "thresholding for example, will \n"   \
00525    "have no bias applied."
00526 
00527 #define SUMA_SurfContHelp_SetRngTbl_c1 \
00528    "Minimum clip value.\n" \
00529    "Clips values (v) in the Dset\n" \
00530    "less than Minimum (min):\n"  \
00531    "  if v < min then v = min "
00532 
00533 #define SUMA_SurfContHelp_SetRngTbl_c2 \
00534    "Maximum clip value.\n" \
00535    "Clips values (v) in the Dset\n" \
00536    "larger than Maximum (max):\n"  \
00537    "  if v > max then v = max "
00538 
00539 #define SUMA_SurfContHelp_Col \
00540    "Switch between color mapping modes.\n"   \
00541    "Int: Interpolate linearly between\n"   \
00542    "     colors in colormap\n"   \
00543    "NN : Use the nearest color in the\n"   \
00544    "     colormap. \n"   \
00545    "Dir: Use intensity values as indices\n"   \
00546    "     into the colormap.\n"   \
00547    "     In Dir mode, the intensity \n"   \
00548    "     clipping range is of no use."
00549 
00550 #define SUMA_SurfContHelp_Bias \
00551    "Coordinate bias direction.\n"   \
00552    "   -: No bias thank you\n"   \
00553    "   x: X coord bias\n"   \
00554    "   y: Y coord bias\n"   \
00555    "   z: Z coord bias\n"   \
00556    "   n: bias along node's normal\n"  \
00557    "\n"   \
00558    "See more info in Bhelp for\n"   \
00559    "'C' table entry above.\n" \
00560    "\n"   \
00561    "This option will produce\n"   \
00562    "'Extremely Cool'[1] images.\n"   \
00563    "[1] Chuck E. Weiss (Slow River/\n" \
00564    "    Rykodisc) 1999."
00565 
00566 #define SUMA_SurfContHelp_Cmp \
00567    "Switch between available color maps.\n"   \
00568    "If the number of colormaps is too large\n"   \
00569    "for the menu button, right click over\n"   \
00570    "the 'Cmp' label and a chooser with a \n"   \
00571    "slider bar will appear.\n"   \
00572    "\n"   \
00573    "More help is available via\n"   \
00574    "ctrl+h while mouse is over the\n"   \
00575    "colormap."   
00576    
00577 #define SUMA_SurfContHelp_CmpNew \
00578    "Load new colormap.\n"   \
00579    "Loaded map will replace a\n"   \
00580    "pre-existing one with the\n"   \
00581    "same name.\n"   \
00582    "\n"   \
00583    "See ScaleToMap -help for \n"   \
00584    "details on the format of \n"   \
00585    "colormap file. The formats\n"   \
00586    "are described in the section\n"   \
00587    "for the option -cmapfile.\n"   \
00588    "\n"   \
00589    "A sample colormap would be:\n"   \
00590    " 0 0 1\n"   \
00591    " 1 1 1\n"   \
00592    " 1 0 0\n"   \
00593    "saved into a cmap file called\n"   \
00594    "cmap_test.1D.cmap"
00595 
00596 #define  SUMA_SurfContHelp_AbsThr   \
00597    "Toggle Absolute thresholding.\n"   \
00598    "OFF: Mask node color for\n"   \
00599    "     nodes that have:  \n"   \
00600    "     T(n) < Tscale\n"   \
00601    "ON:  Mask node color for\n"   \
00602    "     nodes that have:\n"   \
00603    "     | T(n) | < Tscale\n"   \
00604    "where:\n"   \
00605    "Tscale is the value set by\n"   \
00606    "       the threshold scale.\n"   \
00607    "T(n) is the node value in the \n"   \
00608    "     selected threshold column (T).\n"   \
00609    "     this value is seen in the \n"   \
00610    "     second cell of the 'Value'\n"   \
00611    "     table on the left side."  
00612 
00613 #define  SUMA_SurfContHelp_Isym   \
00614    "Toggle Intensity range symmetry\n"   \
00615    "about 0. \n"   \
00616    "ON : Intensity clipping range\n"   \
00617    "     is forced to go from \n"   \
00618    "     -val to val\n"   \
00619    "     This allows you to mimic\n"   \
00620    "     AFNI's ranging mode.\n"   \
00621    "OFF: Intensity clipping range\n"   \
00622    "     can be set to your liking."
00623 
00624 #define  SUMA_SurfContHelp_Shw0   \
00625    "Toggle color masking of nodes \n"   \
00626    "with intensity = 0 \n"   \
00627    "ON : 0 intensities are mapped\n"   \
00628    "     to the colormap as any\n"   \
00629    "     other values.\n"   \
00630    "OFF: 0 intensities are masked,\n"   \
00631    "     a la AFNI"
00632 
00633 #define  SUMA_SurfContHelp_RangeTbl_c0 \
00634    "Full range of values in Dset."
00635            
00636 #define SUMA_SurfContHelp_RangeTbl_c1 \
00637    "Minimum value in Dset column."
00638 
00639 #define SUMA_SurfContHelp_RangeTbl_c2 \
00640    "Node index at minimum.\n"   \
00641    "Right click in cell to\n"   \
00642    "have crosshair jump to\n"   \
00643    "node's index.\n"   \
00644    "Same as 'ctrl+j' or\n"   \
00645    "an entry in the 'Node' cell\n"   \
00646    "under Xhair Info block."  
00647 
00648 #define SUMA_SurfContHelp_RangeTbl_c3 \
00649    "Maximum value in Dset column."
00650 
00651 #define SUMA_SurfContHelp_RangeTbl_c4  \
00652    "Node index at maximum.\n" \
00653    "Right click in cell to\n" \
00654    "have crosshair jump to\n" \
00655    "node's index.\n"   \
00656    "Same as 'ctrl+j' or\n"   \
00657    "an entry in the 'Node' cell\n"   \
00658    "under Xhair Info block."
00659 
00660 #define SUMA_SurfContHelp_RangeTbl_r1  \
00661    "Range of values in intensity (I) column."
00662 
00663 #define SUMA_SurfContHelp_RangeTbl_r2  \
00664    "Range of values in threshold (T) column."
00665 
00666 #define SUMA_SurfContHelp_RangeTbl_r3  \
00667    "Range of values in brightness (B) column."
00668    
00669 #endif
 

Powered by Plone

This site conforms to the following standards: