// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen // SPDX-License-Identifier: BSD-3-Clause #include "vtkChart.h" #include "vtkContextScene.h" #include "vtkContextView.h" #include "vtkFloatArray.h" #include "vtkNew.h" #include "vtkPlot.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkScatterPlotMatrix.h" #include "vtkTable.h" //------------------------------------------------------------------------------ int TestScatterPlotMatrixVisible(int, char*[]) { // Set up a 2D scene, add a chart to it. vtkNew view; view->GetRenderWindow()->SetSize(800, 600); vtkNew matrix; view->GetScene()->AddItem(matrix); // Create a table with some points in it... vtkNew table; vtkNew arrX; arrX->SetName("x"); table->AddColumn(arrX); vtkNew arrC; arrC->SetName("cos(x)"); table->AddColumn(arrC); vtkNew arrS; arrS->SetName("sin(x)"); table->AddColumn(arrS); vtkNew arrS2; arrS2->SetName("sin(x + 0.5)"); table->AddColumn(arrS2); vtkNew tangent; tangent->SetName("tan(x)"); table->AddColumn(tangent); // Test the chart scatter plot matrix int numPoints = 42; float inc = 7.5 / (numPoints - 1); table->SetNumberOfRows(numPoints); for (int i = 0; i < numPoints; ++i) { table->SetValue(i, 0, i * inc); table->SetValue(i, 1, cos(i * inc)); table->SetValue(i, 2, sin(i * inc)); table->SetValue(i, 3, sin(i * inc) + 0.5); table->SetValue(i, 4, tan(i * inc)); } // Select a few columns in the table to analyze. matrix->SetInput(table); matrix->SetColumnVisibilityAll(false); matrix->SetColumnVisibility("x", true); matrix->SetColumnVisibility("sin(x)", true); matrix->SetColumnVisibility("cos(x)", true); matrix->SetColumnVisibility("tan(x)", true); // Finally render the scene and compare the image to a reference image view->GetRenderWindow()->SetMultiSamples(0); view->GetInteractor()->Initialize(); view->GetInteractor()->Start(); return EXIT_SUCCESS; }