text: /*=========================================================================
  
    Program:   Visualization Toolkit
    Module:    vtkContourHelper.h
  
    Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
    All rights reserved.
    See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
  
       This software is distributed WITHOUT ANY WARRANTY; without even
       the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
       PURPOSE.  See the above copyright notice for more information.
  
  =========================================================================*/
  /**
   * @class   vtkContourHelper
   * @brief   A utility class used by various contour filters
   *
   *  This is a simple utility class that can be used by various contour filters to
   *  produce either triangles and/or polygons based on the outputTriangles parameter
   *  When working with multidimensional dataset, it is needed to process cells
   *  from low to high dimensions.
   * @sa
   * vtkContourGrid vtkCutter vtkContourFilter
  */
  
  #ifndef vtkContourHelper_h
  #define vtkContourHelper_h
  
  #include "vtkFiltersCoreModule.h" // For export macro
  #include "vtkSmartPointer.h" //for a member variable
  #include "vtkPolygonBuilder.h" //for a member variable
  
  class vtkIncrementalPointLocator;
  class vtkCellArray;
  class vtkPointData;
  class vtkCellData;
  class vtkCell;
  class vtkDataArray;
  class vtkIdListCollection;
  
  class VTKFILTERSCORE_EXPORT vtkContourHelper
  {
  public:
    vtkContourHelper(vtkIncrementalPointLocator *locator,
                   vtkCellArray *verts,
                   vtkCellArray *lines,
                   vtkCellArray* polys,
                   vtkPointData *inPd,
                   vtkCellData *inCd,
                   vtkPointData* outPd,
                   vtkCellData *outCd,
                   int estimatedSize,
                   bool outputTriangles);
    ~vtkContourHelper();
    void Contour(vtkCell* cell, double value, vtkDataArray *cellScalars, vtkIdType cellId);
  
   private:
    vtkContourHelper(const vtkContourHelper&) = delete;
    vtkContourHelper& operator=(const vtkContourHelper&) = delete;
  
    vtkIncrementalPointLocator* Locator;
    vtkCellArray* Verts;
    vtkCellArray* Lines;
    vtkCellArray* Polys;
    vtkPointData* InPd;
    vtkCellData* InCd;
    vtkPointData* OutPd;
    vtkCellData* OutCd;
    vtkSmartPointer<vtkCellData> TriOutCd;
  
    vtkCellArray* Tris;
    vtkPolygonBuilder PolyBuilder;
    vtkIdListCollection* PolyCollection;
    bool GenerateTriangles;
  };
  
  #endif
  // VTK-HeaderTest-Exclude: vtkContourHelper.h
  