+
+
+
+//------------------------------------------------------------------------------
+// CURRENT ROI INTERACTION
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::selectedItemChangedInTree() {
+ DD("selectedItemChangedInTree");
+
+ // Search which roi is selected
+ QList<QTreeWidgetItem *> l = mTree->selectedItems();
+ DD(l.size());
+ QTreeWidgetItem * w = l[0];
+ if (mMapTreeWidgetToROI.find(w) == mMapTreeWidgetToROI.end()) {
+ mCurrentROIActor = NULL;
+ mCurrentROI = NULL;
+ mGroupBoxROI->setEnabled(false);
+ return; // Search for SS (first)
+ }
+ clitk::DicomRT_ROI * roi = mMapTreeWidgetToROI[w];
+ // DD(roi->GetName());
+
+ // Get selected roi actor
+ if (mCurrentROIActor != NULL) {
+ mCurrentROIActor->SetSelected(false);
+ mCurrentROIActor->Update();
+ }
+
+ vvROIActor * actor = mStructureSetActorsList[mCurrentStructureSetIndex]->GetROIActor(roi->GetROINumber());
+ mCurrentROI = roi;
+ mCurrentROIActor = actor;
+
+ // Update GUI
+ mGroupBoxROI->setEnabled(true);
+ mROInameLabel->setText(roi->GetName().c_str());
+ mCheckBoxShow->setChecked(actor->IsVisible());
+
+ // Warning -> avoir unuseful Render here by disconnect slider
+ //
+ disconnect(mOpacitySlider, SIGNAL(valueChanged(int)),
+ this, SLOT(opacityChanged(int)));
+ mOpacitySlider->setValue((int)lrint(actor->GetOpacity()*100));
+ mOpacitySpinBox->setValue((int)lrint(actor->GetOpacity()*100));
+ connect(mOpacitySlider, SIGNAL(valueChanged(int)),
+ this, SLOT(opacityChanged(int)));
+
+ actor->SetSelected(true); // remove old selection
+ // The following must not render !!
+ DD("before update");
+ actor->Update(); // To change in UpdateSelecte
+ DD("after update");
+
+ mCurrentSlicerManager->Render();
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::visibleROIToggled(bool b) {
+ mCurrentROIActor->SetVisible(b);
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::opacityChanged(int v) {
+ mCurrentROIActor->SetOpacity((double)v/100.0);
+ mCurrentROIActor->UpdateColor();
+ mCurrentSlicerManager->Render();
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::changeColor() {
+ QColor color;
+ color.setRgbF(mCurrentROIActor->GetROI()->GetDisplayColor()[0],
+ mCurrentROIActor->GetROI()->GetDisplayColor()[1],
+ mCurrentROIActor->GetROI()->GetDisplayColor()[2]);
+ QColor c = QColorDialog::getColor(color, this, "Choose the ROI color");
+ mCurrentROIActor->GetROI()->SetDisplayColor(c.redF(), c.greenF(), c.blueF());
+ mCurrentROIActor->UpdateColor();
+
+ QTreeWidgetItem * w = mMapROIToTreeWidget[mCurrentROI];
+ QBrush brush(QColor(mCurrentROI->GetDisplayColor()[0]*255,
+ mCurrentROI->GetDisplayColor()[1]*255,
+ mCurrentROI->GetDisplayColor()[2]*255));
+ brush.setStyle(Qt::SolidPattern);
+ for(int i=0; i<w->columnCount (); i++) {
+ w->setBackground(i, brush);
+ }
+}
+//------------------------------------------------------------------------------
+
+
+
+//------------------------------------------------------------------------------
+//void vvToolStructureSetManager::getActorFromROI() {
+// mStructureSetActorsList[mCurrentStructureSetIndex]->GetROIActor(n);
+//}
+//------------------------------------------------------------------------------
+
+