]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageModificationManager.cxx
DFCH: Manualpaint + imageUndoRedo Big changes, new class for the management of the...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / imageUndoRedo / imageModificationManager.cxx
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageModificationManager.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageModificationManager.cxx
new file mode 100644 (file)
index 0000000..bdbed37
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * imageManagement.cxx
+ *
+ *  Created on: Oct 28, 2011
+ *      Author: caceres
+ */
+
+#include "imageModificationManager.h"
+
+ImageMManager::ImageMManager() {
+
+}
+ImageMManager::ImageMManager(ImageMManager* manager) {
+       this->m_PixelMap = manager->GetModificationMap();
+       this->m_RegionStruct = manager->GetModifiedRegion();
+}
+ImageMManager::~ImageMManager() {
+
+}
+
+void ImageMManager::CleanModifiedRegion() {
+
+       int min = std::numeric_limits<int>::min();
+       int max = std::numeric_limits<int>::max();
+       this->m_RegionStruct.minX = max;
+       this->m_RegionStruct.maxX = min;
+       this->m_RegionStruct.minY = max;
+       this->m_RegionStruct.maxY = min;
+       this->m_RegionStruct.minZ = max;
+       this->m_RegionStruct.maxZ = min;
+       this->m_PixelMap.clear();
+
+} //DFCH
+void ImageMManager::CalculateMinMaxRegion(const int& i, const int& j,
+               const int& k) {
+       if (i <= this->m_RegionStruct.minX) {
+               this->m_RegionStruct.minX = i;
+       } //fi
+       if (i > this->m_RegionStruct.maxX) {
+               this->m_RegionStruct.maxX = i;
+       } //esle
+       if (j <= this->m_RegionStruct.minY) {
+               this->m_RegionStruct.minY = j;
+       } //fi
+       if (j > this->m_RegionStruct.maxY) {
+               this->m_RegionStruct.maxY = j;
+       } //esle
+       if (k <= this->m_RegionStruct.minZ) {
+               this->m_RegionStruct.minZ = k;
+       } //fi
+       if (k > this->m_RegionStruct.maxZ) {
+               this->m_RegionStruct.maxZ = k;
+       } //esle
+} //DFCH
+
+void ImageMManager::AddModifiedPixel(const int& i, const int& j, const int& k) {
+       this->m_PixelMap[i][j][k] = true;
+       this->CalculateMinMaxRegion(i, j, k);
+} //DFCH
+
+RegionStructUR ImageMManager::GetModifiedRegion() {
+       return (this->m_RegionStruct);
+}
+
+ImageMManager::PixelModMap ImageMManager::GetModificationMap() {
+       return (this->m_PixelMap);
+}