diff --git a/Documentation/release/dev/speedup-dataset-mapper.md b/Documentation/release/dev/speedup-dataset-mapper.md new file mode 100644 index 0000000000000000000000000000000000000000..2d4b125098111e3e75001eac5c396073fa9b853f --- /dev/null +++ b/Documentation/release/dev/speedup-dataset-mapper.md @@ -0,0 +1,5 @@ +# Improved vtkDataSetMapper performance + +The newer vtkGeometryFilter includes many speedups +and is now being used in vtkDataSetMapper instead +of the older vtkDataSetSurfaceFilter. diff --git a/Filters/Core/vtkConvertToPolyhedra.cxx b/Filters/Core/vtkConvertToPolyhedra.cxx index 5e9ee93682384f4220f096b5e1354ed43f726202..a691c93c4d488ca6a386b1ad77c9ca0dd55f2114 100644 --- a/Filters/Core/vtkConvertToPolyhedra.cxx +++ b/Filters/Core/vtkConvertToPolyhedra.cxx @@ -81,15 +81,12 @@ int vtkConvertToPolyhedra::RequestData(vtkInformation* vtkNotUsed(request), // copy them to the output. if (cell->GetCellDimension() < 3 || !cell->IsLinear()) { - if (!this->OutputAllCells) - { - continue; - } - else + if (this->OutputAllCells) { outCellId = output->InsertNextCell(cell->GetCellType(), cell->PointIds); outCD->CopyData(inCD, cellId, outCellId); } + continue; } // Process faces. Use the original cell's point ids to create the new diff --git a/Rendering/Core/vtkDataSetMapper.cxx b/Rendering/Core/vtkDataSetMapper.cxx index ff25caf9e806eaf20dfd0ae9d5d5961965dc9cf8..f41272c02f0b5b9843594ed964a871a4a264c3b9 100644 --- a/Rendering/Core/vtkDataSetMapper.cxx +++ b/Rendering/Core/vtkDataSetMapper.cxx @@ -3,9 +3,9 @@ #include "vtkDataSetMapper.h" #include "vtkDataSet.h" -#include "vtkDataSetSurfaceFilter.h" #include "vtkExecutive.h" #include "vtkGarbageCollector.h" +#include "vtkGeometryFilter.h" #include "vtkInformation.h" #include "vtkObjectFactory.h" #include "vtkPolyData.h" @@ -82,7 +82,7 @@ void vtkDataSetMapper::Render(vtkRenderer* ren, vtkActor* act) // if (this->PolyDataMapper == nullptr) { - vtkDataSetSurfaceFilter* gf = vtkDataSetSurfaceFilter::New(); + vtkGeometryFilter* gf = vtkGeometryFilter::New(); vtkPolyDataMapper* pm = vtkPolyDataMapper::New(); pm->SetInputConnection(gf->GetOutputPort()); diff --git a/Rendering/Core/vtkDataSetMapper.h b/Rendering/Core/vtkDataSetMapper.h index 1cfb8b1228ca6e4cc083a842a07a3385750f60ab..769f1062b1ec34afe5c7c62ea3914cdbac65377d 100644 --- a/Rendering/Core/vtkDataSetMapper.h +++ b/Rendering/Core/vtkDataSetMapper.h @@ -21,7 +21,7 @@ VTK_ABI_NAMESPACE_BEGIN class vtkPolyDataMapper; -class vtkDataSetSurfaceFilter; +class vtkGeometryFilter; class VTKRENDERINGCORE_EXPORT VTK_MARSHALMANUAL vtkDataSetMapper : public vtkMapper { @@ -62,7 +62,7 @@ protected: vtkDataSetMapper(); ~vtkDataSetMapper() override; - vtkDataSetSurfaceFilter* GeometryExtractor; + vtkGeometryFilter* GeometryExtractor; vtkPolyDataMapper* PolyDataMapper; void ReportReferences(vtkGarbageCollector*) override;