VTK  9.0.2
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 =========================================================================*/
72 #ifndef vtk3DLinearGridPlaneCutter_h
73 #define vtk3DLinearGridPlaneCutter_h
74 
75 #include "vtkDataObjectAlgorithm.h"
76 #include "vtkFiltersCoreModule.h" // For export macro
77 
78 class vtkPlane;
80 class vtkSphereTree;
81 class vtkPolyData;
82 
83 class VTKFILTERSCORE_EXPORT vtk3DLinearGridPlaneCutter : public vtkDataObjectAlgorithm
84 {
85 public:
87 
92  void PrintSelf(ostream& os, vtkIndent indent) override;
94 
96 
101  virtual void SetPlane(vtkPlane*);
102  vtkGetObjectMacro(Plane, vtkPlane);
104 
106 
112  vtkSetMacro(MergePoints, vtkTypeBool);
113  vtkGetMacro(MergePoints, vtkTypeBool);
114  vtkBooleanMacro(MergePoints, vtkTypeBool);
116 
118 
122  vtkSetMacro(InterpolateAttributes, vtkTypeBool);
123  vtkGetMacro(InterpolateAttributes, vtkTypeBool);
124  vtkBooleanMacro(InterpolateAttributes, vtkTypeBool);
126 
128 
134  vtkSetMacro(ComputeNormals, vtkTypeBool);
135  vtkGetMacro(ComputeNormals, vtkTypeBool);
136  vtkBooleanMacro(ComputeNormals, vtkTypeBool);
138 
143  vtkMTimeType GetMTime() override;
144 
146 
151  void SetOutputPointsPrecision(int precision);
154 
156 
164  vtkSetMacro(SequentialProcessing, vtkTypeBool);
165  vtkGetMacro(SequentialProcessing, vtkTypeBool);
166  vtkBooleanMacro(SequentialProcessing, vtkTypeBool);
168 
173  int GetNumberOfThreadsUsed() { return this->NumberOfThreadsUsed; }
174 
183  bool GetLargeIds() { return this->LargeIds; }
184 
192 
193 protected:
196 
204  bool LargeIds; // indicate whether integral ids are large(==true) or not
205 
206  // Process the data: input unstructured grid and output polydata
207  int ProcessPiece(vtkUnstructuredGrid* input, vtkPlane* plane, vtkPolyData* output);
208 
210  vtkInformationVector* outputVector) override;
211  int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
212  vtkInformationVector* outputVector) override;
214 
215 private:
217  void operator=(const vtk3DLinearGridPlaneCutter&) = delete;
218 };
219 
220 #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
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
Methods invoked by print to print information about the object including superclasses.
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
Definition: vtkDataObject.h:60
a simple class to control print indentation
Definition: vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
perform various plane computations
Definition: vtkPlane.h:32
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
class to build and traverse sphere trees
Definition: vtkSphereTree.h:70
dataset represents arbitrary combinations of all possible cell types
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:293