1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
#include "vtkActor.h"
#include "vtkDataSetMapper.h"
#include "vtkDataSetSurfaceFilter.h"
#include "vtkPoints.h"
#include "vtkRegressionTestImage.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderer.h"
#include "vtkUnstructuredGrid.h"
int TestLagrangeCurveNonLinearLevel(int argc, char* argv[])
{
vtkNew<vtkUnstructuredGrid> dataset;
// add points
vtkNew<vtkPoints> points;
points->SetNumberOfPoints(4);
points->SetPoint(0, 0, 1, 0);
points->SetPoint(1, 0.33, 0.8, 0);
points->SetPoint(2, 0.66, 0.5, 0);
points->SetPoint(3, 1, 0, 0);
dataset->SetPoints(points);
// add cell
vtkIdType cell[4] = { 0, 3, 1, 2 };
dataset->InsertNextCell(VTK_LAGRANGE_CURVE, 3, cell);
// extract surface
vtkNew<vtkDataSetSurfaceFilter> surfaceFilter;
surfaceFilter->SetInputData(dataset);
surfaceFilter->SetNonlinearSubdivisionLevel(2);
// Create a mapper and actor
vtkNew<vtkDataSetMapper> mapper;
mapper->SetInputConnection(surfaceFilter->GetOutputPort());
vtkNew<vtkActor> actor;
actor->SetMapper(mapper);
// Visualize
vtkNew<vtkRenderer> renderer;
vtkNew<vtkRenderWindow> renderWindow;
renderWindow->AddRenderer(renderer);
vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
renderWindowInteractor->SetRenderWindow(renderWindow);
renderer->AddActor(actor);
renderer->ResetCamera();
renderWindow->SetSize(300, 300);
renderWindow->Render();
int retVal = vtkRegressionTestImage(renderWindow);
if (retVal == vtkRegressionTester::DO_INTERACTOR)
{
renderWindowInteractor->Start();
retVal = vtkRegressionTester::PASSED;
}
return (retVal == vtkRegressionTester::PASSED) ? EXIT_SUCCESS : EXIT_FAILURE;
}
|