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()
{
+ disconnect(mTree, SIGNAL(itemSelectionChanged()), this, SLOT(SelectedItemChangedInTree()));
m_NumberOfTool--;
- // DD(mStructureSetsList.size());
- // DD(mStructureSetActorsList.size());
- for(uint i=0; i<mStructureSetsList.size();i++) {
- // DD(i);
- delete mStructureSetsList[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::AddRoiInTreeWidget(clitk::DicomRT_ROI * roi, QTreeWidget * ww) {
- QTreeWidgetItem * w = new QTreeWidgetItem(ww);
+ mTreeWidgetList.push_back(QSharedPointer<QTreeWidgetItem>(new QTreeWidgetItem(ww)));
+ QTreeWidgetItem * w = mTreeWidgetList.back().data();
w->setText(0, QString("%1").arg(roi->GetROINumber()));
w->setText(1, QString("%1").arg(roi->GetName().c_str()));
QBrush brush(QColor(roi->GetDisplayColor()[0]*255, roi->GetDisplayColor()[1]*255, roi->GetDisplayColor()[2]*255));
//------------------------------------------------------------------------------
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 vvToolStructureSetManager::AddStructureSet(clitk::DicomRT_StructureSet * mStructureSet) {
// Create actor for this SS
- vvStructureSetActor * mStructureSetActor = new vvStructureSetActor;
+ QSharedPointer<vvStructureSetActor> mStructureSetActor(new vvStructureSetActor);
mStructureSetActor->SetStructureSet(mStructureSet);
mStructureSetActor->SetSlicerManager(mCurrentSlicerManager);
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
index = mCurrentStructureSetIndex;
}
mCurrentStructureSet = mStructureSetsList[index];
- mCurrentStructureSetActor = mStructureSetActorsList[index];
+ mCurrentStructureSetActor = mStructureSetActorsList[index].data();
mCurrentStructureSetIndex = index;
// Open images
QString Extensions = "Images files ( *.mhd *.hdr *.his)";
for(int i=0; i<filename.size(); i++) {
// Open Image
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
- vvImageReader * mReader = new vvImageReader;
+ vvImageReader::Pointer reader = vvImageReader::New();
std::vector<std::string> filenames;
filenames.push_back(filename[i].toStdString());
- mReader->SetInputFilenames(filenames);
- mReader->Update(IMAGE);
+ reader->SetInputFilenames(filenames);
+ reader->Update(IMAGE);
QApplication::restoreOverrideCursor();
- if (mReader->GetLastError().size() != 0) {
+ if (reader->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 += reader->GetLastError().c_str();
QMessageBox::information(this,tr("Reading problem"),error);
- delete mReader;
return;
}
- vvImage::Pointer binaryImage = mReader->GetOutput();
+ vvImage::Pointer binaryImage = reader->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
index = mCurrentStructureSetIndex;
}
mCurrentStructureSet = mStructureSetsList[index];
- mCurrentStructureSetActor = mStructureSetActorsList[index];
+ mCurrentStructureSetActor = mStructureSetActorsList[index].data();
mCurrentStructureSetIndex = index;
// Check Dimension
//------------------------------------------------------------------------------
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::Pointer reader = vvImageReader::New();
+ reader->SetInputFilename(mCurrentROI->GetFilename());
+ reader->Update(IMAGE);
+ if (reader->GetLastError() != "") {
+ QMessageBox::information(mMainWindowBase, tr("Sorry, error. Could not reload"), reader->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(reader->GetOutput());
// Update visu"
mCurrentROIActor->UpdateImage();