VTK  9.3.1
vtkCookieCutter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
43 #ifndef vtkCookieCutter_h
44 #define vtkCookieCutter_h
45 
46 #include "vtkFiltersModelingModule.h" // For export macro
47 #include "vtkPolyDataAlgorithm.h"
48 
49 VTK_ABI_NAMESPACE_BEGIN
50 class VTKFILTERSMODELING_EXPORT vtkCookieCutter : public vtkPolyDataAlgorithm
51 {
52 public:
54 
57  static vtkCookieCutter* New();
59  void PrintSelf(ostream& os, vtkIndent indent) override;
61 
69  void SetLoopsConnection(vtkAlgorithmOutput* algOutput);
70  vtkAlgorithmOutput* GetLoopsConnection();
71 
73 
79  void SetLoopsData(vtkDataObject* loops);
80  vtkDataObject* GetLoops();
82 
84 
88  vtkSetMacro(PassCellData, bool);
89  vtkGetMacro(PassCellData, bool);
90  vtkBooleanMacro(PassCellData, bool);
92 
94 
102  vtkSetMacro(PassPointData, bool);
103  vtkGetMacro(PassPointData, bool);
104  vtkBooleanMacro(PassPointData, bool);
106 
108  {
109  USE_MESH_EDGES = 0,
110  USE_LOOP_EDGES = 1
111  };
112 
114 
120  vtkSetClampMacro(PointInterpolation, int, USE_MESH_EDGES, USE_LOOP_EDGES);
121  vtkGetMacro(PointInterpolation, int);
122  void SetPointInterpolationToMeshEdges() { this->SetPointInterpolation(USE_MESH_EDGES); }
123  void SetPointInterpolationToLoopEdges() { this->SetPointInterpolation(USE_LOOP_EDGES); }
125 
127 
131  void SetLocator(vtkIncrementalPointLocator* locator);
132  vtkGetObjectMacro(Locator, vtkIncrementalPointLocator);
134 
139  void CreateDefaultLocator();
140 
141 protected:
142  vtkCookieCutter();
143  ~vtkCookieCutter() override;
144 
147  int FillInputPortInformation(int, vtkInformation*) override;
148 
152 
154 
155 private:
156  vtkCookieCutter(const vtkCookieCutter&) = delete;
157  void operator=(const vtkCookieCutter&) = delete;
158 };
159 
160 VTK_ABI_NAMESPACE_END
161 #endif
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
Abstract class in support of both point location and point insertion.
cut vtkPolyData defined on the 2D plane with one or more polygons
Proxy object to connect input/output ports.
static vtkPolyDataAlgorithm * New()
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:28
void SetPointInterpolationToLoopEdges()
If PassPointData is on, indicate how new point data is to generated at the intersection points betwee...
vtkIncrementalPointLocator * Locator
void SetPointInterpolationToMeshEdges()
If PassPointData is on, indicate how new point data is to generated at the intersection points betwee...
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
Store zero or more vtkInformation instances.
general representation of visualization data
Definition: vtkDataObject.h:54
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.