VTK  9.2.5
vtk3DLinearGridPlaneCutter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtk3DLinearGridPlaneCutter.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 =========================================================================*/
75 #ifndef vtk3DLinearGridPlaneCutter_h
76 #define vtk3DLinearGridPlaneCutter_h
77 
78 #include "vtkDataObjectAlgorithm.h"
79 #include "vtkFiltersCoreModule.h" // For export macro
80 
81 class vtkPlane;
83 class vtkSphereTree;
84 class vtkPolyData;
85 
86 class VTKFILTERSCORE_EXPORT vtk3DLinearGridPlaneCutter : public vtkDataObjectAlgorithm
87 {
88 public:
90 
95  void PrintSelf(ostream& os, vtkIndent indent) override;
97 
99 
104  virtual void SetPlane(vtkPlane*);
105  vtkGetObjectMacro(Plane, vtkPlane);
107 
109 
115  vtkSetMacro(MergePoints, bool);
116  vtkGetMacro(MergePoints, bool);
117  vtkBooleanMacro(MergePoints, bool);
119 
121 
125  vtkSetMacro(InterpolateAttributes, bool);
126  vtkGetMacro(InterpolateAttributes, bool);
127  vtkBooleanMacro(InterpolateAttributes, bool);
129 
131 
137  vtkSetMacro(ComputeNormals, bool);
138  vtkGetMacro(ComputeNormals, bool);
139  vtkBooleanMacro(ComputeNormals, bool);
141 
146  vtkMTimeType GetMTime() override;
147 
149 
154  void SetOutputPointsPrecision(int precision);
157 
159 
167  vtkSetMacro(SequentialProcessing, bool);
168  vtkGetMacro(SequentialProcessing, bool);
169  vtkBooleanMacro(SequentialProcessing, bool);
171 
176  int GetNumberOfThreadsUsed() { return this->NumberOfThreadsUsed; }
177 
186  bool GetLargeIds() { return this->LargeIds; }
187 
195 
196 protected:
199 
207  bool LargeIds; // indicate whether integral ids are large(==true) or not
208 
209  // Process the data: input unstructured grid and output polydata
210  int ProcessPiece(vtkUnstructuredGrid* input, vtkPlane* plane, vtkPolyData* output);
211 
213  vtkInformationVector* outputVector) override;
214  int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
215  vtkInformationVector* outputVector) override;
217 
218 private:
220  void operator=(const vtk3DLinearGridPlaneCutter&) = delete;
221 };
222 
223 #endif
fast plane cutting of vtkUnstructuredGrid containing 3D linear cells
void SetOutputPointsPrecision(int precision)
Set/get the desired precision for the output points.
int GetNumberOfThreadsUsed()
Return the number of threads actually used during execution.
~vtk3DLinearGridPlaneCutter() override
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
int GetOutputPointsPrecision() const
Set/get the desired precision for the output points.
int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called by the superclass.
virtual void SetPlane(vtkPlane *)
Specify the plane (an implicit function) to perform the cutting.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for construction, type info, and printing.
static vtk3DLinearGridPlaneCutter * New()
Standard methods for construction, type info, and printing.
bool GetLargeIds()
Inform the user as to whether large ids were used during filter execution.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
int ProcessPiece(vtkUnstructuredGrid *input, vtkPlane *plane, vtkPolyData *output)
static bool CanFullyProcessDataObject(vtkDataObject *object)
Returns true if the data object passed in is fully supported by this filter, i.e.,...
vtkMTimeType GetMTime() override
Overloaded GetMTime() because of delegation to the helper vtkPlane.
Superclass for algorithms that produce only data object as output.
general representation of visualization data
a simple class to control print indentation
Definition: vtkIndent.h:119
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
perform various plane computations
Definition: vtkPlane.h:146
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:200
class to build and traverse sphere trees
Definition: vtkSphereTree.h:73
dataset represents arbitrary combinations of all possible cell types
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287