]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkImageViewer2_XYZ.cxx
#3371 creaMaracasVisu Feature New Normal - Compare Images with RGB
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / vtkImageViewer2_XYZ.cxx
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26 #include "vtkImageViewer2_XYZ.h"
27 #include "vtkRenderer.h"
28 #include "vtkImageActor.h"
29 #include "vtkImageData.h"
30
31
32
33
34
35 //-------------------------------------------------------------------
36 //-------------------------------------------------------------------
37 //-------------------------------------------------------------------
38 vtkImageViewer2_XYZ::vtkImageViewer2_XYZ()
39 {
40         _colortable             = NULL;
41         _vtkimageviewer2        = vtkImageViewer2::New();
42         _vtkimageviewer2->GetRenderer()->GradientBackgroundOn();
43         _vtkimageviewer2->GetRenderer()->SetBackground( 0.33 , 0.33 , 0.33 );
44         _vtkimageviewer2->GetRenderer()->SetBackground2( 0.66 , 0.66 , 0.66 );
45 }
46
47 //-------------------------------------------------------------------
48 vtkImageViewer2_XYZ::~vtkImageViewer2_XYZ()
49 {
50         //_vtkimageviewer2->Delete();
51 }
52
53 //-------------------------------------------------------------------
54 void vtkImageViewer2_XYZ::SetExtentDimension(int x1,int x2,
55                                                                                          int y1,int y2,
56                                                                                          int z1,int z2)
57 {
58         _x1 = x1;
59         _x2 = x2;
60         _y1 = y1;
61         _y2 = y2;
62         _z1 = z1;
63         _z2 = z2;
64 }
65
66 //-------------------------------------------------------------------
67 void vtkImageViewer2_XYZ::SetXSlice(int slice)
68 {
69         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
70         imageActor->SetDisplayExtent(slice, slice, _y1, _y2, _z1, _z2 );  
71 }
72
73 //-------------------------------------------------------------------
74 void vtkImageViewer2_XYZ::SetYSlice(int slice)
75 {
76         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
77         imageActor->SetDisplayExtent(_x1, _x2, slice, slice, _z1, _z2 );  
78 }
79
80 //-------------------------------------------------------------------
81 void vtkImageViewer2_XYZ::SetZSlice(int slice)
82 {
83 #if (VTK_MAJOR_VERSION >= 5)
84 //              _vtkimageviewer2->SetSlice( slice );
85         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
86         imageActor->SetDisplayExtent(_x1, _x2, _y1, _y2, slice, slice );  
87 #else
88                 _vtkimageviewer2->SetZSlice( slice );
89 #endif
90 }
91 //-------------------------------------------------------------------
92 int vtkImageViewer2_XYZ::GetXSlice()
93 {
94         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
95         return imageActor->GetDisplayExtent()[0];
96 }
97
98 //-------------------------------------------------------------------
99 int vtkImageViewer2_XYZ::GetYSlice()
100 {
101         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
102         return imageActor->GetDisplayExtent()[2];
103 }
104
105 //-------------------------------------------------------------------
106 int vtkImageViewer2_XYZ::GetZSlice()
107 {
108          int result;
109 #if (VTK_MAJOR_VERSION >= 5)
110                 result= _vtkimageviewer2->GetSlice( );
111 #else
112                 result= _vtkimageviewer2->GetZSlice( );
113 #endif  
114         return result;
115 }
116
117 //-------------------------------------------------------------------
118 vtkImageViewer2 *vtkImageViewer2_XYZ::GetVtkImageViewer2()
119 {
120         return _vtkimageviewer2;
121 }
122
123 //-------------------------------------------------------------------
124 void vtkImageViewer2_XYZ::setColorTransferFunction(vtkColorTransferFunction* colortable)
125 {       
126         if(colortable!=NULL && colortable->GetSize()>0 && _colortable!=colortable)
127         {
128                 _colortable = colortable;
129                 vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _vtkimageviewer2->GetWindowLevel();
130                 imagemaptowindowlevel->SetLookupTable(_colortable);
131         } // if colortable
132 }
133
134 //-------------------------------------------------------------------
135 void vtkImageViewer2_XYZ::setScalarsToColors(vtkScalarsToColors* colortable, int outputformat)
136 {
137 /* outputformat      VTK-8.1.1/Common/Core/vtkSystemIncludes.h
138         VTK_LUMINANCE       1
139         VTK_LUMINANCE_ALPHA 2
140         VTK_RGB             3  OK
141         VTK_RGBA            4
142 */
143         if( _colortable!=colortable)
144         {
145                 _colortable = colortable;
146                 _vtkimageviewer2->GetWindowLevel()->SetOutputFormat( outputformat );
147                 _vtkimageviewer2->GetWindowLevel()->SetLookupTable(colortable);
148                 _vtkimageviewer2->GetWindowLevel()->SetOutputFormatToRGB();
149 //      vtkLookupTableDirectionVector2 *_LutEED = vtkLookupTableDirectionVector2::New();
150 //      _LutEED->SetVectorModeToRGBColors();
151 //      _vtkimageviewer2->GetWindowLevel()->SetLookupTable(_LutEED);
152         } // if colortable
153 }
154
155