2D Surface cutter development

Update:
In recent commits,

  • fixed a couple of memory leaks with vtkCellIterator. I learned about this when tests from my MR to vtkStripper failed :disappointed:
  • vtkNew when vtkSmartPointer was just too long!
  • In perf-critical sections; delaunay triangulations/edge flips/cell traversal, manually manage object lifetimes.

As it stands, SurfaceCutter is ready for integration into VTK. Should it be a separate class or replace vtkCookieCutter? @will.schroeder, @Yohann_Bearzi

Further improvements:
It’s already efficient and fast (in realtime). From my benchmarks:

  • ~1k verts, ~1k cells ~15ms /frame
  • ~10k verts, ~20k cells. ~80ms /frame
  • ~70k verts, ~140k cells ~350ms /frame

~2x faster than vtkClipDataSet

I tried vtkOBBTree / vtkStaticCellLocator / vtkModifiedBSPTree to accelerate certain stages but it did not always work as expected. I’ll have to explore this option later as it might involve some amount of tinkering with the source.

1 Like