1 /*========================================================================= 2 3 Program: Visualization Toolkit 4 Module: vtkEdgePoints.h 5 6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 7 All rights reserved. 8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 9 10 This software is distributed WITHOUT ANY WARRANTY; without even 11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 12 PURPOSE. See the above copyright notice for more information. 13 14 =========================================================================*/ 15 /** 16 * @class vtkEdgePoints 17 * @brief generate points on isosurface 18 * 19 * vtkEdgePoints is a filter that takes as input any dataset and 20 * generates for output a set of points that lie on an isosurface. The 21 * points are created by interpolation along cells edges whose end-points are 22 * below and above the contour value. 23 * @warning 24 * vtkEdgePoints can be considered a "poor man's" dividing cubes algorithm 25 * (see vtkDividingCubes). Points are generated only on the edges of cells, 26 * not in the interior, and at lower density than dividing cubes. However, it 27 * is more general than dividing cubes since it treats any type of dataset. 28 */ 29 30 #ifndef vtkEdgePoints_h 31 #define vtkEdgePoints_h 32 33 #include "vtkFiltersGeneralModule.h" // For export macro 34 #include "vtkPolyDataAlgorithm.h" 35 36 class vtkMergePoints; 37 38 class VTKFILTERSGENERAL_EXPORT vtkEdgePoints : public vtkPolyDataAlgorithm 39 { 40 public: 41 vtkTypeMacro(vtkEdgePoints, vtkPolyDataAlgorithm); 42 void PrintSelf(ostream& os, vtkIndent indent) override; 43 44 /** 45 * Construct object with contour value of 0.0. 46 */ 47 static vtkEdgePoints* New(); 48 49 ///@{ 50 /** 51 * Set/get the contour value. 52 */ 53 vtkSetMacro(Value, double); 54 vtkGetMacro(Value, double); 55 ///@} 56 57 protected: 58 vtkEdgePoints(); 59 ~vtkEdgePoints() override; 60 61 int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override; 62 int FillInputPortInformation(int port, vtkInformation* info) override; 63 64 double Value; 65 vtkMergePoints* Locator; 66 67 private: 68 vtkEdgePoints(const vtkEdgePoints&) = delete; 69 void operator=(const vtkEdgePoints&) = delete; 70 }; 71 72 #endif 73