Skip to content
  • Jaswant Panchumarti's avatar
    Implement InsideOut For VtkCookieCutter · 15a83a5e
    Jaswant Panchumarti authored
    - vtkClipDataSet already has an InsideOut option. Although
      it is unable to make precision cuts in the 2D plane,
      probably because it is scalar-based.
    - This commit adds capability to invert output of
      vtkCookieCutter for all 2D, primary(including vtkPolygon),
      linear cells.
    - A new class `vtkCellClassification` helps in the cutting
      procedure. It is provided externally to the CookieCut
      methods.
    - Implements `vtkCell::CookieCut(..)` with similar
      signature as `vtkCell::Clip(..)` and `vtkCell::Contour(..)`
    - The implementation is present in vtkVertex.cxx,
      vtkLine.cxx and vtkPolygon.cxx
    - Composite cells are split up into constituent primary
      cells and each gets cut by clipper. (Just like contour)
    - Implementation for vtkVertex is straightforward.
    - For vtkLine, compute exterior strands just like the
      interior strands.
    - For vtkPolygon, a vtkMutableUndirectedGraph instance
      is used to weed out exterior edges from a set of
      interior edges.
    - Finally, resolve topo of each undirected graph, connect
      contiguous edges and output necessary polygons.
    - In case the output looks like a non-manifold graph,
      the procedure is aborted.
    - vtkQuad, vtkTriangle and vtkPixel shallow copy themselves
      into an instance of vtkPolygon which is then cut.
    - Add tests for vtkCookieCutter::InsideOutOff()
    15a83a5e