VTK  9.2.6
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 
80  void SetLoopsConnection(vtkAlgorithmOutput* algOutput);
81  vtkAlgorithmOutput* GetLoopsConnection();
82 
84 
90  void SetLoopsData(vtkDataObject* loops);
91  vtkDataObject* GetLoops();
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 
142  void SetLocator(vtkIncrementalPointLocator* locator);
143  vtkGetObjectMacro(Locator, vtkIncrementalPointLocator);
145 
150  void CreateDefaultLocator();
151 
152 protected:
153  vtkCookieCutter();
154  ~vtkCookieCutter() override;
155 
158  int FillInputPortInformation(int, vtkInformation*) override;
159 
163 
165 
166 private:
167  vtkCookieCutter(const vtkCookieCutter&) = delete;
168  void operator=(const vtkCookieCutter&) = delete;
169 };
170 
171 #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:39
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:65
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.