ソースを参照

Add test for ctkVTKDiscretizableColorTransferWidget

- Activate test for ctkVTKDiscretizableColorTransferWidget
- ActiVate test for ctkVTKScalarsToColorsComboBox
- Enhance test ctkVTKDiscretizableColorTransferWidgetTest1
  with histogram
- Fix leaks in ctkVTKScalarsToColorsComboBox
- Clean ctkVTKDiscretizableColorTransferWidget
Tristan 7 年 前
コミット
49d1956c64

+ 3 - 2
Libs/Visualization/VTK/Core/vtkScalarsToColorsContextItem.h

@@ -46,8 +46,9 @@ class CTK_VISUALIZATION_VTK_CORE_EXPORT vtkScalarsToColorsContextItem
 public:
   static vtkScalarsToColorsContextItem* New();
 
-  /// Set/Get the left axis mode, which controls the axis range computation.
-  /// See vtkScalarsToColorsHistogramChart for more details.
+  /// Set/Get the left axis mode.
+  /// This controls the axis range computation.
+  /// \see vtkScalarsToColorsHistogramChart::SetLeftAxisMode
   void SetLeftAxisMode(int mode);
   int GetLeftAxisMode();
 

+ 3 - 1
Libs/Visualization/VTK/Widgets/Testing/Cpp/CMakeLists.txt

@@ -40,7 +40,7 @@ if(CTK_USE_CHARTS)
   set(TEST_SOURCES
       ctkVTKChartViewTest1.cpp
       ctkVTKVolumePropertyWidgetTest1.cpp
-	  ctkVTKDiscretizableColorTransferWidgetTest1.cpp
+      ctkVTKDiscretizableColorTransferWidgetTest1.cpp
       ctkVTKScalarsToColorsViewTest1.cpp
       ctkVTKScalarsToColorsViewTest2.cpp
       ctkVTKScalarsToColorsViewTest3.cpp
@@ -176,6 +176,7 @@ SIMPLE_TEST( ctkTransferFunctionViewTest5 )
 if(CTK_USE_CHARTS)
   SIMPLE_TEST( ctkVTKChartViewTest1 )
   SIMPLE_TEST( ctkVTKVolumePropertyWidgetTest1 )
+  SIMPLE_TEST( ctkVTKDiscretizableColorTransferWidgetTest1 )
   SIMPLE_TEST( ctkVTKScalarsToColorsViewTest1 )
   SIMPLE_TEST( ctkVTKScalarsToColorsViewTest2 )
   SIMPLE_TEST( ctkVTKScalarsToColorsViewTest3 )
@@ -185,6 +186,7 @@ if(CTK_USE_CHARTS)
   SIMPLE_TEST( ctkVTKScalarsToColorsWidgetTest3 )
 endif()
 SIMPLE_TEST( ctkVTKRenderViewTest1 )
+SIMPLE_TEST( ctkVTKScalarsToColorsComboBoxTest1 )
 SIMPLE_TEST( ctkVTKSliceViewTest1 )
 SIMPLE_TEST( ctkVTKSurfaceMaterialPropertyWidgetTest1 )
 SIMPLE_TEST( ctkVTKTextPropertyWidgetTest1 )

+ 12 - 1
Libs/Visualization/VTK/Widgets/Testing/Cpp/ctkVTKDiscretizableColorTransferWidgetTest1.cpp

@@ -25,11 +25,13 @@ limitations under the License.
 // CTK includes
 #include "ctkVTKDiscretizableColorTransferWidget.h"
 #include "ctkVTKScalarsToColorsComboBox.h"
+#include "vtkScalarsToColorsHistogramChart.h"
 
 // VTK includes
 #include <vtkDiscretizableColorTransferFunction.h>
 #include <vtkNew.h>
 #include <vtkPiecewiseFunction.h>
+#include <vtkRTAnalyticSource.h>
 
 //-----------------------------------------------------------------------------
 int ctkVTKDiscretizableColorTransferWidgetTest1(int argc, char * argv[])
@@ -59,9 +61,18 @@ int ctkVTKDiscretizableColorTransferWidgetTest1(int argc, char * argv[])
   ctf0->AddRGBPoint(0.0, 1.0, 0.0, 1.0);
   ctf0->AddRGBPoint(255.0, 0.0, 1.0, 0.0);
 
+  /// Create an image to test the widget histogram
+  vtkNew<vtkRTAnalyticSource> imageSource;
+  imageSource->SetWholeExtent(0, 9,
+                              0, 9,
+                              0, 9);
+
   /// Discretizable transfer function widget
   ctkVTKDiscretizableColorTransferWidget mWidget;
-  mWidget.setColorTransferFunction(dctf0.Get());
+  mWidget.copyColorTransferFunction(dctf0.Get());
+  mWidget.setHistogramConnection(imageSource->GetOutputPort());
+  mWidget.setLeftAxisMode(vtkScalarsToColorsHistogramChart::MAXIMUM);
+  mWidget.updateHistogram(true);
   mWidget.show();
 
   /// Add presets to the widget selector

+ 1 - 1
Libs/Visualization/VTK/Widgets/ctkVTKDiscretizableColorTransferWidget.cpp

@@ -395,7 +395,7 @@ void ctkVTKDiscretizableColorTransferWidget::setLeftAxisMode(int mode)
 }
 
 // ----------------------------------------------------------------------------
-int ctkVTKDiscretizableColorTransferWidget::getLeftAxisMode()
+int ctkVTKDiscretizableColorTransferWidget::leftAxisMode()
 {
   Q_D(ctkVTKDiscretizableColorTransferWidget);
 

+ 4 - 3
Libs/Visualization/VTK/Widgets/ctkVTKDiscretizableColorTransferWidget.h

@@ -70,10 +70,11 @@ public:
   void copyColorTransferFunction(vtkScalarsToColors* ctf, bool useCtfRange = false);
   vtkDiscretizableColorTransferFunction* discretizableColorTransferFunction() const;
 
-  /// Set/Get the left axis mode, which controls the axis range computation.
-  /// See vtkScalarsToColorsHistogramChart for more details.
+  /// Set/Get the left axis mode.
+  /// This controls the axis range computation.
+  /// \see vtkScalarsToColorsHistogramChart::SetLeftAxisMode
   void setLeftAxisMode(int mode);
-  int getLeftAxisMode();
+  int leftAxisMode();
 
   void setHistogramConnection(vtkAlgorithmOutput* input);
   void updateHistogram(bool updateDataRange);

+ 2 - 2
Libs/Visualization/VTK/Widgets/ctkVTKScalarsToColorsComboBox.cpp

@@ -85,6 +85,7 @@ ctkVTKScalarsToColorsComboBox::ctkVTKScalarsToColorsComboBox(QWidget* _parent)
 // --------------------------------------------------------------------------
 ctkVTKScalarsToColorsComboBox::~ctkVTKScalarsToColorsComboBox()
 {
+  QComboBox::clear();
 }
 
 // --------------------------------------------------------------------------
@@ -165,8 +166,7 @@ void ctkVTKScalarsToColorsComboBox::onRowsAboutToBeRemoved(
 {
   for (int i = first; i <= last; ++i)
   {
-    vtkScalarsToColors* scFunction = reinterpret_cast<vtkScalarsToColors*>(
-      model()->data(model()->index(i, 0, parent)).value<void*>());
+    vtkScalarsToColors* scFunction = this->getScalarsToColors(i);
     if (scFunction != CTK_NULLPTR)
     {
       scFunction->Delete();