00001 #ifndef SUMA_COLOR_INCLUDED
00002 #define SUMA_COLOR_INCLUDED
00003
00004 #define SUMA_ADD_COORD_BIAS_VECT(SO, ovr, BiasDim, BiasVect) { \
00005 int m_i, m_i3; \
00006 switch (BiasDim) { \
00007 case SW_CoordBias_X: \
00008 \
00009 for (m_i=0; m_i < ovr->N_NodeDef; ++m_i) { \
00010 m_i3 = 3*ovr->NodeDef[m_i]; \
00011 SO->NodeList[m_i3] += BiasVect[m_i]; \
00012 } \
00013 break; \
00014 case SW_CoordBias_Y: \
00015 \
00016 for (m_i=0; m_i < ovr->N_NodeDef; ++m_i) { \
00017 m_i3 = 3*ovr->NodeDef[m_i]+1; \
00018 SO->NodeList[m_i3] += BiasVect[m_i]; \
00019 } \
00020 break; \
00021 case SW_CoordBias_Z: \
00022 \
00023 for (m_i=0; m_i < ovr->N_NodeDef; ++m_i) { \
00024 m_i3 = 3*ovr->NodeDef[m_i]+2; \
00025 SO->NodeList[m_i3] += BiasVect[m_i]; \
00026 } \
00027 break; \
00028 case SW_CoordBias_N: \
00029 \
00030 for (m_i=0; m_i < ovr->N_NodeDef; ++m_i) { \
00031 m_i3 = 3*ovr->NodeDef[m_i]; \
00032 SO->NodeList[m_i3] += BiasVect[m_i] * SO->NodeNormList[m_i3]; ++m_i3; \
00033 SO->NodeList[m_i3] += BiasVect[m_i] * SO->NodeNormList[m_i3]; ++m_i3; \
00034 SO->NodeList[m_i3] += BiasVect[m_i] * SO->NodeNormList[m_i3]; \
00035 } \
00036 break; \
00037 default: \
00038 SUMA_SL_Err("This should not be.\nWhy, oh why ?"); \
00039 } \
00040 } \
00041
00042 SUMA_COLOR_MAP * SUMA_MakeColorMap (float **Fiducials, int Nfid, int Ncols, SUMA_Boolean SkipLast, char *Name);
00043 void SUMA_Free_ColorMap (SUMA_COLOR_MAP* SM);
00044 int r_ulong_size ( unsigned long l );
00045 int r_sprintf_long_to_hex (char * dest, unsigned long lsrc, int bytes, int pad);
00046 SUMA_SCALE_TO_MAP_OPT * SUMA_ScaleToMapOptInit(void);
00047 void SUMA_Free_ColorScaledVect (SUMA_COLOR_SCALED_VECT * S);
00048 SUMA_COLOR_SCALED_VECT * SUMA_Create_ColorScaledVect(int N_Node);
00049 SUMA_Boolean SUMA_ScaleToMap (float *V, int N_V, float Vmin, float Vmax, SUMA_COLOR_MAP *ColMap, SUMA_SCALE_TO_MAP_OPT *Opt, SUMA_COLOR_SCALED_VECT * SV);
00050 SUMA_COLOR_MAP * SUMA_GetStandardMap (SUMA_STANDARD_CMAP mapname);
00051 float * SUMA_PercRange (float *V, float *Vsort, int N_V, float *PercRange, float *PercRangeVal, int *iPercRange);
00052 double * SUMA_dPercRange (double *V, double *Vsort, int N_V, double *PercRange, double *PercRangeVal, int *iPercRangeVal);
00053 SUMA_COLOR_MAP* SUMA_MakeColorMap_v2 (float **Fiducials, int Nfid, int *Nint, SUMA_Boolean SkipLast, char *Name);
00054 SUMA_OVERLAYS * SUMA_CreateOverlayPointer (int N_Nodes, const char *Name, SUMA_DSET *dset, char *owner_id);
00055 SUMA_Boolean SUMA_FreeOverlayPointer (SUMA_OVERLAYS * Sover);
00056 SUMA_Boolean SUMA_Overlays_2_GLCOLAR4(SUMA_SurfaceObject *SO, SUMA_SurfaceViewer *sv, GLfloat *glcolar);
00057 SUMA_OVERLAYS * SUMA_Fetch_OverlayPointer (SUMA_OVERLAYS **Overlays, int N_Overlays, const char * Name, int * OverInd);
00058 SUMA_Boolean SUMA_Show_ColorOverlayPlanes (SUMA_OVERLAYS **Overlays, int N_Overlays, int detail);
00059 char *SUMA_ColorOverlayPlane_Info (SUMA_OVERLAYS **Overlays, int N_Overlays, int detail);
00060 SUMA_Boolean SUMA_MixOverlays (SUMA_OVERLAYS ** Overlays, int N_Overlays, int *ShowOvelays, int N_ShowOverlays, GLfloat *glcolar, int N_Node, SUMA_Boolean *isColored, SUMA_Boolean FILL);
00061 SUMA_Boolean SUMA_MixColors (SUMA_SurfaceViewer *sv);
00062 SUMA_Boolean SUMA_iRGB_to_OverlayPointer (SUMA_SurfaceObject *SO, char *Name,
00063 SUMA_OVERLAY_PLANE_DATA *sopd,
00064 int *PlaneInd, SUMA_DO *dov,
00065 int N_dov, DList *DsetList);
00066 SUMA_Boolean SUMA_CompactOverlaysOrder (SUMA_SurfaceObject *SO);
00067 void SUMA_FreeOverlayListDatum (void *OLDv);
00068 SUMA_Boolean SUMA_AddNewPlane (SUMA_SurfaceObject *SO, SUMA_OVERLAYS *Overlay, SUMA_DO *dov, int N_dov, int DupFlag);
00069 SUMA_Boolean SUMA_isOverlayOfSO (SUMA_SurfaceObject *SO, SUMA_OVERLAYS *Plane);
00070 int SUMA_GetSmallestForegroundOrder (DList *listop);
00071 int SUMA_GetLargestBackroundOrder (DList *listop);
00072 DList * SUMA_OverlaysToOrderedList (SUMA_SurfaceObject *SO, int Opt);
00073 SUMA_Boolean SUMA_ReleaseOverlay (SUMA_OVERLAYS * Overlays, SUMA_INODE *Overlays_Inode);
00074 char * SUMA_PlaneOrder_Info(SUMA_SurfaceObject *SO);
00075 void SUMA_Print_PlaneOrder (SUMA_SurfaceObject *SO, FILE *Out);
00076 SUMA_Boolean SUMA_ListOrderToPlaneOrder (DList *listop);
00077 SUMA_Boolean SUMA_MovePlaneUp (SUMA_SurfaceObject *SO, char *Name);
00078 SUMA_Boolean SUMA_MovePlaneDown (SUMA_SurfaceObject *SO, char *Name);
00079 void SUMA_LoadDsetFile (char *filename, void *data);
00080 void SUMA_LoadColorPlaneFile (char *filename, void *data);
00081 SUMA_ASSEMBLE_LIST_STRUCT * SUMA_AssembleColorPlaneList (SUMA_SurfaceObject *SO);
00082 void SUMA_RefreshDsetList (SUMA_SurfaceObject *SO);
00083 SUMA_Boolean SUMA_FlushPlaneNotInUse (char *PlaneName, SUMA_SurfaceObject *SO, SUMA_DO *dov, int N_dov);
00084 SUMA_STANDARD_CMAP SUMA_StandardMapCode (char *Name);
00085 char *SUMA_StandardMapName (SUMA_STANDARD_CMAP mapcode, int *N_col);
00086 SUMA_COLOR_MAP *SUMA_Linearize_Color_Map (SUMA_COLOR_MAP* SM, int N_lin);
00087 SUMA_COLOR_MAP *SUMA_Read_Color_Map_1D (char *Name);
00088 SUMA_Boolean SUMA_ScaleToMap_alaAFNI ( float *V, int N_V,
00089 float range, SUMA_COLOR_MAP *ColMap,
00090 SUMA_SCALE_TO_MAP_OPT *Opt,
00091 SUMA_COLOR_SCALED_VECT * SV);
00092 SUMA_AFNI_COLORS * SUMA_Get_AFNI_Default_Color_Maps ();
00093 SUMA_COLOR_MAP ** SUMA_Add_ColorMap (SUMA_COLOR_MAP *CM, SUMA_COLOR_MAP **OldCMv, int *N_maps);
00094 SUMA_RGB_NAME * SUMA_Add_Color (char *Name, float r, float g, float b, float a, SUMA_RGB_NAME *oCv, int *N_cols);
00095 char *SUMA_ColorMapVec_Info (SUMA_COLOR_MAP **CMv, int N_maps, int detail);
00096 char *SUMA_ColorVec_Info (SUMA_RGB_NAME *Cv, int N_cols);
00097 void SUMA_Show_ColorMapVec (SUMA_COLOR_MAP **CMv, int N_maps, FILE *Out, int detail);
00098 void SUMA_Show_ColorVec (SUMA_RGB_NAME *CMv, int N_maps, FILE *Out);
00099 int SUMA_Find_ColorMap ( char *Name, SUMA_COLOR_MAP **CMv, int N_maps, int sgn);
00100 int SUMA_Find_Color ( char *Name, SUMA_RGB_NAME *Cv, int N_cols);
00101 SUMA_AFNI_COLORS *SUMA_DestroyAfniColors (SUMA_AFNI_COLORS *SAC);
00102 SUMA_Boolean SUMA_Interpret_AFNIColor (char *Name, float RGB[3]);
00103 int SUMA_AFNI_Extract_Colors ( char *fname, SUMA_AFNI_COLORS *SAC );
00104 void SUMA_Flip_Color_Map (SUMA_COLOR_MAP *CM);
00105 int SUMA_ColorizePlane (SUMA_OVERLAYS *cp);
00106 SUMA_AFNI_COLORS *SUMA_Build_Color_maps(void);
00107 char *SUMA_ScaleToMapOpt_Info (SUMA_SCALE_TO_MAP_OPT *OptScl, int detail);
00108 SUMA_Boolean SUMA_ShowScaleToMapOpt(SUMA_SCALE_TO_MAP_OPT *OptScl, FILE *Out, int detail);
00109 SUMA_Boolean SUMA_SetConvexityPlaneDefaults(SUMA_SurfaceObject *SO, DList *DsetList);
00110 SUMA_COLOR_MAP *SUMA_CmapOfPlane (SUMA_OVERLAYS *Sover );
00111 SUMA_Boolean SUMA_SetSO_CoordBias(SUMA_SurfaceObject *SO, SUMA_OVERLAYS *ovr, float *NewBias, SUMA_WIDGET_INDEX_COORDBIAS BiasDim);
00112 SUMA_Boolean SUMA_SetCoordBias(SUMA_OVERLAYS *ovr, float *NewBias, SUMA_WIDGET_INDEX_COORDBIAS BiasDim);
00113 SUMA_Boolean SUMA_RemoveSO_CoordBias(SUMA_SurfaceObject *SO, SUMA_OVERLAYS *ovr);
00114 SUMA_Boolean SUMA_RemoveCoordBias(SUMA_OVERLAYS *ovr);
00115 SUMA_Boolean SUMA_TransferSO_CoordBias(SUMA_SurfaceObject *SO, SUMA_OVERLAYS *ovr, SUMA_WIDGET_INDEX_COORDBIAS BiasDim);
00116 SUMA_Boolean SUMA_TransferCoordBias(SUMA_OVERLAYS *ovr, SUMA_WIDGET_INDEX_COORDBIAS BiasDim);
00117 SUMA_Boolean SUMA_NewSurfaceGeometry(SUMA_SurfaceObject *SO);
00118 int SUMA_GetNodeOverInd (SUMA_OVERLAYS *Sover, int node);
00119 SUMA_Boolean SUMA_isDsetColumn_inferred(SUMA_DSET *dset, int icol);
00120 SUMA_Boolean SUMA_AddNodeIndexColumn(SUMA_DSET *dset, SUMA_SurfaceObject *SO);
00121 SUMA_Boolean SUMA_OKassign(SUMA_DSET *dset, SUMA_SurfaceObject *SO);
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132 #endif