X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolStructureSetManager.cxx;h=8c008adc18803f3faacefad4a9b8dff9ad8a6c89;hb=dd96575fcb3e3af28160766907f68e34dfbf1ba2;hp=a755369a3a0208479bebf97b13ffa98db5dcac2f;hpb=7d661785535eaf41eaccce354d7addf263d0d42a;p=clitk.git diff --git a/vv/vvToolStructureSetManager.cxx b/vv/vvToolStructureSetManager.cxx index a755369..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)); @@ -86,7 +86,7 @@ vvToolStructureSetManager::vvToolStructureSetManager(vvMainWindowBase * parent, } else { MustOpenDialogWhenCreated = false; - buttonBox->setEnabled(true); + mMainButtonBox->setEnabled(true); mCurrentSlicerManager = current; mCurrentImage = mCurrentSlicerManager->GetImage(); mToolWidget->setEnabled(true); @@ -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" @@ -600,8 +612,6 @@ void vvToolStructureSetManager::ReloadCurrentROI() { //------------------------------------------------------------------------------ void vvToolStructureSetManager::CheckInputList(std::vector & l, int & index) { - DD("TODO CheckInputList"); - for(unsigned int i=0; i::iterator iter = std::find(mListOfInputs.begin(), mListOfInputs.end(), l[i]); if (iter != mListOfInputs.end()) { @@ -619,9 +629,6 @@ void vvToolStructureSetManager::CheckInputList(std::vector & l // STATIC vvToolStructureSetManager * vvToolStructureSetManager::AddImage(vvSlicerManager * m, std::string name, vvImage::Pointer image, double BG, bool m_modeBG) { - DD("static AddImage"); - DD(mListOfInputs.size()); - // If the tool is open for this vvSlicerManager, use it and return if (mListOfOpenTool[m]) { vvToolStructureSetManager * tool = mListOfOpenTool[m];