]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp
feae5d5b8c3d293f5cbd829b1e35ad621f44ce46
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / ManualPaintModel.cpp
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 "ManualPaintModel.h"
27
28 ManualPaintModel::ManualPaintModel() 
29 {
30         _active         = true;
31         _tool           = 0; // 0 pencil         ,   1 fill
32         _brushfilter    = new BrushFilter();
33         _fillfilter     = new FillFilter();
34         _imageUndoRedo  = new ImageUndoRedo();
35 }
36
37 //---------------------------------------------------------------------------
38 ManualPaintModel::~ManualPaintModel() 
39 {
40         delete _brushfilter;
41         delete _fillfilter;
42 }
43
44
45 //---------------------------------------------------------------------------
46 void ManualPaintModel::SetActive( bool active )
47 {
48   _active = active;
49 }
50
51 //---------------------------------------------------------------------------
52 void ManualPaintModel::PaintImage(int px, int py, int pz) 
53 {
54   if (_active==true)
55   {
56
57         if (_tool == 0) 
58         {
59                 _brushfilter->SetPoint(px, py, pz);
60                 _brushfilter->Run();
61         } // _tool 2
62
63         if (_tool == 1) 
64         {
65                 _fillfilter->SetPoint(px, py, pz);
66                 _fillfilter->Run();
67         } // _tool 1
68   } // _active
69 }
70
71 //---------------------------------------------------------------------------
72 void ManualPaintModel::SetTool(int tool) 
73 {
74         _tool = tool;
75 }
76
77 //---------------------------------------------------------------------------
78 void ManualPaintModel::Set2D3D(int dim2D3D) 
79 {
80         _brushfilter->Set2D3D(dim2D3D);
81         _fillfilter->Set2D3D(dim2D3D);
82 }
83
84 //---------------------------------------------------------------------------
85 void ManualPaintModel::SetImages(vtkImageData *image,vtkImageData *image2) 
86 {
87         if (image!=NULL)
88         {
89                 _brushfilter -> SetImages(image,image2);
90                 _fillfilter  -> SetImages(image,image2);
91                 _imageUndoRedo->SetImage(image);
92         } else {
93                 printf("EED Warning image=NULL in ManualPaintModel::SetImage(image)\n ");
94         }
95 }
96
97 //---------------------------------------------------------------------------
98 void ManualPaintModel::SetGrayLevel(double graylevel) 
99 {
100         _brushfilter->SetGrayLevel(graylevel);
101         _fillfilter->SetGrayLevel(graylevel);
102 }
103
104 //---------------------------------------------------------------------------
105 void ManualPaintModel::SetRangeMin(int min) 
106 {
107         _brushfilter->SetRangeMin(min);
108         _fillfilter->SetRangeMin(min);
109 }
110
111 //---------------------------------------------------------------------------
112 void ManualPaintModel::SetRangeMax(int max) 
113 {
114         _brushfilter->SetRangeMax(max);
115         _fillfilter->SetRangeMax(max);
116 }
117
118 //---------------------------------------------------------------------------
119 void ManualPaintModel::SetDirection(int direction) 
120 {
121         _brushfilter->SetDirection(direction);
122         _fillfilter->SetDirection(direction);
123 }
124
125 //---------------------------------------------------------------------------
126 void ManualPaintModel::SetBrushSize(int brushsize) 
127 {
128         _brushfilter->SetBrushSize(brushsize);
129 }
130
131 //---------------------------------------------------------------------------
132 void ManualPaintModel::SetBrushForm(int brushform) 
133 {
134         _brushfilter->SetBrushForm(brushform);
135 }
136
137 //---------------------------------------------------------------------------
138 void ManualPaintModel::SetToleranceFill(double tolerancefill) 
139 {
140         _fillfilter->SetToleranceFill(tolerancefill);
141 }
142
143 //---------------------------------------------------------------------------
144 void ManualPaintModel::SetDistanceFill(int distancefill) 
145 {
146         _fillfilter->SetDistanceFill(distancefill);
147 }
148
149 //---------------------------------------------------------------------------
150 void ManualPaintModel::GetScalarRange(double * range) 
151 {
152         _fillfilter->GetScalarRange(range);
153 }
154
155 //---------------------------------------------------------------------------
156 void ManualPaintModel::SetUndoImage() 
157 {
158         ImageMManager* imMManager = NULL;
159         if (_tool == 0) 
160         {
161                 imMManager = this->_brushfilter->GetImageMManager();
162         } // if 0
163         if (_tool == 1) 
164         {
165                 imMManager = this->_fillfilter->GetImageMManager();
166         } // if 1
167         this->_imageUndoRedo->SetURImages(imMManager);
168         this->_brushfilter->CleanImageMManager();
169         this->_fillfilter->CleanImageMManager();
170 }
171 //---------------------------------------------------------------------------
172
173 void ManualPaintModel::Undo() 
174 {
175         this->_imageUndoRedo->Undo();
176 }
177
178 void ManualPaintModel::Redo() 
179 {
180         this->_imageUndoRedo->Redo();
181 }