+
+
+//------------------------------------------------------------------------------
+// CURRENT ROI INTERACTION
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::SelectedItemChangedInTree() {
+ // Search which roi is selected
+ QList<QTreeWidgetItem *> l = mTree->selectedItems();
+ if (l.size() == 0) return;
+ 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());
+ mContourCheckBoxShow->setChecked(actor->IsContourVisible());
+ mContourWidthSpinBox->setValue(actor->GetContourWidth());
+
+ // 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)));
+
+ // Temporary disable selection
+ // 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);
+ if (b) mNumberOfVisibleROI++;
+ else mNumberOfVisibleROI--;
+ //mNumberOfVisibleROI;
+ // if (mNumberOfVisibleROI == mCurrentStructureSetIndex
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::VisibleContourROIToggled(bool b) {
+ mCurrentROIActor->SetContourVisible(b);
+ mCurrentROIActor->UpdateColor();
+ mCurrentSlicerManager->Render();
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::OpacityChanged(int v) {
+ if (mCurrentROIActor == NULL) return;
+ mCurrentROIActor->SetOpacity((double)v/100.0);
+ mCurrentROIActor->UpdateColor();
+ mCurrentSlicerManager->Render();
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::AllVisibleROIToggled(bool b) {
+ DD(b);
+ DD(mIsAllVisibleEnabled);
+ DD(mNumberOfVisibleROI);
+ if (b == mIsAllVisibleEnabled) return;
+ if (b) mCheckBoxShowAll->setCheckState(Qt::Checked);
+ else mCheckBoxShowAll->setCheckState(Qt::Unchecked);
+ mIsAllVisibleEnabled = b;
+ for(int i=0; i<mCurrentStructureSetActor->GetNumberOfROIs(); i++) {
+ mCurrentStructureSetActor->GetROIList()[i]->SetVisible(b);
+ }
+ // Update current selection
+ mCheckBoxShow->setChecked(b);
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::AllVisibleContourROIToggled(bool b) {
+ /*mCurrentROIActor->SetContourVisible(b);
+ mCurrentROIActor->UpdateColor();
+ mCurrentSlicerManager->Render();
+ */
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::AllOpacityChanged(int v) {
+ /*if (mCurrentROIActor == NULL) return;
+ 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(2, brush);
+ //}
+
+ // Render
+ mCurrentSlicerManager->Render();
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::ChangeContourColor() {
+ QColor color;
+ color.setRgbF(mCurrentROIActor->GetContourColor()[0],
+ mCurrentROIActor->GetContourColor()[1],
+ mCurrentROIActor->GetContourColor()[2]);
+ QColor c = QColorDialog::getColor(color, this, "Choose the contour color");
+ mCurrentROIActor->SetContourColor(c.redF(), c.greenF(), c.blueF());
+ mCurrentROIActor->UpdateColor();
+ mCurrentSlicerManager->Render();
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolStructureSetManager::ChangeContourWidth(int n) {
+ mCurrentROIActor->SetContourWidth(n);
+ mCurrentROIActor->UpdateColor();
+ mCurrentSlicerManager->Render();
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+//void vvToolStructureSetManager::getActorFromROI() {
+// mStructureSetActorsList[mCurrentStructureSetIndex]->GetROIActor(n);
+//}
+//------------------------------------------------------------------------------
+
+