-ImageInfoUR* Image3DDequeUR::Redo() {
-
- ImageInfoUR* imgRet = new ImageInfoUR();
- //managing undo deque
- if (this->m_ImgUndoDeque.size() > 0) {
- if ((m_CurrentUndoPos - 1) != -1) {
- this->m_ImgUndoDeque[m_CurrentUndoPos - 1]->RemoveImageFromMemory(
- this->m_GlobalPath);
- } //fi
- this->m_CurrentUndoPos++; //ready to do undo
- if (this->m_CurrentUndoPos < ((int) this->m_ImgUndoDeque.size())) {
- this->m_ImgUndoDeque[m_CurrentUndoPos]->LoadImageMHDToMemory(
- this->m_GlobalPath);
- } //fi
- //end of undo management
- } //fi
- //managing redo
- if ((this->m_ImgRedoDeque.size() > 0) && (this->m_CurrentRedoPos != -1)) {
- if ((this->m_CurrentRedoPos + 1) < this->m_ImgRedoDeque.size()) {
- this->m_ImgRedoDeque[(m_CurrentRedoPos + 1)]->RemoveImageFromMemory(
- this->m_GlobalPath);
- } //fi
- imgRet = this->m_ImgRedoDeque[this->m_CurrentRedoPos];
- this->m_CurrentRedoPos--;
- if (this->m_CurrentRedoPos != -1) {
- this->m_ImgRedoDeque[m_CurrentRedoPos]->LoadImageMHDToMemory(
- this->m_GlobalPath);
+void Image3DDequeUR::ManageMemory( )
+{
+ int imgURDequeSize = this->m_ImgURDeque.size( );
+ for( int i = 0; i < imgURDequeSize; i++ )
+ {
+ if( this->m_ImgURDeque[ i ]->GetStatus( ) )
+ {
+ this->m_ImgURDeque[ i ]->RemoveImagesFromMemory(
+ this->m_GlobalPath );