]> Creatis software - bbtk.git/blob - packages/vtk/src/bbtkStaticLecture.cxx
c1a9adc362076ddef5a3d5377d11aa8d342c034e
[bbtk.git] / packages / vtk / src / bbtkStaticLecture.cxx
1 #include "bbtkStaticLecture.h"
2
3
4         void bbtkStaticLecture::setPixelValue(int i, int j, int k, vtkImageData* img, double value)
5         {
6                 //double rta;
7                 int scalar_type = img->GetScalarType();
8                 int* ext = img->GetExtent();
9                 if (i < ext[0])
10                         return;
11                 if (i > ext[1])
12                         return;
13
14                 if (j < ext[2])
15                         return;
16                 if (j > ext[3])
17                         return;
18
19                 if (k < ext[4])
20                         return;
21                 if (k > ext[5])
22                         return;
23
24                 switch (scalar_type)
25                 {
26                         case VTK_CHAR:
27                                 char * ap2;
28                                 ap2 = (char *) img->GetScalarPointer(i,j,k);
29                                 *ap2 = (char) value;
30                         break;
31                         case VTK_UNSIGNED_CHAR:
32                                 unsigned char * ap3;
33                                 ap3 = (unsigned char *) img->GetScalarPointer(i,j,k);
34                                 *ap3 = (unsigned char) value;
35                         break;
36                         case VTK_SHORT:
37                                 short * ap4;
38                                 ap4 = (short *) img->GetScalarPointer(i,j,k);
39                                 *ap4 = (short) value;
40                         break;
41                         case VTK_UNSIGNED_SHORT:
42                                 unsigned short * ap5;
43                                 ap5 = (unsigned short *) img->GetScalarPointer(i,j,k);
44                                 *ap5 = (unsigned short) value;
45                         break;
46                         case VTK_INT:
47                                 int * ap6;
48                                 ap6 = (int *) img->GetScalarPointer(i,j,k);
49                                 *ap6 = (int) value;
50                         break;
51                         case VTK_UNSIGNED_INT:
52                                 unsigned int * ap7;
53                                 ap7 = (unsigned int *) img->GetScalarPointer(i,j,k);
54                                 *ap7 = (unsigned int) value;
55                         break;
56                         case VTK_LONG:
57                                 long * ap8;
58                                 ap8 = (long *) img->GetScalarPointer(i,j,k);
59                                 *ap8 = (long) value;
60                         break;
61                         case VTK_UNSIGNED_LONG:
62                                 unsigned long * ap9;
63                                 ap9 = (unsigned long *) img->GetScalarPointer(i,j,k);
64                                 *ap9 = (unsigned long) value;
65                         break;
66                         case VTK_FLOAT:
67                                 float * ap10;
68                                 ap10 = (float *) img->GetScalarPointer(i,j,k);
69                                 *ap10 = (float) value;
70                         break;
71                         case VTK_DOUBLE:
72                                 double * ap11;
73                                 ap11 = (double *) img->GetScalarPointer(i,j,k);
74                                 *ap11 = (double) value;
75                         break;
76                 }
77         }
78         double bbtkStaticLecture::getPixelValue(int i, int j, int k, vtkImageData* img)
79         {
80                 double rta;
81                 int scalar_type = img->GetScalarType();
82                 int* ext = img->GetExtent();
83                 if (i < ext[0])
84                         i=ext[0];
85                 if (i > ext[1])
86                         i=ext[1];
87
88                 if (j < ext[2])
89                         j=ext[2];
90                 if (j > ext[3])
91                         j=ext[3];
92
93                 if (k < ext[4])
94                         k=ext[4];
95                 if (k > ext[5])
96                         k=ext[5];
97
98                 switch (scalar_type)
99                 {
100                         case VTK_CHAR:
101                                 char * ap2;
102                                 ap2 = (char *) img->GetScalarPointer(i,j,k);
103                                 rta = (double) *ap2;
104                         break;
105                         case VTK_UNSIGNED_CHAR:
106                                 unsigned char * ap3;
107                                 ap3 = (unsigned char *) img->GetScalarPointer(i,j,k);
108                                 rta = (double) *ap3;
109                         break;
110                         case VTK_SHORT:
111                                 short * ap4;
112                                 ap4 = (short *) img->GetScalarPointer(i,j,k);
113                                 rta = (double) *ap4;
114                         break;
115                         case VTK_UNSIGNED_SHORT:
116                                 unsigned short * ap5;
117                                 ap5 = (unsigned short *) img->GetScalarPointer(i,j,k);
118                                 rta = (double) *ap5;
119                         break;
120                         case VTK_INT:
121                                 int * ap6;
122                                 ap6 = (int *) img->GetScalarPointer(i,j,k);
123                                 rta = (double) *ap6;
124                         break;
125                         case VTK_UNSIGNED_INT:
126                                 unsigned int * ap7;
127                                 ap7 = (unsigned int *) img->GetScalarPointer(i,j,k);
128                                 rta = (double) *ap7;
129                         break;
130                         case VTK_LONG:
131                                 long * ap8;
132                                 ap8 = (long *) img->GetScalarPointer(i,j,k);
133                                 rta = (double) *ap8;
134                         break;
135                         case VTK_UNSIGNED_LONG:
136                                 unsigned long * ap9;
137                                 ap9 = (unsigned long *) img->GetScalarPointer(i,j,k);
138                                 rta = (double) *ap9;
139                         break;
140                         case VTK_FLOAT:
141                                 float * ap10;
142                                 ap10 = (float *) img->GetScalarPointer(i,j,k);
143                                 rta = (double) *ap10;
144                         break;
145                         case VTK_DOUBLE:
146                                 double * ap11;
147                                 ap11 = (double *) img->GetScalarPointer(i,j,k);
148                                 rta = (double) *ap11;
149                         break;
150                 }
151                 return rta;
152         }