diff --git a/Filters/HyperTree/Testing/Cxx/CMakeLists.txt b/Filters/HyperTree/Testing/Cxx/CMakeLists.txt index ff45223668424c9eb4eac03b07d1d0f3eae1d05a..3cd0519b8b5eb5b36ad9dc5c6b7daed019745be5 100644 --- a/Filters/HyperTree/Testing/Cxx/CMakeLists.txt +++ b/Filters/HyperTree/Testing/Cxx/CMakeLists.txt @@ -38,6 +38,7 @@ set(test_sources TestHyperTreeGridBinaryClipPlanes.cxx TestHyperTreeGridBinaryEllipseMaterial.cxx TestHyperTreeGridBinaryHyperbolicParaboloidMaterial.cxx + TestHyperTreeGridGeometryPassCellIds.cxx TestHyperTreeGridTernary2D.cxx TestHyperTreeGridTernary2DBiMaterial.cxx TestHyperTreeGridTernary2DFullMaterialBits.cxx diff --git a/Filters/HyperTree/Testing/Cxx/TestHyperTreeGridGeometryPassCellIds.cxx b/Filters/HyperTree/Testing/Cxx/TestHyperTreeGridGeometryPassCellIds.cxx new file mode 100644 index 0000000000000000000000000000000000000000..a7016669af6a8b195db90d0f4c27be8b54fdb742 --- /dev/null +++ b/Filters/HyperTree/Testing/Cxx/TestHyperTreeGridGeometryPassCellIds.cxx @@ -0,0 +1,84 @@ +/*========================================================================= + + Program: Visualization Toolkit + Module: TestHyperTreeGridGeometryPassCellIds.cxx + + Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen + All rights reserved. + See Copyright.txt or http://www.kitware.com/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notice for more information. + +=========================================================================*/ +// Funded by CEA, DAM, DIF, F-91297 Arpajon, France + +#include "vtkHyperTreeGrid.h" +#include "vtkHyperTreeGridGeometry.h" +#include "vtkHyperTreeGridPreConfiguredSource.h" + +#include "vtkActor.h" +#include "vtkCamera.h" +#include "vtkDataSet.h" +#include "vtkLookupTable.h" +#include "vtkNew.h" +#include "vtkPolyDataMapper.h" +#include "vtkProperty.h" +#include "vtkRegressionTestImage.h" +#include "vtkRenderWindow.h" +#include "vtkRenderWindowInteractor.h" +#include "vtkRenderer.h" + +int TestHyperTreeGridGeometryPassCellIds(int argc, char* argv[]) +{ + vtkNew<vtkHyperTreeGridPreConfiguredSource> htgSource; + htgSource->SetHTGMode(vtkHyperTreeGridPreConfiguredSource::CUSTOM); + htgSource->SetCustomArchitecture(vtkHyperTreeGridPreConfiguredSource::UNBALANCED); + htgSource->SetCustomDim(3); + htgSource->SetCustomFactor(3); + htgSource->SetCustomDepth(4); + std::vector<unsigned int> subdivs = { 3, 3, 3 }; + std::vector<double> extent = { -1, 1, -1, 1, -1, 1 }; + htgSource->SetCustomSubdivisions(subdivs.data()); + htgSource->SetCustomExtent(extent.data()); + + vtkNew<vtkHyperTreeGridGeometry> geom; + geom->SetPassThroughCellIds(true); + geom->SetInputConnection(htgSource->GetOutputPort()); + geom->Update(); + + vtkNew<vtkPolyDataMapper> mapper; + mapper->SetInputConnection(geom->GetOutputPort()); + + auto ds = vtkDataSet::SafeDownCast(geom->GetOutput()); + + vtkNew<vtkLookupTable> lut; + lut->SetNumberOfTableValues(100); + lut->SetTableRange(0, ds->GetNumberOfCells()); + + mapper->ScalarVisibilityOn(); + mapper->SetLookupTable(lut); + mapper->UseLookupTableScalarRangeOn(); + mapper->SetScalarModeToUseCellFieldData(); + mapper->ColorByArrayComponent("vtkOriginalCellIds", 0); + mapper->InterpolateScalarsBeforeMappingOn(); + + vtkNew<vtkActor> actor; + actor->SetMapper(mapper); + actor->GetProperty()->SetRepresentationToSurface(); + actor->GetProperty()->EdgeVisibilityOn(); + + vtkNew<vtkRenderer> renderer; + renderer->AddActor(actor); + + vtkNew<vtkRenderWindow> renWin; + renWin->AddRenderer(renderer.Get()); + + vtkCamera* camera = renderer->GetActiveCamera(); + camera->SetPosition(-1.5, -1.5, -1.5); + renderer->ResetCamera(); + + renWin->Render(); + return !vtkRegressionTester::Test(argc, argv, renWin, 10); +} diff --git a/Filters/HyperTree/Testing/Data/Baseline/TestHyperTreeGridGeometryPassCellIds.png.sha512 b/Filters/HyperTree/Testing/Data/Baseline/TestHyperTreeGridGeometryPassCellIds.png.sha512 new file mode 100644 index 0000000000000000000000000000000000000000..170e95c708b31abeed29f18699c93c76ffc17936 --- /dev/null +++ b/Filters/HyperTree/Testing/Data/Baseline/TestHyperTreeGridGeometryPassCellIds.png.sha512 @@ -0,0 +1 @@ +6f4aadcc67f2a4af91c697d3650c346e34ec973df964f7410b6126047a4792fcca910ebfbf80fcb583426c13fc83bda46608521116e9a73a498a2a2e4ebd1663