VTK  9.2.5
vtkCookieCutter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCookieCutter.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 =========================================================================*/
55 #ifndef vtkCookieCutter_h
56 #define vtkCookieCutter_h
57 
58 #include "vtkFiltersModelingModule.h" // For export macro
59 #include "vtkPolyDataAlgorithm.h"
60 
61 class VTKFILTERSMODELING_EXPORT vtkCookieCutter : public vtkPolyDataAlgorithm
62 {
63 public:
65 
68  static vtkCookieCutter* New();
70  void PrintSelf(ostream& os, vtkIndent indent) override;
72 
82 
84 
93 
95 
99  vtkSetMacro(PassCellData, bool);
100  vtkGetMacro(PassCellData, bool);
101  vtkBooleanMacro(PassCellData, bool);
103 
105 
113  vtkSetMacro(PassPointData, bool);
114  vtkGetMacro(PassPointData, bool);
115  vtkBooleanMacro(PassPointData, bool);
117 
119  {
120  USE_MESH_EDGES = 0,
121  USE_LOOP_EDGES = 1
122  };
123 
125 
131  vtkSetClampMacro(PointInterpolation, int, USE_MESH_EDGES, USE_LOOP_EDGES);
132  vtkGetMacro(PointInterpolation, int);
133  void SetPointInterpolationToMeshEdges() { this->SetPointInterpolation(USE_MESH_EDGES); }
134  void SetPointInterpolationToLoopEdges() { this->SetPointInterpolation(USE_LOOP_EDGES); }
136 
138 
143  vtkGetObjectMacro(Locator, vtkIncrementalPointLocator);
145 
151 
152 protected:
154  ~vtkCookieCutter() override;
155 
159 
163 
165 
166 private:
167  vtkCookieCutter(const vtkCookieCutter&) = delete;
168  void operator=(const vtkCookieCutter&) = delete;
169 };
170 
171 #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:119
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.