]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageModificationManager.cxx
DFCH: ManualPaint + imageUndoRedo: Undo/Redo functionality its now working =) =)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / imageUndoRedo / imageModificationManager.cxx
1 /*!
2  * @file        imageMManager.cxx
3  * @brief       This file contains the implementation of the ImageMManager class.
4  * @author      Info-Dev
5  * @author      Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
6  * @date        2011-11-15
7  */
8
9 #include "imageModificationManager.h"
10
11 // ----------------------------------------------------------------------------------
12 ImageMManager::ImageMManager() {
13
14 }
15 // ----------------------------------------------------------------------------------
16 ImageMManager::ImageMManager(ImageMManager* manager) {
17         this->m_RegionStruct = manager->GetModifiedRegion();
18 }
19 // ----------------------------------------------------------------------------------
20 ImageMManager::~ImageMManager() {
21
22 }
23 // ----------------------------------------------------------------------------------
24 void ImageMManager::CleanModifiedRegion() {
25
26         int min = std::numeric_limits<int>::min();
27         int max = std::numeric_limits<int>::max();
28         this->m_RegionStruct.minX = max;
29         this->m_RegionStruct.maxX = min;
30         this->m_RegionStruct.minY = max;
31         this->m_RegionStruct.maxY = min;
32         this->m_RegionStruct.minZ = max;
33         this->m_RegionStruct.maxZ = min;
34         this->m_ValidRegion = false;
35 }
36 // ----------------------------------------------------------------------------------
37 void ImageMManager::CalculateMinMaxRegion(const int& i, const int& j,
38                 const int& k) {
39         if (i >= 0 && j >= 0 && k >= 0) {
40                 if (i <= this->m_RegionStruct.minX) {
41                         this->m_RegionStruct.minX = i;
42                 } //fi
43                 if (i > this->m_RegionStruct.maxX) {
44                         this->m_RegionStruct.maxX = i;
45                 } //esle
46                 if (j <= this->m_RegionStruct.minY) {
47                         this->m_RegionStruct.minY = j;
48                 } //fi
49                 if (j > this->m_RegionStruct.maxY) {
50                         this->m_RegionStruct.maxY = j;
51                 } //esle
52                 if (k <= this->m_RegionStruct.minZ) {
53                         this->m_RegionStruct.minZ = k;
54                 } //fi
55                 if (k > this->m_RegionStruct.maxZ) {
56                         this->m_RegionStruct.maxZ = k;
57                 } //esle
58                 this->m_ValidRegion = true;
59         } //fi
60         else {
61                 this->m_ValidRegion = false;
62         } //esle
63 }
64 // ----------------------------------------------------------------------------------
65 void ImageMManager::AddModifiedPixel(const int& i, const int& j, const int& k) {
66         this->CalculateMinMaxRegion(i, j, k);
67 }
68 // ----------------------------------------------------------------------------------
69 bool ImageMManager::ValidateRegion() {
70         return (m_ValidRegion);
71 }
72 // ----------------------------------------------------------------------------------
73 RegionStructUR ImageMManager::GetModifiedRegion() {
74         return (this->m_RegionStruct);
75 }
76 // ----------------------------------------------------------------------------------