Skip to content
Snippets Groups Projects
Commit 7782cbe8 authored by Julien Fausty's avatar Julien Fausty
Browse files

HTGGeometry: add testing for PassThroughCellIds option

parent 192daf2b
No related branches found
No related tags found
No related merge requests found
......@@ -38,6 +38,7 @@ set(test_sources
TestHyperTreeGridBinaryClipPlanes.cxx
TestHyperTreeGridBinaryEllipseMaterial.cxx
TestHyperTreeGridBinaryHyperbolicParaboloidMaterial.cxx
TestHyperTreeGridGeometryPassCellIds.cxx
TestHyperTreeGridTernary2D.cxx
TestHyperTreeGridTernary2DBiMaterial.cxx
TestHyperTreeGridTernary2DFullMaterialBits.cxx
......
/*=========================================================================
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);
}
6f4aadcc67f2a4af91c697d3650c346e34ec973df964f7410b6126047a4792fcca910ebfbf80fcb583426c13fc83bda46608521116e9a73a498a2a2e4ebd1663
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment