mIsAllVisibleEnabled = false;
mNumberOfVisibleROI = 0;
mNumberOfVisibleContourROI = 0;
- mDefaultLUTColor = vtkLookupTable::New();
+ mDefaultLUTColor = vtkSmartPointer<vtkLookupTable>::New();
for(int i=0; i<mDefaultLUTColor->GetNumberOfTableValues(); i++) {
double r = (rand()/(RAND_MAX+1.0));
double v = (rand()/(RAND_MAX+1.0));
vvToolStructureSetManager::~vvToolStructureSetManager()
{
m_NumberOfTool--;
- // DD(mStructureSetsList.size());
- // DD(mStructureSetActorsList.size());
- for(uint i=0; i<mStructureSetsList.size();i++) {
- // DD(i);
- delete mStructureSetsList[i];
+
+ std::map<clitk::DicomRT_ROI::Pointer, QTreeWidgetItem *>::iterator it;
+ for (it = mMapROIToTreeWidget.begin(); it!=mMapROIToTreeWidget.end(); it++)
+ delete it->second;
+ for(unsigned int i=0; i< mStructureSetActorsList.size(); i++)
delete mStructureSetActorsList[i];
- }
+
}
//------------------------------------------------------------------------------
// 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);
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void vvToolStructureSetManager::UpdateStructureSetInTreeWidget(int index, clitk::DicomRT_StructureSet * s) {
// Insert ROI
- const std::vector<clitk::DicomRT_ROI*> & rois = s->GetListOfROI();
+ const std::vector<clitk::DicomRT_ROI::Pointer> & rois = s->GetListOfROI();
for(unsigned int i=0; i<rois.size(); i++) {
if (mMapROIToTreeWidget.find(rois[i]) == mMapROIToTreeWidget.end())
AddRoiInTreeWidget(rois[i], mTree); // replace mTree with ss if several SS
int index;
if (mCurrentStructureSet == NULL) {
if (mStructureSetsList.size() == 0) { // Create a default SS
- clitk::DicomRT_StructureSet * mStructureSet = new clitk::DicomRT_StructureSet;
+ clitk::DicomRT_StructureSet::Pointer mStructureSet = clitk::DicomRT_StructureSet::New();
index = AddStructureSet(mStructureSet);
}
else { // Get first SS
for(int i=0; i<filename.size(); i++) {
// Open Image
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
- vvImageReader * mReader = new vvImageReader;
+ vvImageReader mReader;
std::vector<std::string> filenames;
filenames.push_back(filename[i].toStdString());
- mReader->SetInputFilenames(filenames);
- mReader->Update(IMAGE);
+ mReader.SetInputFilenames(filenames);
+ mReader.Update(IMAGE);
QApplication::restoreOverrideCursor();
- if (mReader->GetLastError().size() != 0) {
+ if (mReader.GetLastError().size() != 0) {
std::cerr << "Error while reading " << filename[i].toStdString() << std::endl;
QString error = "Cannot open file \n";
- error += mReader->GetLastError().c_str();
+ error += mReader.GetLastError().c_str();
QMessageBox::information(this,tr("Reading problem"),error);
- delete mReader;
return;
}
- vvImage::Pointer binaryImage = mReader->GetOutput();
+ vvImage::Pointer binaryImage = mReader.GetOutput();
AddImage(binaryImage, filename[i].toStdString(), mBackgroundValueSpinBox->value());
- delete mReader;
+ mOpenedBinaryImage.push_back(binaryImage);
}
UpdateImage();
}
int index;
if (mCurrentStructureSet == NULL) {
if (mStructureSetsList.size() == 0) { // Create a default SS
- clitk::DicomRT_StructureSet * mStructureSet = new clitk::DicomRT_StructureSet;
+ clitk::DicomRT_StructureSet::Pointer mStructureSet = clitk::DicomRT_StructureSet::New();
index = AddStructureSet(mStructureSet);
}
else { // Get first SS
//------------------------------------------------------------------------------
void vvToolStructureSetManager::closeEvent(QCloseEvent *event)
{
- // DD("vvToolStructureSetManager::closeEvent()");
std::vector<vvSlicerManager*>::iterator iter = std::find(mListOfInputs.begin(), mListOfInputs.end(), mCurrentSlicerManager);
if (iter != mListOfInputs.end()) mListOfInputs.erase(iter);
if (mCurrentSlicerManager != 0) mCurrentSlicerManager->Render();
if (mCurrentStructureSetActor) {
for(int i=0; i<mCurrentStructureSetActor->GetNumberOfROIs(); i++) {
- // DD(i);
mCurrentStructureSetActor->GetROIList()[i]->SetVisible(false);
mCurrentStructureSetActor->GetROIList()[i]->SetContourVisible(false);
delete mCurrentStructureSetActor->GetROIList()[i];
//------------------------------------------------------------------------------
void vvToolStructureSetManager::ReloadCurrentROI() {
// Reload image
- vvImageReader * mReader = new vvImageReader;
- mReader->SetInputFilename(mCurrentROI->GetFilename());
- mReader->Update(IMAGE);
- if (mReader->GetLastError() != "") {
- QMessageBox::information(mMainWindowBase, tr("Sorry, error. Could not reload"), mReader->GetLastError().c_str());
+ vvImageReader mReader;
+ mReader.SetInputFilename(mCurrentROI->GetFilename());
+ mReader.Update(IMAGE);
+ if (mReader.GetLastError() != "") {
+ 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());
+ mCurrentROI->SetImage(mReader.GetOutput());
// Update visu"
mCurrentROIActor->UpdateImage();