]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkImageViewer2_XYZ.cxx
479db77aa95b91ff9637555f3a6d45918612f361
[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 vtkImageViewer2_XYZ::vtkImageViewer2_XYZ()
34 {
35         _vtkimageviewer2=  vtkImageViewer2::New();
36         _vtkimageviewer2->GetRenderer()->GradientBackgroundOn();
37         _vtkimageviewer2->GetRenderer()->SetBackground( 0.33 , 0.33 , 0.33 );
38         _vtkimageviewer2->GetRenderer()->SetBackground2( 0.66 , 0.66 , 0.66 );
39         _colortable = NULL;
40 }
41 //-------------------------------------------------------------------
42 vtkImageViewer2_XYZ::~vtkImageViewer2_XYZ()
43 {
44         //_vtkimageviewer2->Delete();
45 }
46 //-------------------------------------------------------------------
47 void vtkImageViewer2_XYZ::SetExtentDimension(int x1,int x2,
48                                                                                          int y1,int y2,
49                                                                                          int z1,int z2)
50 {
51         _x1 = x1;
52         _x2 = x2;
53         _y1 = y1;
54         _y2 = y2;
55         _z1 = z1;
56         _z2 = z2;
57 }
58
59 //-------------------------------------------------------------------
60 void vtkImageViewer2_XYZ::SetXSlice(int slice)
61 {
62         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
63         imageActor->SetDisplayExtent(slice, slice, _y1, _y2, _z1, _z2 );  
64 }
65
66 //-------------------------------------------------------------------
67 void vtkImageViewer2_XYZ::SetYSlice(int slice)
68 {
69         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
70         imageActor->SetDisplayExtent(_x1, _x2, slice, slice, _z1, _z2 );  
71 }
72
73 //-------------------------------------------------------------------
74 void vtkImageViewer2_XYZ::SetZSlice(int slice)
75 {
76 #if (VTK_MAJOR_VERSION >= 5)
77 //              _vtkimageviewer2->SetSlice( slice );
78         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
79         imageActor->SetDisplayExtent(_x1, _x2, _y1, _y2, slice, slice );  
80 #else
81                 _vtkimageviewer2->SetZSlice( slice );
82 #endif
83 }
84 //-------------------------------------------------------------------
85 int vtkImageViewer2_XYZ::GetXSlice()
86 {
87         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
88         return imageActor->GetDisplayExtent()[0];
89 }
90
91 //-------------------------------------------------------------------
92 int vtkImageViewer2_XYZ::GetYSlice()
93 {
94         vtkImageActor *imageActor = _vtkimageviewer2->GetImageActor();
95         return imageActor->GetDisplayExtent()[2];
96 }
97
98 //-------------------------------------------------------------------
99 int vtkImageViewer2_XYZ::GetZSlice()
100 {
101          int result;
102 #if (VTK_MAJOR_VERSION >= 5)
103                 result= _vtkimageviewer2->GetSlice( );
104 #else
105                 result= _vtkimageviewer2->GetZSlice( );
106 #endif  
107         return result;
108 }
109
110 //-------------------------------------------------------------------
111 vtkImageViewer2 *vtkImageViewer2_XYZ::GetVtkImageViewer2()
112 {
113         return _vtkimageviewer2;
114 }
115 //-------------------------------------------------------------------
116 void vtkImageViewer2_XYZ::setColorTransferFunction(vtkColorTransferFunction* colortable){
117
118         
119         vtkImageMapToWindowLevelColors* imagemaptowindowlevel = _vtkimageviewer2->GetWindowLevel();
120
121         if(colortable!=NULL&&colortable->GetSize()>0 && _colortable != colortable){
122                 _colortable = colortable;
123                 imagemaptowindowlevel->SetLookupTable(colortable);
124         }
125
126 }