VTK  9.3.20240329
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 
71 
73 
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 
132  vtkGetObjectMacro(Locator, vtkIncrementalPointLocator);
134 
140 
141 protected:
143  ~vtkCookieCutter() override;
144 
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
Proxy object to connect input/output ports.
cut vtkPolyData defined on the 2D plane with one or more polygons
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void CreateDefaultLocator()
Create default locator.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods to instantiate, print and provide type information.
vtkIncrementalPointLocator * Locator
vtkDataObject * GetLoops()
Specify the a second vtkPolyData input which defines trim loops used to cut the input polygonal data.
void SetLoopsConnection(vtkAlgorithmOutput *algOutput)
Specify the a second vtkPolyData input which defines trim loops used to cut the input polygonal data.
void SetPointInterpolationToMeshEdges()
If PassPointData is on, indicate how new point data is to generated at the intersection points betwee...
vtkAlgorithmOutput * GetLoopsConnection()
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
int FillInputPortInformation(int, vtkInformation *) override
Fill the input port information objects for this algorithm.
void SetLocator(vtkIncrementalPointLocator *locator)
Specify a spatial locator for merging points.
~vtkCookieCutter() override
void SetLoopsData(vtkDataObject *loops)
Specify the a second vtkPolyData input which defines trim loops used to cut the input polygonal data.
void SetPointInterpolationToLoopEdges()
If PassPointData is on, indicate how new point data is to generated at the intersection points betwee...
static vtkCookieCutter * New()
Standard methods to instantiate, print and provide type information.
general representation of visualization data
Abstract class in support of both point location and point insertion.
a simple class to control print indentation
Definition: vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.