]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/baseFilterManualPaint.cpp
DFCH: Manual Paint Changes (Undo/Redo) 80% :) :)
[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 RegionStructUR* baseFilterManualPaint::GetModifiedRegion() {
113         return (this->_MRegion);
114 } //DFCH
115 void baseFilterManualPaint::CleanModifiedRegion() {
116         this->_MRegion->minX = 0;
117         this->_MRegion->maxX = 0;
118         this->_MRegion->minY = 0;
119         this->_MRegion->maxY = 0;
120         this->_MRegion->minZ = 0;
121         this->_MRegion->maxZ = 0;
122 } //DFCH
123 void baseFilterManualPaint::CalculateMinMaxRegion(const int& i, const int& j,
124                 const int& k) {
125         if (i < this->_MRegion->minX) {
126                 this->_MRegion->minX = i;
127         } else {
128                 this->_MRegion->maxX = i;
129         } //fi
130         if (j < this->_MRegion->minY) {
131                 this->_MRegion->minY = j;
132         } else {
133                 this->_MRegion->maxY = j;
134         } //fi
135         if (k < this->_MRegion->minZ) {
136                 this->_MRegion->minZ = k;
137         } else {
138                 this->_MRegion->maxZ = k;
139         } //fi
140 }
141