1 /*=========================================================================
2 
3   Program:   Visualization Toolkit
4   Module:    vtkExtractEdges.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   vtkExtractEdges
17  * @brief   extract cell edges from any type of data
18  *
19  * vtkExtractEdges is a filter to extract edges from a dataset. Edges
20  * are extracted as lines or polylines.
21  *
22  * @sa
23  * vtkFeatureEdges
24 */
25 
26 #ifndef vtkExtractEdges_h
27 #define vtkExtractEdges_h
28 
29 #include "vtkFiltersExtractionModule.h" // For export macro
30 #include "vtkPolyDataAlgorithm.h"
31 
32 class vtkIncrementalPointLocator;
33 
34 class VTKFILTERSEXTRACTION_EXPORT vtkExtractEdges : public vtkPolyDataAlgorithm
35 {
36 public:
37   static vtkExtractEdges *New();
38   vtkTypeMacro(vtkExtractEdges,vtkPolyDataAlgorithm);
39   void PrintSelf(ostream& os, vtkIndent indent) override;
40 
41   //@{
42   /**
43    * Set / get a spatial locator for merging points. By
44    * default an instance of vtkMergePoints is used.
45    */
46   void SetLocator(vtkIncrementalPointLocator *locator);
47   vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
48   //@}
49 
50   /**
51    * Create default locator. Used to create one when none is specified.
52    */
53   void CreateDefaultLocator();
54 
55   /**
56    * Return MTime also considering the locator.
57    */
58   vtkMTimeType GetMTime() override;
59 
60 protected:
61   vtkExtractEdges();
62   ~vtkExtractEdges() override;
63 
64   // Usual data generation method
65   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override;
66 
67   int FillInputPortInformation(int port, vtkInformation *info) override;
68 
69   vtkIncrementalPointLocator *Locator;
70 private:
71   vtkExtractEdges(const vtkExtractEdges&) = delete;
72   void operator=(const vtkExtractEdges&) = delete;
73 };
74 
75 #endif
76 
77 
78