]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/image3DDequeUR.cxx
DFCH: Manual paint changes :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / image3DDequeUR.cxx
index c5c4e221a6e15509d9402a538c9c0dc84d4e1c8c..36dd0168350133c9c83991c0e0684269833b3a1b 100644 (file)
@@ -2,7 +2,7 @@
 
 Image3DDequeUR::Image3DDequeUR() {
        this->m_globalPath = "/tmp/";
-       this->m_currentPos = -1;
+       this->m_currentUndoPos = -1;
 }
 //virtual
 Image3DDequeUR::~Image3DDequeUR() {
@@ -37,8 +37,6 @@ void Image3DDequeUR::addImageToContainer(ImageType* img,
        this->saveImageAsMHD(img, fullpath);
        //Adding to deque
        this->m_ImgDeque.push_back(imageInfo);
-       this->m_currentPos = this->m_ImgDeque.size() - 1;
-
 }
 //virtual
 void Image3DDequeUR::loadImageToPMemory(const unsigned int& index) {
@@ -66,20 +64,23 @@ void Image3DDequeUR::saveImageAsMHD(ImageType* img,
 
 //ATENCIIIOOOON TIENE QUE HACER POP PARA PONER EL REDO
 //virtual
-ImageType* Image3DDequeUR::undo() {
-       if (this->m_currentPos == -1) {
-               return NULL;
+ImageInfoUR Image3DDequeUR::undo() {
+       if (this->m_currentUndoPos == -1) {
+               ImageInfoUR retAux;
+               return (retAux);
        } //fi
-       this->m_currentPos--;
-       return (NULL);
+       ImageInfoUR imgRet = m_ImgDeque[(unsigned int) m_currentUndoPos];
+       this->m_currentUndoPos--;
+       return (imgRet);
 }
 //virtual
-ImageType* Image3DDequeUR::redo() {
-       if (this->m_currentPos ==  ( this->m_ImgDeque.size() - 1 )) {
-               return NULL;
+ImageInfoUR Image3DDequeUR::redo() {
+       if (this->m_currentUndoPos != (this->m_ImgDeque.size() - 1)) {
+               this->m_currentUndoPos++;
+               return (m_ImgDeque[(unsigned int) m_currentUndoPos]);
        } //fi
-       this->m_currentPos++;
-       return (NULL);
+       ImageInfoUR retAux;
+       return (retAux);
 }
 void Image3DDequeUR::setGlobalPath(const std::string& globalPath) {
        this->m_globalPath = globalPath;
@@ -101,3 +102,6 @@ void Image3DDequeUR::cleanContainerFromIndex(const unsigned int& index) {
 std::string Image3DDequeUR::getGlobalPath() {
        return (this->m_globalPath);
 }
+void Image3DDequeUR::setUndoPointerOnTop() {
+       this->m_currentUndoPos = this->m_ImgDeque.size() - 1;
+}