]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/imageUndoRedo/image3DDequeUR.cxx
DFCH: UndoRedo + ManualPaint - Code update. Undo beta1 working :) :) :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / imageUndoRedo / image3DDequeUR.cxx
index 10de209d1616c468e91738390a0487b77ddf5683..a497b1673450b0e029bfc3041b8c1a89704acf3f 100755 (executable)
@@ -12,13 +12,13 @@ Image3DDequeUR::~Image3DDequeUR() {
 
 }
 //virtual
-void Image3DDequeUR::AddImageToUndoContainer(ImageType* img,
+void Image3DDequeUR::AddImageToUndoContainer(VTKImageDataPointerType img,
                const RegionS& region) {
        //managing memory
        if (this->m_ImgUndoDeque.size() > 0) {
-               this->m_ImgUndoDeque.back()->RemoveImageFromMemory(this->m_GlobalPath);
-       } //fi
-         //Adding image
+        this->m_ImgUndoDeque.back()->RemoveImageFromMemory(this->m_GlobalPath);
+        } //fi
+       //Adding image
        ImageInfoUR* imageInfo = new ImageInfoUR();
        imageInfo->SetImageName(
                        this->GetImageName(this->m_ImgUndoDeque.size(), true));
@@ -31,14 +31,13 @@ void Image3DDequeUR::AddImageToUndoContainer(ImageType* img,
        this->m_ImgRedoDeque.clear();
        //Adding to deque
        this->m_ImgUndoDeque.push_back(imageInfo);
-       std::cout<<"Parceeeeeeeee: aaa " << this->m_ImgUndoDeque.size()<<std::endl;
        this->m_CurrentUndoPos = this->m_ImgUndoDeque.size() - 1;
 }
 //virtual
-void Image3DDequeUR::AddImageToRedoContainer(ImageType* img,
+void Image3DDequeUR::AddImageToRedoContainer(VTKImageDataPointerType img,
                const RegionS& region) {
        //managing memory
-       if (this->m_ImgRedoDeque.size() > 0) {
+       /*if (this->m_ImgRedoDeque.size() > 0) {
                this->m_ImgRedoDeque.back()->RemoveImageFromMemory(this->m_GlobalPath);
        } //fi
          //adding image
@@ -50,7 +49,7 @@ void Image3DDequeUR::AddImageToRedoContainer(ImageType* img,
        imageInfo->SaveImageAsMHD(this->m_GlobalPath);
        //Adding to deque
        this->m_ImgRedoDeque.push_back(imageInfo);
-       this->m_CurrentUndoPos = this->m_ImgRedoDeque.size() - 1;
+       this->m_CurrentUndoPos = this->m_ImgRedoDeque.size() - 1;*/
 }
 //virtual
 void Image3DDequeUR::CleanUndoContainerFromIndex(const int& index) {
@@ -71,19 +70,21 @@ void Image3DDequeUR::CleanRedoContainerFromIndex(const int& index) {
 
 //virtual
 ImageInfoUR* Image3DDequeUR::Undo() {
-       ImageInfoUR* imgRet = new ImageInfoUR();
+       ImageInfoUR* imgRet = NULL;
        if ((this->m_ImgUndoDeque.size() > 0) && (this->m_CurrentUndoPos != -1)) {
+               std::cout<<"Controooool"<<std::endl;
                //removing from memory
                if ((this->m_CurrentUndoPos + 1) < this->m_ImgUndoDeque.size()) {
-                       this->m_ImgUndoDeque[(m_CurrentUndoPos + 1)]->RemoveImageFromMemory(
-                                       this->m_GlobalPath);
-               } //fi
+                this->m_ImgUndoDeque[(m_CurrentUndoPos + 1)]->RemoveImageFromMemory(
+                this->m_GlobalPath);
+                } //fi
                imgRet = this->m_ImgUndoDeque[m_CurrentUndoPos];
+               std::cout << "imageName:  " << imgRet->GetImageName() << std::endl;
                this->m_CurrentUndoPos--;
                //adding to memory
                if (this->m_CurrentUndoPos != -1) {
                        //Loading image
-                       std::string fullPath = this->m_GlobalPath
+                       StringType fullPath = this->m_GlobalPath
                                        + this->m_ImgUndoDeque[m_CurrentUndoPos]->GetImageName();
                        this->m_ImgUndoDeque[m_CurrentUndoPos]->LoadImageMHDToMemory(
                                        this->m_GlobalPath);
@@ -138,15 +139,15 @@ void Image3DDequeUR::CleanContainers() {
        this->m_ImgUndoDeque.clear();
 }
 
-void Image3DDequeUR::SetGlobalPath(const std::string& globalPath) {
+void Image3DDequeUR::SetGlobalPath(const StringType& globalPath) {
        this->m_GlobalPath = globalPath;
 }
 
-std::string Image3DDequeUR::GetGlobalPath() {
+StringType Image3DDequeUR::GetGlobalPath() {
        return (this->m_GlobalPath);
 }
 
-std::string Image3DDequeUR::GetImageName(const int & pos, const bool& undo) {
+StringType Image3DDequeUR::GetImageName(const int & pos, const bool& undo) {
 //Giving a name to an image using the date and time
        if (this->m_IDImages.empty()) {
                time_t rawtime;
@@ -155,21 +156,19 @@ std::string Image3DDequeUR::GetImageName(const int & pos, const bool& undo) {
                time(&rawtime);
                timeinfo = localtime(&rawtime);
                strftime(buffer, 80, "%H%M%S_%a_%d_%b_%y_", timeinfo);
-               std::string date(buffer);
-               std::string aux(buffer);
+               StringType date(buffer);
+               StringType aux(buffer);
                this->m_IDImages = "img_" + aux;
        }
        std::stringstream ss; //create a stringstream
        ss << pos; //add number to the stream
-       std::string imgType;
+       StringType imgType;
        if (undo) {
                imgType = "undo";
-       }
-       else
-       {
+       } else {
                imgType = "redo";
        }
-       std::string imageName = this->m_IDImages + imgType + ss.str();
+       StringType imageName = this->m_IDImages + imgType + ss.str();
        imageName.append(".mhd");
        return (imageName);
 }