It appears the vtkCookieCutter doesn’t yet have an InsideOut option. vtkClipDataSet is not exactly precise for 2D surfaces.
This MR has certain issues. After tinkering with vtkCookieCutter, I felt it needed to be redesigned completely, hence SurfaceCutter.
I’ve written an implementation https://github.com/jaswantp/SurfaceCutter. It already works great and is efficient (Performance slightly better than vtkClipDataSet, way better than vtkCookieCutter).
I had to redesign the algorithm from the ground up to support inside out features in 2D and be precise. At present, the implementation only supports open surfaces and loops that are either +/-Z oriented. There are tests and a benchmark executable with realtime controls that move/rotate the surface, so feel free to play around.
It is derived from vtkDataSetAlgorithm, so it should support vtkPolyData/vtkUnstructuredGrid surfaces.
I would love to receive feedback on how it can be improved. Specifically, want to discuss the array dispatch functors and how they can be simplified.
My understanding of vtkDataArray, dispatch related tools comes from here, here, here and here.