]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/imageModificationManager.cxx
#2989 creaMaracasVisu Bug New Normal - ManualContourModel duplicate last point...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / imageUndoRedo / imageModificationManager.cxx
index bdbed3737e5d79dd2714fb5421a5a41284d73cbd..d4ae5a64ed72164fec3c96aac82194716d11b638 100644 (file)
@@ -1,23 +1,51 @@
-/*
- * imageManagement.cxx
- *
- *  Created on: Oct 28, 2011
- *      Author: caceres
+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+#                        pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and
+#  abiding by the rules of distribution of free software. You can  use,
+#  modify and/ or redistribute the software under the terms of the CeCILL-B
+#  license as circulated by CEA, CNRS and INRIA at the following URL
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability.
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
+/*!
+ * @file       imageMManager.cxx
+ * @brief      This file contains the implementation of the ImageMManager class.
+ * @author     Info-Dev
+ * @author     Diego CACERES (diego.caceres[AT]creatis.insa-lyon.fr)
+ * @date       2011-11-15
  */
 
 #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();
@@ -28,40 +56,46 @@ void ImageMManager::CleanModifiedRegion() {
        this->m_RegionStruct.maxY = min;
        this->m_RegionStruct.minZ = max;
        this->m_RegionStruct.maxZ = min;
-       this->m_PixelMap.clear();
-
-} //DFCH
+       this->m_ValidRegion = false;
+}
+// ----------------------------------------------------------------------------------
 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;
+       if (i >= 0 && j >= 0 && k >= 0) {
+               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
+               this->m_ValidRegion = true;
        } //fi
-       if (k > this->m_RegionStruct.maxZ) {
-               this->m_RegionStruct.maxZ = k;
+       else {
+               this->m_ValidRegion = false;
        } //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
-
+}
+// ----------------------------------------------------------------------------------
+bool ImageMManager::ValidateRegion() {
+       return (m_ValidRegion);
+}
+// ----------------------------------------------------------------------------------
 RegionStructUR ImageMManager::GetModifiedRegion() {
        return (this->m_RegionStruct);
 }
-
-ImageMManager::PixelModMap ImageMManager::GetModificationMap() {
-       return (this->m_PixelMap);
-}
+// ----------------------------------------------------------------------------------