/*========================================================================= Program: Visualization Toolkit Module: vtkGenericCutter.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 vtkGenericCutter * @brief cut a vtkGenericDataSet with an implicit function or scalar data * * vtkGenericCutter is a filter to cut through data using any subclass of * vtkImplicitFunction. That is, a polygonal surface is created * corresponding to the implicit function F(x,y,z) = value(s), where * you can specify one or more values used to cut with. * * In VTK, cutting means reducing a cell of dimension N to a cut surface * of dimension N-1. For example, a tetrahedron when cut by a plane (i.e., * vtkPlane implicit function) will generate triangles. (In comparison, * clipping takes a N dimensional cell and creates N dimension primitives.) * * vtkGenericCutter is generally used to "slice-through" a dataset, generating * a surface that can be visualized. It is also possible to use * vtkGenericCutter to do a form of volume rendering. vtkGenericCutter does * this by generating multiple cut surfaces (usually planes) which are ordered * (and rendered) from back-to-front. The surfaces are set translucent to give * a volumetric rendering effect. * * This filter has been implemented to operate on generic datasets, rather * than the typical vtkDataSet (and subclasses). vtkGenericDataSet is a more * complex cousin of vtkDataSet, typically consisting of nonlinear, * higher-order cells. To process this type of data, generic cells are * automatically tessellated into linear cells prior to isocontouring. * * @sa * vtkCutter vtkImplicitFunction vtkClipPolyData vtkGenericDataSet */ #ifndef vtkGenericCutter_h #define vtkGenericCutter_h #include "vtkFiltersGenericModule.h" // For export macro #include "vtkPolyDataAlgorithm.h" class vtkContourValues; class vtkImplicitFunction; class vtkIncrementalPointLocator; class vtkPointData; class vtkCellData; class VTKFILTERSGENERIC_EXPORT vtkGenericCutter : public vtkPolyDataAlgorithm { public: vtkTypeMacro(vtkGenericCutter, vtkPolyDataAlgorithm); void PrintSelf(ostream& os, vtkIndent indent) override; /** * Construct with user-specified implicit function; initial value of 0.0; and * generating cut scalars turned off. */ static vtkGenericCutter* New(); /** * Set a particular contour value at contour number i. The index i ranges * between 0<=i