From 506435b60d4648bf33da9283ff636c74fead2ded Mon Sep 17 00:00:00 2001 From: Spiros Tsalikis Date: Fri, 20 May 2022 12:57:37 -0400 Subject: [PATCH 1/6] vtkPointDataToCellData/vtkCellTreeLocator: Fix warnings --- Common/DataModel/vtkCellTreeLocator.cxx | 2 +- Filters/Core/vtkPointDataToCellData.cxx | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Common/DataModel/vtkCellTreeLocator.cxx b/Common/DataModel/vtkCellTreeLocator.cxx index 353cbc34d0e..3a3efab2299 100644 --- a/Common/DataModel/vtkCellTreeLocator.cxx +++ b/Common/DataModel/vtkCellTreeLocator.cxx @@ -70,7 +70,7 @@ struct vtkCellTree virtual void FindCellsWithinBounds(double* bbox, vtkIdList* cells) = 0; virtual int IntersectWithLine(const double a0[3], const double a1[3], double tol, double& t, double x[3], double pcoords[3], int& subId, vtkIdType& cellId, vtkGenericCell* cell) = 0; - virtual int IntersectWithLine(const double p1[3], const double p2[3], const double tol, + virtual int IntersectWithLine(const double p1[3], const double p2[3], double tol, vtkPoints* points, vtkIdList* cellIds, vtkGenericCell* cell) = 0; virtual void GenerateRepresentation(int level, vtkPolyData* pd) = 0; diff --git a/Filters/Core/vtkPointDataToCellData.cxx b/Filters/Core/vtkPointDataToCellData.cxx index ca093f7b9bc..1f4b1748b2e 100644 --- a/Filters/Core/vtkPointDataToCellData.cxx +++ b/Filters/Core/vtkPointDataToCellData.cxx @@ -365,8 +365,7 @@ int vtkPointDataToCellData::RequestData( vtkInformation* inInfo = inputVector[0]->GetInformationObject(0); vtkDataSet* input = vtkDataSet::SafeDownCast(inInfo->Get(vtkDataObject::DATA_OBJECT())); - vtkIdType cellId, ptId, pointId; - vtkIdType numCells, numPts; + vtkIdType numCells; vtkPointData* inputInPD = input->GetPointData(); vtkSmartPointer inPD; vtkCellData* outCD = output->GetCellData(); -- GitLab From 8955744974102811e3a4dcbf186a2a5ff1fd7a8d Mon Sep 17 00:00:00 2001 From: Spiros Tsalikis Date: Sat, 21 May 2022 09:44:45 -0400 Subject: [PATCH 2/6] vtkParticleTracerBase:: Fix offsets ids --- Filters/FlowPaths/Testing/Cxx/TestStreamTracer.cxx | 2 +- Filters/FlowPaths/vtkParticleTracerBase.cxx | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Filters/FlowPaths/Testing/Cxx/TestStreamTracer.cxx b/Filters/FlowPaths/Testing/Cxx/TestStreamTracer.cxx index f6d067c612f..d96fcac1d68 100644 --- a/Filters/FlowPaths/Testing/Cxx/TestStreamTracer.cxx +++ b/Filters/FlowPaths/Testing/Cxx/TestStreamTracer.cxx @@ -1,7 +1,7 @@ /*========================================================================= Program: Visualization Toolkit - Module: TestParticleTracers.cxx + Module: TestStreamTracer.cxx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. diff --git a/Filters/FlowPaths/vtkParticleTracerBase.cxx b/Filters/FlowPaths/vtkParticleTracerBase.cxx index 54b82a7e679..f12e3f5075a 100644 --- a/Filters/FlowPaths/vtkParticleTracerBase.cxx +++ b/Filters/FlowPaths/vtkParticleTracerBase.cxx @@ -838,7 +838,7 @@ void vtkParticleTracerBase::ResizeArrays(vtkIdType numTuples) { // resize first so that if you already have data, you don't lose them this->OutputCoordinates->Resize(numTuples); - this->ParticleCellsOffsets->Resize(numTuples); + this->ParticleCellsOffsets->Resize(numTuples + 1); this->ParticleCellsConnectivity->Resize(numTuples); for (int i = 0; i < this->OutputPointData->GetNumberOfArrays(); ++i) { @@ -846,7 +846,7 @@ void vtkParticleTracerBase::ResizeArrays(vtkIdType numTuples) } // set number number of tuples because resize does not do that this->OutputCoordinates->SetNumberOfPoints(numTuples); - this->ParticleCellsOffsets->SetNumberOfValues(numTuples); + this->ParticleCellsOffsets->SetNumberOfValues(numTuples + 1); this->ParticleCellsConnectivity->SetNumberOfValues(numTuples); this->OutputPointData->SetNumberOfTuples(numTuples); } @@ -882,6 +882,7 @@ vtkPolyData* vtkParticleTracerBase::Execute(vtkInformationVector** inputVector) vtkDebugMacro(<< "About to allocate arrays "); this->OutputCoordinates = vtkSmartPointer::New(); this->ParticleCellsOffsets = vtkSmartPointer::New(); + this->ParticleCellsOffsets->InsertNextValue(0); this->ParticleCellsConnectivity = vtkSmartPointer::New(); this->ParticleCells = vtkSmartPointer::New(); @@ -1676,7 +1677,7 @@ void vtkParticleTracerBase::SetParticle(vtkParticleTracerBaseNamespace::Particle const double* coord = info.CurrentPosition.x; this->OutputCoordinates->SetPoint(particleId, coord); // create the cell - this->ParticleCellsOffsets->SetValue(particleId, particleId + 1); + this->ParticleCellsOffsets->SetValue(particleId + 1, particleId + 1); this->ParticleCellsConnectivity->SetValue(particleId, particleId); // set the easy scalars for this particle this->ParticleIds->SetValue(particleId, info.UniqueParticleId); -- GitLab From f7230f23523e152a105d66fd3bd6271dad6069f9 Mon Sep 17 00:00:00 2001 From: Spiros Tsalikis Date: Sat, 21 May 2022 10:06:00 -0400 Subject: [PATCH 3/6] vtkLinearTransformCellLocator: Fix documentation --- Common/DataModel/vtkLinearTransformCellLocator.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Common/DataModel/vtkLinearTransformCellLocator.h b/Common/DataModel/vtkLinearTransformCellLocator.h index 78b3e4ba2cc..4f82adff6c7 100644 --- a/Common/DataModel/vtkLinearTransformCellLocator.h +++ b/Common/DataModel/vtkLinearTransformCellLocator.h @@ -21,15 +21,15 @@ * vtkStaticCellLocator, vtkCellLocator, calculate the transformation matrix from the cell * locator adaptor's dataset to the given dataset inside BuildLocator, and then use the cell locator * and transformation to perform cell locator operations. The transformation matrix is computed - * using the https://en.wikipedia.org/wiki/Kabsch_algorithm. UseAllPoints allows to compute the - * transformation using all the points of the dataset (use that when you are not if it's a linear - * transformation) or 100 sample points (or less if the dataset is smaller) that are chosen + * using the https://en.wikipedia.org/wiki/Kabsch_algorithm. UseAllPoints allows you to compute the + * transformation using all the points of the dataset (use that when you are not sure if it's a + * linear transformation) or 100 sample points (or less if the dataset is smaller) that are chosen * every-nth. IsLinearTransformation validates if the dataset is a linear transformation of the cell * locator's dataset based on the used points. * * @warning The cell locator adaptor MUST be built before using it. * - * vtkCellTreeLocator does NOT utilize ANY vtkLocator/vtkAbstractCellLocator parameter: + * vtkLinearTransformCellLocator does NOT utilize ANY vtkLocator/vtkAbstractCellLocator parameter: * * @sa * vtkAbstractCellLocator vtkCellLocator vtkStaticCellLocator vtkCellTreeLocator vtkModifiedBSPTree -- GitLab From b78324f5fd084599ea4e32ad523e6e9e13512eb8 Mon Sep 17 00:00:00 2001 From: Spiros Tsalikis Date: Mon, 23 May 2022 11:28:33 -0400 Subject: [PATCH 4/6] vtkAbstractCellLocator: Add ComputeCellBounds --- Common/DataModel/vtkAbstractCellLocator.cxx | 10 ++++++++++ Common/DataModel/vtkAbstractCellLocator.h | 6 ++++++ Common/DataModel/vtkCellLocator.cxx | 6 +----- Common/DataModel/vtkCellTreeLocator.cxx | 6 +----- Filters/FlowPaths/vtkModifiedBSPTree.cxx | 6 +----- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Common/DataModel/vtkAbstractCellLocator.cxx b/Common/DataModel/vtkAbstractCellLocator.cxx index 72b3398fd84..7d10a5be8ec 100644 --- a/Common/DataModel/vtkAbstractCellLocator.cxx +++ b/Common/DataModel/vtkAbstractCellLocator.cxx @@ -79,6 +79,16 @@ void vtkAbstractCellLocator::FreeCellBounds() this->CellBounds = nullptr; } +//------------------------------------------------------------------------------ +void vtkAbstractCellLocator::ComputeCellBounds() +{ + if (this->CacheCellBounds) + { + this->FreeCellBounds(); + this->StoreCellBounds(); + } +} + //------------------------------------------------------------------------------ void vtkAbstractCellLocator::UpdateInternalWeights() { diff --git a/Common/DataModel/vtkAbstractCellLocator.h b/Common/DataModel/vtkAbstractCellLocator.h index c236aea552d..450ea958cec 100644 --- a/Common/DataModel/vtkAbstractCellLocator.h +++ b/Common/DataModel/vtkAbstractCellLocator.h @@ -80,6 +80,12 @@ public: vtkBooleanMacro(CacheCellBounds, vtkTypeBool); ///@} + /** + * This function can be used either internally or externally to compute only the cached + * cell bounds if CacheCellBounds is on. + */ + void ComputeCellBounds(); + ///@{ /** * Boolean controls whether to maintain list of cells in each node. diff --git a/Common/DataModel/vtkCellLocator.cxx b/Common/DataModel/vtkCellLocator.cxx index 766d420ea08..96f3ececb40 100644 --- a/Common/DataModel/vtkCellLocator.cxx +++ b/Common/DataModel/vtkCellLocator.cxx @@ -791,11 +791,7 @@ void vtkCellLocator::BuildLocatorInternal() std::make_shared>>(numOctants, nullptr); this->Tree = TreeSharedPtr->data(); - if (this->CacheCellBounds) - { - this->FreeCellBounds(); - this->StoreCellBounds(); - } + this->ComputeCellBounds(); // Compute width of leaf octant in three directions for (i = 0; i < 3; i++) diff --git a/Common/DataModel/vtkCellTreeLocator.cxx b/Common/DataModel/vtkCellTreeLocator.cxx index 3a3efab2299..d3095a3ff8e 100644 --- a/Common/DataModel/vtkCellTreeLocator.cxx +++ b/Common/DataModel/vtkCellTreeLocator.cxx @@ -1346,11 +1346,7 @@ void vtkCellTreeLocator::BuildLocatorInternal() return; } this->FreeSearchStructure(); - if (this->CacheCellBounds) - { - this->FreeCellBounds(); - this->StoreCellBounds(); - } + this->ComputeCellBounds(); // Create sorted cell fragments tuples of (cellId,binId). Depending // on problem size, different types are used. if (numCells >= VTK_INT_MAX) diff --git a/Filters/FlowPaths/vtkModifiedBSPTree.cxx b/Filters/FlowPaths/vtkModifiedBSPTree.cxx index efe5b2b68b5..5bcbae7be24 100644 --- a/Filters/FlowPaths/vtkModifiedBSPTree.cxx +++ b/Filters/FlowPaths/vtkModifiedBSPTree.cxx @@ -156,11 +156,7 @@ void vtkModifiedBSPTree::BuildLocatorInternal() this->mRoot->mAxis = rand() % 3; this->mRoot->depth = 0; - if (this->CacheCellBounds) - { - this->FreeCellBounds(); - this->StoreCellBounds(); - } + this->ComputeCellBounds(); // sort the cells into 6 lists using structure for subdividing tests Sorted_cell_extents_Lists* lists = new Sorted_cell_extents_Lists(numCells); -- GitLab From 9f150a78dea32567102176b0537645292d55f60d Mon Sep 17 00:00:00 2001 From: Spiros Tsalikis Date: Tue, 24 May 2022 11:47:18 -0400 Subject: [PATCH 5/6] vtkTemporalInterpolatedVelocityField: Use cached Locator if possible --- Common/DataModel/vtkCellLocatorStrategy.cxx | 7 ++- Common/DataModel/vtkClosestPointStrategy.cxx | 7 ++- Common/DataModel/vtkPointSet.cxx | 2 - .../vtkAbstractInterpolatedVelocityField.cxx | 16 +++++-- .../vtkTemporalInterpolatedVelocityField.cxx | 43 +++++++++++++------ .../vtkTemporalInterpolatedVelocityField.h | 4 +- 6 files changed, 55 insertions(+), 24 deletions(-) diff --git a/Common/DataModel/vtkCellLocatorStrategy.cxx b/Common/DataModel/vtkCellLocatorStrategy.cxx index b1a2d079661..14252ad5595 100644 --- a/Common/DataModel/vtkCellLocatorStrategy.cxx +++ b/Common/DataModel/vtkCellLocatorStrategy.cxx @@ -98,8 +98,11 @@ int vtkCellLocatorStrategy::Initialize(vtkPointSet* ps) } else { - this->CellLocator = psCL; - this->OwnsLocator = false; + if (psCL != this->CellLocator) + { + this->CellLocator = psCL; + this->OwnsLocator = false; + } } this->InitializeTime.Modified(); diff --git a/Common/DataModel/vtkClosestPointStrategy.cxx b/Common/DataModel/vtkClosestPointStrategy.cxx index 6dd17588f33..33bb41bd162 100644 --- a/Common/DataModel/vtkClosestPointStrategy.cxx +++ b/Common/DataModel/vtkClosestPointStrategy.cxx @@ -104,8 +104,11 @@ int vtkClosestPointStrategy::Initialize(vtkPointSet* ps) } else { - this->PointLocator = psPL; - this->OwnsLocator = false; + if (psPL != this->PointLocator) + { + this->PointLocator = psPL; + this->OwnsLocator = false; + } } this->VisitedCells.resize(static_cast(ps->GetNumberOfCells())); this->Weights.resize(8); diff --git a/Common/DataModel/vtkPointSet.cxx b/Common/DataModel/vtkPointSet.cxx index 777b9eb3a4c..eb375f2322d 100644 --- a/Common/DataModel/vtkPointSet.cxx +++ b/Common/DataModel/vtkPointSet.cxx @@ -199,8 +199,6 @@ void vtkPointSet::BuildCellLocator() { this->CellLocator = vtkStaticCellLocator::New(); } - this->CellLocator->Register(this); - this->CellLocator->Delete(); this->CellLocator->SetDataSet(this); } else if (this->Points->GetMTime() > this->CellLocator->GetMTime()) diff --git a/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.cxx index 6d9c6728c96..26116a15b5d 100644 --- a/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.cxx +++ b/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.cxx @@ -157,16 +157,26 @@ void vtkAbstractInterpolatedVelocityField::Initialize(vtkCompositeDataSet* compD for (auto& datasetInfo : this->DataSetsInfo) { datasetInfo.DataSet->ComputeBounds(); + if (auto polyData = vtkPolyData::SafeDownCast(datasetInfo.DataSet)) + { + // build cells is needed for both vtkClosestPointStrategy and vtkCellLocatorStrategy + polyData->BuildCells(); + } if (vtkClosestPointStrategy::SafeDownCast(datasetInfo.Strategy)) { if (auto ugrid = vtkUnstructuredGrid::SafeDownCast(datasetInfo.DataSet)) { - ugrid->BuildLinks(); + if (ugrid->GetLinks() == nullptr) + { + ugrid->BuildLinks(); + } } else if (auto polyData = vtkPolyData::SafeDownCast(datasetInfo.DataSet)) { - // Build links calls BuildCells internally - polyData->BuildLinks(); + if (polyData->GetLinks() == nullptr) + { + polyData->BuildLinks(); + } } } } diff --git a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.cxx index b6e43b55f5d..2d69edea412 100644 --- a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.cxx +++ b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.cxx @@ -123,25 +123,34 @@ void vtkTemporalInterpolatedVelocityField::CreateLocators(const std::vector::New(); - cellLocator->SetDataSet(dataset); - cellLocator->CacheCellBoundsOn(); + if (!pointSet->GetCellLocator()) + { + pointSet->BuildCellLocator(); + } + auto cellLocator = pointSet->GetCellLocator(); + // if cache cell bounds were not on, enable them and compute cell bounds + if (cellLocator->GetCacheCellBounds() == 0) + { + cellLocator->CacheCellBoundsOn(); + cellLocator->ComputeCellBounds(); + } cellLocator->SetUseExistingSearchStructure( this->MeshOverTime != MeshOverTimeTypes::DIFFERENT); - cellLocator->BuildLocator(); locators.emplace_back(cellLocator); } else // vtkClosestPointStrategy { - auto pointLocator = vtkSmartPointer::New(); - pointLocator->SetDataSet(dataset); + if (!pointSet->GetPointLocator()) + { + pointSet->BuildPointLocator(); + } + auto pointLocator = pointSet->GetPointLocator(); pointLocator->SetUseExistingSearchStructure( this->MeshOverTime != MeshOverTimeTypes::DIFFERENT); - pointLocator->BuildLocator(); locators.emplace_back(pointLocator); } } @@ -164,12 +173,19 @@ void vtkTemporalInterpolatedVelocityField::CreateLinks(const std::vectorBuildLinks(); + if (ugrid->GetLinks() == nullptr) + { + ugrid->BuildLinks(); + } datasetLinks.emplace_back(ugrid->GetLinks()); } else if (auto polyData = vtkPolyData::SafeDownCast(dataset)) { - polyData->BuildLinks(); + if (polyData->GetLinks() == nullptr) + { + // Build links calls BuildCells internally + polyData->BuildLinks(); + } datasetLinks.emplace_back(polyData->GetLinks()); } } @@ -206,7 +222,7 @@ void vtkTemporalInterpolatedVelocityField::CreateLinearTransformCellLocators( void vtkTemporalInterpolatedVelocityField::InitializeWithLocators( vtkCompositeInterpolatedVelocityField* ivf, const std::vector& datasets, vtkFindCellStrategy* strategy, const std::vector>& locators, - const std::vector>& datasetLinks) + const std::vector>& links) { // Clear the datasets info, subclasses may want to put stuff into it. ivf->DataSetsInfo.clear(); @@ -269,17 +285,18 @@ void vtkTemporalInterpolatedVelocityField::InitializeWithLocators( datasetInfo.DataSet->ComputeBounds(); if (auto polyData = vtkPolyData::SafeDownCast(datasetInfo.DataSet)) { + // build cells is needed for both vtkClosestPointStrategy and vtkCellLocatorStrategy polyData->BuildCells(); } if (vtkClosestPointStrategy::SafeDownCast(datasetInfo.Strategy)) { if (auto ugrid = vtkUnstructuredGrid::SafeDownCast(datasetInfo.DataSet)) { - ugrid->SetLinks(datasetLinks[i]); + ugrid->SetLinks(links[i]); } else if (auto polyData = vtkPolyData::SafeDownCast(datasetInfo.DataSet)) { - polyData->SetLinks(vtkCellLinks::SafeDownCast(datasetLinks[i])); + polyData->SetLinks(vtkCellLinks::SafeDownCast(links[i])); } } } diff --git a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h index d80f51899c9..b9f370d6f43 100644 --- a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h +++ b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h @@ -50,9 +50,9 @@ #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_2_0 #include "vtkFiltersFlowPathsModule.h" // For export macro #include "vtkFunctionSet.h" -#include "vtkSmartPointer.h" // because it is good +#include "vtkSmartPointer.h" // For vtkSmartPointer -#include // Because they are good +#include // For internal structures class vtkAbstractCellLinks; class vtkCompositeDataSet; -- GitLab From 845418290014372527a1c6fd33cd4dc2516c2cb5 Mon Sep 17 00:00:00 2001 From: Spiros Tsalikis Date: Tue, 24 May 2022 14:01:23 -0400 Subject: [PATCH 6/6] vtkParticleTracerBase: Fix MeshOverTime not being set --- Filters/FlowPaths/vtkParticleTracerBase.cxx | 19 +++++++++++++++++-- Filters/FlowPaths/vtkParticleTracerBase.h | 4 +++- .../vtkTemporalInterpolatedVelocityField.h | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Filters/FlowPaths/vtkParticleTracerBase.cxx b/Filters/FlowPaths/vtkParticleTracerBase.cxx index f12e3f5075a..03fd472e012 100644 --- a/Filters/FlowPaths/vtkParticleTracerBase.cxx +++ b/Filters/FlowPaths/vtkParticleTracerBase.cxx @@ -370,10 +370,25 @@ int vtkParticleTracerBase::RequestUpdateExtent(vtkInformation* vtkNotUsed(reques return 1; } +//------------------------------------------------------------------------------ +void vtkParticleTracerBase::SetMeshOverTime(int meshOverTime) +{ + if (this->MeshOverTime != + (meshOverTime < DIFFERENT ? DIFFERENT + : (meshOverTime > SAME_TOPOLOGY ? SAME_TOPOLOGY : meshOverTime))) + { + this->MeshOverTime = + (meshOverTime < DIFFERENT ? DIFFERENT + : (meshOverTime > SAME_TOPOLOGY ? SAME_TOPOLOGY : meshOverTime)); + this->Modified(); + // Needed since the value needs to be set at the same time. + this->Interpolator->SetMeshOverTime(this->MeshOverTime); + } +} + //------------------------------------------------------------------------------ void vtkParticleTracerBase::SetInterpolatorType(int interpolatorType) { - this->Interpolator->SetMeshOverTime(this->MeshOverTime); if (interpolatorType == INTERPOLATOR_WITH_CELL_LOCATOR) { // create an interpolator equipped with a cell locator (by default) @@ -431,7 +446,7 @@ int vtkParticleTracerBase::InitializeInterpolator() return VTK_ERROR; } - // create Interpolator if needed + // set strategy if needed if (this->Interpolator->GetFindCellStrategy() == nullptr) { // cell locator is the default; diff --git a/Filters/FlowPaths/vtkParticleTracerBase.h b/Filters/FlowPaths/vtkParticleTracerBase.h index 1e9c49e8bf9..1925c875daa 100644 --- a/Filters/FlowPaths/vtkParticleTracerBase.h +++ b/Filters/FlowPaths/vtkParticleTracerBase.h @@ -229,7 +229,9 @@ public: * LINEAR_TRANSFORMATION = 2 * SAME_TOPOLOGY = 3 */ - vtkSetClampMacro(MeshOverTime, int, DIFFERENT, LINEAR_TRANSFORMATION); + virtual void SetMeshOverTime(int meshOverTime); + virtual int GetMeshOverTimeMinValue() { return DIFFERENT; } + virtual int GetMeshOverTimeMaxValue() { return SAME_TOPOLOGY; } void SetMeshOverTimeToDifferent() { this->SetMeshOverTime(DIFFERENT); } void SetMeshOverTimeToStatic() { this->SetMeshOverTime(STATIC); } void SetMeshOverTimeToLinearTransformation() { this->SetMeshOverTime(LINEAR_TRANSFORMATION); } diff --git a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h index b9f370d6f43..05502df33b8 100644 --- a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h +++ b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h @@ -108,7 +108,7 @@ public: * LINEAR_TRANSFORMATION = 2 * SAME_TOPOLOGY = 3 */ - vtkSetClampMacro(MeshOverTime, int, DIFFERENT, LINEAR_TRANSFORMATION); + vtkSetClampMacro(MeshOverTime, int, DIFFERENT, SAME_TOPOLOGY); void SetMeshOverTimeToDifferent() { this->SetMeshOverTime(DIFFERENT); } void SetMeshOverTimeToStatic() { this->SetMeshOverTime(STATIC); } void SetMeshOverTimeToLinearTransformation() { this->SetMeshOverTime(LINEAR_TRANSFORMATION); } -- GitLab