]> Creatis software - crea.git/blob - src/creaVtk_MACROS.h
#3170 crea Feature New Normal - creaVTK_MACROS
[crea.git] / src / creaVtk_MACROS.h
1 /*
2 # ---------------------------------------------------------------------
3 #
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
5 #                        pour la Santé)
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 #
10 #  This software is governed by the CeCILL-B license under French law and 
11 #  abiding by the rules of distribution of free software. You can  use, 
12 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
13 #  license as circulated by CEA, CNRS and INRIA at the following URL 
14 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
15 #  or in the file LICENSE.txt.
16 #
17 #  As a counterpart to the access to the source code and  rights to copy,
18 #  modify and redistribute granted by the license, users are provided only
19 #  with a limited warranty  and the software's author,  the holder of the
20 #  economic rights,  and the successive licensors  have only  limited
21 #  liability. 
22 #
23 #  The fact that you are presently reading this means that you have had
24 #  knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------ 
26 */                                                                         
27
28
29 #ifndef __creaVtk_MACROS_h_INCLUDED__
30 #define __creaVtk_MACROS_h_INCLUDED__
31
32 #ifdef USE_VTK
33
34
35 namespace crea
36 {
37
38 #define DEF_POINTER_IMAGE_VTK_CREA(VALUE,SCALARSIZE,POINTERIMAGE,SCALARTYPE,VTKIMAGE)                                           \
39         double  VALUE                   = 0;                                                                                                                                                    \
40         int     SCALARSIZE              = VTKIMAGE->GetScalarSize();                                                                                                    \
41         char    *POINTERIMAGE   = (char*)(VTKIMAGE->GetScalarPointer());                                                                                \
42         int             SCALARTYPE              = VTKIMAGE->GetScalarType();                            
43
44
45 #define GETVALUE_VTK_CREA(VALUE,POINTER,SCALARTYPE)                                                                                                             \
46         if              (SCALARTYPE==VTK_DOUBLE)                { VALUE=(double)*((double*)POINTER);            }                                       \
47         else if (SCALARTYPE==VTK_FLOAT)                 { VALUE=(double)*((float*)POINTER);                     }                                       \
48         else if (SCALARTYPE==VTK_CHAR)                  { VALUE=(double)*((char*)POINTER);                      }                                       \
49         else if (SCALARTYPE==VTK_UNSIGNED_CHAR) { VALUE=(double)*((unsigned char*)POINTER);     }                                       \
50         else if (SCALARTYPE==VTK_INT)                   { VALUE=(double)*((int*)POINTER);                       }                                       \
51         else if (SCALARTYPE==VTK_UNSIGNED_INT)  { VALUE=(double)*((unsigned int*)POINTER);      }                                       \
52         else if (SCALARTYPE==VTK_LONG)                  { VALUE=(double)*((long*)POINTER);                      }                                       \
53         else if (SCALARTYPE==VTK_UNSIGNED_LONG) { VALUE=(double)*((unsigned long*)POINTER);     }                                       \
54         else if (SCALARTYPE==VTK_SHORT)                 { VALUE=(double)*((short*)POINTER);                     }                                       \
55         else if (SCALARTYPE==VTK_UNSIGNED_SHORT){ VALUE=(double)*((unsigned short*)POINTER);}                                   \
56         else { printf("EED GETVALUE_MANUALPAINT   error\n"); }
57
58 #define GETVALUE2_VTK_CREA(VALUE,POINTER,SCALARTYPE,INDEX)                                                                                                      \
59         if              (SCALARTYPE==VTK_DOUBLE)                { VALUE=(double)((double*)POINTER)[INDEX];                      }                       \
60         else if (SCALARTYPE==VTK_FLOAT)                 { VALUE=(double)((float*)POINTER)[INDEX];                       }                       \
61         else if (SCALARTYPE==VTK_CHAR)                  { VALUE=(double)((char*)POINTER)[INDEX];                        }                       \
62         else if (SCALARTYPE==VTK_UNSIGNED_CHAR) { VALUE=(double)((unsigned char*)POINTER)[INDEX];       }                       \
63         else if (SCALARTYPE==VTK_INT)                   { VALUE=(double)((int*)POINTER)[INDEX];                         }                       \
64         else if (SCALARTYPE==VTK_UNSIGNED_INT)  { VALUE=(double)((unsigned int*)POINTER)[INDEX];        }                       \
65         else if (SCALARTYPE==VTK_LONG)                  { VALUE=(double)((long*)POINTER)[INDEX];                        }                       \
66         else if (SCALARTYPE==VTK_UNSIGNED_LONG) { VALUE=(double)((unsigned long*)POINTER)[INDEX];       }                       \
67         else if (SCALARTYPE==VTK_SHORT)                 { VALUE=(double)((short*)POINTER)[INDEX];                       }                       \
68         else if (SCALARTYPE==VTK_UNSIGNED_SHORT){ VALUE=(double)((unsigned short*)POINTER)[INDEX];      }                       \
69         else { printf("EED GETVALUE2_MANUALPAINT   error\n"); }
70
71 #define SETVALUE2_VTK_CREA(VALUE,POINTER,SCALARTYPE,INDEX)                                                                                                      \
72         if              (SCALARTYPE==VTK_DOUBLE)                { ((double*)POINTER)[INDEX]                     = (double)VALUE;                }       \
73         else if (SCALARTYPE==VTK_FLOAT)                 { ((float*)POINTER)[INDEX]                      = (float)VALUE;                 }       \
74         else if (SCALARTYPE==VTK_CHAR)                  { ((char*)POINTER)[INDEX]                       = (char)VALUE;                  }       \
75         else if (SCALARTYPE==VTK_UNSIGNED_CHAR) { ((unsigned char*)POINTER)[INDEX]      = (unsigned char)VALUE; }       \
76         else if (SCALARTYPE==VTK_INT)                   { ((int*)POINTER)[INDEX]                        = (int)VALUE;                   }       \
77         else if (SCALARTYPE==VTK_UNSIGNED_INT)  { ((unsigned int*)POINTER)[INDEX]       = (unsigned int)VALUE;  }       \
78         else if (SCALARTYPE==VTK_LONG)                  { ((long*)POINTER)[INDEX]                       = (long)VALUE;                  }       \
79         else if (SCALARTYPE==VTK_UNSIGNED_LONG) { ((unsigned long*)POINTER)[INDEX]      = (unsigned long)VALUE; }       \
80         else if (SCALARTYPE==VTK_SHORT)                 { ((short*)POINTER)[INDEX]                      = (short)VALUE;                 }       \
81         else if (SCALARTYPE==VTK_UNSIGNED_SHORT){ ((unsigned short*)POINTER)[INDEX] = (unsigned short)VALUE;}   \
82         else { printf("EED SETVALUE2_MANUALPAINT   error\n"); }
83
84 }
85
86
87 #endif // USE_VTK
88 #endif // __creaVtk_MACROS_h_INCLUDED__
89
90
91