]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/baseFilterManualPaint.cpp
DFCH: UndoRedo + ManualPaint - Code update. Undo beta1 working :) :) :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / baseFilterManualPaint.cpp
1 #include "baseFilterManualPaint.h"
2
3 baseFilterManualPaint::baseFilterManualPaint() {
4         _MRegion = new RegionStructUR();
5         CleanModifiedRegion();
6         _graylevel = 0.0;
7         _2D3D = 1; // 0 2D             ,   1 true 3D
8         _direction = 0; // 1 XZ             ,   0 YZ            ,   2 XY
9         _minX = 0;
10         _minY = 0;
11         _minZ = 0;
12         _maxX = 0;
13         _maxY = 0;
14         _maxZ = 0;
15
16         _pMinX = 0;
17         _pMinY = 0;
18         _pMinZ = 0;
19         _pMaxX = 0;
20         _pMaxY = 0;
21         _pMaxZ = 0;
22 }
23
24 //---------------------------------------------------------------------------
25 baseFilterManualPaint::~baseFilterManualPaint() // virtual
26 {
27 }
28
29 //---------------------------------------------------------------------------
30 void baseFilterManualPaint::Run() // virtual
31 {
32 }
33
34 //---------------------------------------------------------------------------
35 void baseFilterManualPaint::SetGrayLevel(double graylevel) {
36         _graylevel = graylevel;
37 }
38
39 //---------------------------------------------------------------------------
40 void baseFilterManualPaint::Set2D3D(int dim2D3D) {
41         _2D3D = dim2D3D;
42 }
43
44 //---------------------------------------------------------------------------
45 void baseFilterManualPaint::SetDirection(int direction) {
46         _direction = direction;
47 }
48
49 //---------------------------------------------------------------------------
50 void baseFilterManualPaint::SetPoint(int px, int py, int pz) {
51         _px = px;
52         _py = py;
53         _pz = pz;
54 }
55
56 //---------------------------------------------------------------------------
57 void baseFilterManualPaint::SetImage(vtkImageData *image) {
58         int ext[6];
59         _image = image;
60         _image->GetWholeExtent(ext);
61         _minX = 0;
62         _minY = 0;
63         _minZ = 0;
64         _maxX = ext[1] - ext[0];
65         _maxY = ext[3] - ext[2];
66         _maxZ = ext[5] - ext[4];
67 }
68
69 //---------------------------------------------------------------------------
70 void baseFilterManualPaint::ResetGeneralMinMax() {
71         _pMinX = 10000;
72         _pMinY = 10000;
73         _pMinZ = 10000;
74         _pMaxX = -10000;
75         _pMaxY = -10000;
76         _pMaxZ = -10000;
77 }
78
79 //---------------------------------------------------------------------------
80 void baseFilterManualPaint::SetGeneralMinMax(int minX, int maxX, int minY,
81                 int maxY, int minZ, int maxZ) {
82         if (_pMinX > minX) {
83                 _pMinX = minX;
84         }
85
86         if (_pMinY > minY) {
87                 _pMinY = minY;
88         }
89
90         if (_pMinZ > minZ) {
91                 _pMinZ = minZ;
92         }
93
94         if (_pMaxX < maxX) {
95                 _pMaxX = maxX;
96         }
97
98         if (_pMaxY < maxY) {
99                 _pMaxY = maxY;
100         }
101
102         if (_pMaxZ < maxZ) {
103                 _pMaxZ = maxZ;
104         }
105
106 }
107
108 //---------------------------------------------------------------------------
109 void baseFilterManualPaint::GetScalarRange(double * range) {
110         range = this->_image->GetScalarRange();
111 }
112
113 RegionStructUR* baseFilterManualPaint::GetModifiedRegion() {
114         return (this->_MRegion);
115 } //DFCH
116 void baseFilterManualPaint::CleanModifiedRegion() {
117         int min = std::numeric_limits<int>::min();
118         int max = std::numeric_limits<int>::max();
119         this->_MRegion->minX = max;
120         this->_MRegion->maxX = min;
121         this->_MRegion->minY = max;
122         this->_MRegion->maxY = min;
123         this->_MRegion->minZ = max;
124         this->_MRegion->maxZ = min;
125 } //DFCH
126 void baseFilterManualPaint::CalculateMinMaxRegion(const int& i, const int& j,
127                 const int& k) {
128         if (i <= this->_MRegion->minX) {
129                 this->_MRegion->minX = i;
130         } //fi
131         if (i > this->_MRegion->maxX) {
132                 this->_MRegion->maxX = i;
133         } //esle
134         if (j <= this->_MRegion->minY) {
135                 this->_MRegion->minY = j;
136         } //fi
137         if (j > this->_MRegion->maxY) {
138                 this->_MRegion->maxY = j;
139         } //esle
140         if (k <= this->_MRegion->minZ) {
141                 this->_MRegion->minZ = k;
142         } //fi
143         if (k > this->_MRegion->maxZ) {
144                 this->_MRegion->maxZ = k;
145         } //esle
146 }
147