X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolStructureSetManager.cxx;h=8c008adc18803f3faacefad4a9b8dff9ad8a6c89;hb=dd96575fcb3e3af28160766907f68e34dfbf1ba2;hp=52a4f66820d075ffa4581b46cd8be1e52bab6443;hpb=6d4c696c5443af116efb9bb5b7a202bdf0104281;p=clitk.git diff --git a/vv/vvToolStructureSetManager.cxx b/vv/vvToolStructureSetManager.cxx index 52a4f66..8c008ad 100644 --- a/vv/vvToolStructureSetManager.cxx +++ b/vv/vvToolStructureSetManager.cxx @@ -70,7 +70,7 @@ vvToolStructureSetManager::vvToolStructureSetManager(vvMainWindowBase * parent, mNumberOfVisibleROI = 0; mNumberOfVisibleContourROI = 0; mDefaultLUTColor = vtkLookupTable::New(); - for(unsigned int i=0; iGetNumberOfTableValues(); i++) { + for(int i=0; iGetNumberOfTableValues(); i++) { double r = (rand()/(RAND_MAX+1.0)); double v = (rand()/(RAND_MAX+1.0)); double b = (rand()/(RAND_MAX+1.0)); @@ -100,6 +100,19 @@ vvToolStructureSetManager::vvToolStructureSetManager(vvMainWindowBase * parent, vvToolStructureSetManager::~vvToolStructureSetManager() { m_NumberOfTool--; + mStructureSetActorsList.clear(); + mMapROIToTreeWidget.clear(); + + /* + for(uint i=0; iGetListOfROI().size();i++) { + DD(i); + DD(mStructureSetsList[0]->GetROI(i)->GetImage()->GetReferenceCount()); + // mStructureSetsList[0]->GetROI(i)->GetImage()->Delete(); + } + */ + + mStructureSetsList.clear(); + mOpenedBinaryImage.clear(); } //------------------------------------------------------------------------------ @@ -108,10 +121,10 @@ vvToolStructureSetManager::~vvToolStructureSetManager() // STATIC void vvToolStructureSetManager::Initialize() { SetToolName("ROIManager"); - SetToolMenuName("Display ROI"); + SetToolMenuName("Display ROI (binary image)"); SetToolIconFilename(":/common/icons/tool-roi.png"); - SetToolTip("Display ROI from label image."); - SetToolExperimental(true); + SetToolTip("Display ROI from a binary image."); + SetToolExperimental(false); } //------------------------------------------------------------------------------ @@ -201,7 +214,9 @@ void vvToolStructureSetManager::UpdateStructureSetInTreeWidget(int index, clitk: //------------------------------------------------------------------------------ int vvToolStructureSetManager::AddStructureSet(clitk::DicomRT_StructureSet * mStructureSet) { // Create actor for this SS - vvStructureSetActor * mStructureSetActor = new vvStructureSetActor; + + vvStructureSetActor * mStructureSetActor = new vvStructureSetActor; + mStructureSetActor->SetStructureSet(mStructureSet); mStructureSetActor->SetSlicerManager(mCurrentSlicerManager); // Insert in lists and get index @@ -260,6 +275,8 @@ void vvToolStructureSetManager::OpenBinaryImage() } vvImage::Pointer binaryImage = mReader->GetOutput(); AddImage(binaryImage, filename[i].toStdString(), mBackgroundValueSpinBox->value()); + mOpenedBinaryImage.push_back(binaryImage); + delete mReader; } UpdateImage(); } @@ -275,7 +292,7 @@ void vvToolStructureSetManager::UpdateImage() for(unsigned int i=0; iGetROIActor(mLoadedROIIndex[i])->Update(); } - for(int i=0; iNumberOfSlicers(); i++) { + for(int i=0; iGetNumberOfSlicers(); i++) { mCurrentSlicerManager->GetSlicer(i)->Render(); } } @@ -283,7 +300,8 @@ void vvToolStructureSetManager::UpdateImage() //------------------------------------------------------------------------------ -void vvToolStructureSetManager::AddImage(vvImage::Pointer binaryImage, std::string filename, double BG, bool m_modeBG) +void vvToolStructureSetManager::AddImage(vvImage * binaryImage, std::string filename, + double BG, bool m_modeBG) { // Check current structure set int index; @@ -359,7 +377,6 @@ bool vvToolStructureSetManager::close() //------------------------------------------------------------------------------ void vvToolStructureSetManager::closeEvent(QCloseEvent *event) { - // DD("vvToolStructureSetManager::closeEvent()"); std::vector::iterator iter = std::find(mListOfInputs.begin(), mListOfInputs.end(), mCurrentSlicerManager); if (iter != mListOfInputs.end()) mListOfInputs.erase(iter); @@ -371,7 +388,6 @@ void vvToolStructureSetManager::closeEvent(QCloseEvent *event) if (mCurrentSlicerManager != 0) mCurrentSlicerManager->Render(); if (mCurrentStructureSetActor) { for(int i=0; iGetNumberOfROIs(); i++) { - // DD(i); mCurrentStructureSetActor->GetROIList()[i]->SetVisible(false); mCurrentStructureSetActor->GetROIList()[i]->SetContourVisible(false); delete mCurrentStructureSetActor->GetROIList()[i]; @@ -583,11 +599,7 @@ void vvToolStructureSetManager::ReloadCurrentROI() { QMessageBox::information(mMainWindowBase, tr("Sorry, error. Could not reload"), mReader->GetLastError().c_str()); return; } - // delete mCurrentROI->GetImage(); - // DD(mCurrentROI->GetImage()->GetFirstVTKImageData()->GetDataReleased()); - // DD(mCurrentROI->GetImage()->GetFirstVTKImageData()->GetReferenceCount()); mCurrentROI->GetImage()->GetFirstVTKImageData()->ReleaseData(); - // DD(mCurrentROI->GetImage()->GetFirstVTKImageData()->GetDataReleased()); mCurrentROI->SetImage(mReader->GetOutput()); // Update visu"