Quellcode durchsuchen

ENH: ctkVTKSliceView - Add highlightedBoxColor / setHighlightedBoxColor

Allows to dynamically change the color of the highlightedBoxes
Jean-Christophe Fillion-Robin vor 14 Jahren
Ursprung
Commit
db3563934e

+ 2 - 0
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKSliceViewTest1.cpp

@@ -89,6 +89,7 @@ int ctkVTKSliceViewTest1(int argc, char * argv [] )
 
   // .. and its associated layout
   QVBoxLayout * topLevelLayout = new QVBoxLayout(&widget);
+  topLevelLayout->setContentsMargins(0, 0, 0, 0);
 
   // Horizontal layout to contain the spinboxes
   QHBoxLayout * spinBoxLayout = new QHBoxLayout;
@@ -115,6 +116,7 @@ int ctkVTKSliceViewTest1(int argc, char * argv [] )
   sliceView->setRenderEnabled(true);
   sliceView->setMinimumSize(600, 600);
   sliceView->setImageData(image);
+  sliceView->setHighlightedBoxColor(QColor(Qt::yellow));
   sliceView->lightBoxRendererManager()->SetRenderWindowLayout(defaultRowCount, defaultColumnCount);
   sliceView->lightBoxRendererManager()->SetHighlighted(0, 0, true);
   sliceView->setCornerAnnotationText("CTK");

+ 21 - 0
Libs/Visualization/VTK/Widgets/ctkVTKSliceView.cpp

@@ -216,6 +216,27 @@ void ctkVTKSliceView::setBackgroundColor(const QColor& newBackgroundColor)
 }
 
 //----------------------------------------------------------------------------
+QColor ctkVTKSliceView::highlightedBoxColor()const
+{
+  CTK_D(const ctkVTKSliceView);
+  double* color = d->LightBoxRendererManager->GetHighlightedBoxColor();
+  QColor c;
+  c.setRgbF(color[0], color[1], color[2]);
+  return c;
+}
+
+//----------------------------------------------------------------------------
+void ctkVTKSliceView::setHighlightedBoxColor(const QColor& newHighlightedBoxColor)
+{
+  CTK_D(ctkVTKSliceView);
+  double color[3];
+  color[0] = newHighlightedBoxColor.redF();
+  color[1] = newHighlightedBoxColor.greenF();
+  color[2] = newHighlightedBoxColor.blueF();
+  d->LightBoxRendererManager->SetHighlightedBoxColor(color);
+}
+
+//----------------------------------------------------------------------------
 ctkVTKSliceView::RenderWindowLayoutType ctkVTKSliceView::renderWindowLayoutType()const
 {
   CTK_D(const ctkVTKSliceView);

+ 8 - 0
Libs/Visualization/VTK/Widgets/ctkVTKSliceView.h

@@ -46,6 +46,7 @@ class CTK_VISUALIZATION_VTK_WIDGETS_EXPORT ctkVTKSliceView : public QWidget
              READ renderWindowLayoutType WRITE setRenderWindowLayoutType)
   Q_PROPERTY(QString cornerAnnotationText READ cornerAnnotationText WRITE setCornerAnnotationText)
   Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor)
+  Q_PROPERTY(QColor highlightedBoxColor READ highlightedBoxColor WRITE setHighlightedBoxColor)
   Q_PROPERTY(bool renderEnabled READ renderEnabled WRITE setRenderEnabled)
   Q_PROPERTY(double ColorLevel READ colorLevel WRITE setColorLevel)
   Q_PROPERTY(double ColorWindow READ colorWindow WRITE setColorWindow)
@@ -85,6 +86,10 @@ public:
   /// \sa setBackgroundColor();
   QColor backgroundColor()const;
 
+  /// Get highlightedBox color
+  /// \sa setHighlightedBoxColor();
+  QColor highlightedBoxColor()const;
+
   /// Get renderWindow layout type
   /// \sa setRenderWindowLayoutType();
   RenderWindowLayoutType renderWindowLayoutType()const;
@@ -115,6 +120,9 @@ public slots:
   /// Set background color
   void setBackgroundColor(const QColor& newBackgroundColor);
 
+  /// Set highlightedBox color
+  void setHighlightedBoxColor(const QColor& newHighlightedBoxColor);
+
   /// Enable/Disable rendering
   void setRenderEnabled(bool value);