]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageModificationManager.cxx
DFCH: ManualPaint + ImageUndoRedo. undo 90% (with memory management but it doesn...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / imageUndoRedo / imageModificationManager.cxx
1 /*
2  * imageManagement.cxx
3  *
4  *  Created on: Oct 28, 2011
5  *      Author: caceres
6  */
7
8 #include "imageModificationManager.h"
9
10 ImageMManager::ImageMManager() {
11
12 }
13 ImageMManager::ImageMManager(ImageMManager* manager) {
14         this->m_RegionStruct = manager->GetModifiedRegion();
15 }
16 ImageMManager::~ImageMManager() {
17
18 }
19
20 void ImageMManager::CleanModifiedRegion() {
21
22         int min = std::numeric_limits<int>::min();
23         int max = std::numeric_limits<int>::max();
24         this->m_RegionStruct.minX = max;
25         this->m_RegionStruct.maxX = min;
26         this->m_RegionStruct.minY = max;
27         this->m_RegionStruct.maxY = min;
28         this->m_RegionStruct.minZ = max;
29         this->m_RegionStruct.maxZ = min;
30         this->m_ValidRegion = false;
31
32 } //DFCH
33 void ImageMManager::CalculateMinMaxRegion(const int& i, const int& j,
34                 const int& k) {
35         if (i >= 0 && j >= 0 && k >= 0) {
36                 if (i <= this->m_RegionStruct.minX) {
37                         this->m_RegionStruct.minX = i;
38                 } //fi
39                 if (i > this->m_RegionStruct.maxX) {
40                         this->m_RegionStruct.maxX = i;
41                 } //esle
42                 if (j <= this->m_RegionStruct.minY) {
43                         this->m_RegionStruct.minY = j;
44                 } //fi
45                 if (j > this->m_RegionStruct.maxY) {
46                         this->m_RegionStruct.maxY = j;
47                 } //esle
48                 if (k <= this->m_RegionStruct.minZ) {
49                         this->m_RegionStruct.minZ = k;
50                 } //fi
51                 if (k > this->m_RegionStruct.maxZ) {
52                         this->m_RegionStruct.maxZ = k;
53                 } //esle
54                 this->m_ValidRegion = true;
55         } //fi
56         else {
57                 this->m_ValidRegion = false;
58         } //esle
59 } //DFCH
60
61 void ImageMManager::AddModifiedPixel(const int& i, const int& j, const int& k) {
62         //this->m_PixelMap[i][j][k] = true;
63         this->CalculateMinMaxRegion(i, j, k);
64 } //DFCH
65
66 bool ImageMManager::ValidateRegion() {
67         return (m_ValidRegion);
68 }
69
70 RegionStructUR ImageMManager::GetModifiedRegion() {
71         return (this->m_RegionStruct);
72 }