]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp
7e7a1fa2adcaedb0f312d10c1ffc736f80f476b2
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / ManualPaintModel.cpp
1 #include "ManualPaintModel.h"
2
3 ManualPaintModel::ManualPaintModel() {
4         _tool = 0; // 0 pencil         ,   1 fill
5         _brushfilter = new BrushFilter();
6         _fillfilter = new FillFilter();
7         _imageUndoRedo = new ImageUndoRedo();
8 }
9
10 //---------------------------------------------------------------------------
11 ManualPaintModel::~ManualPaintModel() {
12         delete _brushfilter;
13         delete _fillfilter;
14 }
15
16 //---------------------------------------------------------------------------
17 void ManualPaintModel::PaintImage(int px, int py, int pz) {
18         if (_tool == 0) {
19                 _brushfilter->SetPoint(px, py, pz);
20                 _brushfilter->Run();
21         }
22         if (_tool == 1) {
23                 _fillfilter->SetPoint(px, py, pz);
24                 _fillfilter->Run();
25         }
26 }
27
28 //---------------------------------------------------------------------------
29 void ManualPaintModel::SetTool(int tool) {
30         _tool = tool;
31 }
32
33 //---------------------------------------------------------------------------
34 void ManualPaintModel::Set2D3D(int dim2D3D) {
35         _brushfilter->Set2D3D(dim2D3D);
36         _fillfilter->Set2D3D(dim2D3D);
37 }
38
39 //---------------------------------------------------------------------------
40 void ManualPaintModel::SetImage(vtkImageData *image) {
41         _brushfilter->SetImage(image);
42         _fillfilter->SetImage(image);
43         std::cout<<"setIMAAAAAAGEEEEEE"<<std::endl;
44         _imageUndoRedo->SetImage(image);
45 }
46
47 //---------------------------------------------------------------------------
48 void ManualPaintModel::SetGrayLevel(double graylevel) {
49         _brushfilter->SetGrayLevel(graylevel);
50         _fillfilter->SetGrayLevel(graylevel);
51 }
52
53 //---------------------------------------------------------------------------
54 void ManualPaintModel::SetRangeMin(int min) {
55         _brushfilter->SetRangeMin(min);
56         _fillfilter->SetRangeMin(min);
57 }
58
59 //---------------------------------------------------------------------------
60 void ManualPaintModel::SetRangeMax(int max) {
61         _brushfilter->SetRangeMax(max);
62         _fillfilter->SetRangeMax(max);
63 }
64
65 //---------------------------------------------------------------------------
66 void ManualPaintModel::SetDirection(int direction) {
67         _brushfilter->SetDirection(direction);
68         _fillfilter->SetDirection(direction);
69 }
70
71 //---------------------------------------------------------------------------
72 void ManualPaintModel::SetBrushSize(int brushsize) {
73         _brushfilter->SetBrushSize(brushsize);
74 }
75
76 //---------------------------------------------------------------------------
77 void ManualPaintModel::SetBrushForm(int brushform) {
78         _brushfilter->SetBrushForm(brushform);
79 }
80
81 //---------------------------------------------------------------------------
82 void ManualPaintModel::SetToleranceFill(double tolerancefill) {
83         _fillfilter->SetToleranceFill(tolerancefill);
84 }
85
86 //---------------------------------------------------------------------------
87 void ManualPaintModel::SetDistanceFill(int distancefill) {
88         _fillfilter->SetDistanceFill(distancefill);
89 }
90 //---------------------------------------------------------------------------
91 void ManualPaintModel::GetScalarRange(double * range) {
92         _fillfilter->GetScalarRange(range);
93 }
94 //---------------------------------------------------------------------------
95 void ManualPaintModel::SetUndoImage() {
96         RegionStructUR* region = NULL;
97         if (_tool == 0) {
98                 region = this->_brushfilter->GetModifiedRegion();
99         }
100         if (_tool == 1) {
101                 region = this->_fillfilter->GetModifiedRegion();
102         }
103         this->_imageUndoRedo->SetUndoImage((*region));
104         this->_brushfilter->CleanModifiedRegion();
105         this->_fillfilter->CleanModifiedRegion();
106 }
107 //---------------------------------------------------------------------------
108
109 void ManualPaintModel::Undo() {
110         this->_imageUndoRedo->Undo();
111 }