VTK  9.7.1
vtkExtractGeometry.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
34 #ifndef vtkExtractGeometry_h
35 #define vtkExtractGeometry_h
36 
37 #include "vtkFiltersExtractionModule.h" // For export macro
38 #include "vtkNew.h" // for vtkNew
40 
41 VTK_ABI_NAMESPACE_BEGIN
42 
44 class vtkDataObjectTree;
46 
47 class VTKFILTERSEXTRACTION_EXPORT vtkExtractGeometry : public vtkUnstructuredGridAlgorithm
48 {
49 public:
51  void PrintSelf(ostream& os, vtkIndent indent) override;
52 
56  static vtkExtractGeometry* New();
57 
61  vtkMTimeType GetMTime() override;
62 
64 
67  virtual void SetImplicitFunction(vtkImplicitFunction*);
68  vtkGetObjectMacro(ImplicitFunction, vtkImplicitFunction);
70 
72 
77  vtkSetMacro(ExtractInside, vtkTypeBool);
78  vtkGetMacro(ExtractInside, vtkTypeBool);
79  vtkBooleanMacro(ExtractInside, vtkTypeBool);
81 
83 
87  vtkSetMacro(ExtractBoundaryCells, vtkTypeBool);
88  vtkGetMacro(ExtractBoundaryCells, vtkTypeBool);
89  vtkBooleanMacro(ExtractBoundaryCells, vtkTypeBool);
90  vtkSetMacro(ExtractOnlyBoundaryCells, vtkTypeBool);
91  vtkGetMacro(ExtractOnlyBoundaryCells, vtkTypeBool);
92  vtkBooleanMacro(ExtractOnlyBoundaryCells, vtkTypeBool);
94 
95 protected:
97  ~vtkExtractGeometry() override;
98 
99  // Usual data generation method
101 
103 
104  int FillInputPortInformation(int port, vtkInformation* info) override;
105 
107 
112 
113 private:
114  vtkExtractGeometry(const vtkExtractGeometry&) = delete;
115  void operator=(const vtkExtractGeometry&) = delete;
116 
120  void InitializeOutput(vtkDataObjectTree* input, vtkDataObjectTree* output);
121 
127  int ExtractLeaf(vtkInformation* request, vtkInformationVector** inputVector,
128  vtkInformationVector* outputVector);
129 
134  vtkSmartPointer<vtkInformationVector> DuplicateInfoForLeaf(
135  vtkInformationVector* inputInfo, vtkDataObject* leaf);
136 
138 };
139 
140 VTK_ABI_NAMESPACE_END
141 #endif
abstract interface for implicit functions
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
provides implementation for most abstract methods in the superclass vtkCompositeDataSet ...
Store vtkAlgorithm input/output information.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:318
vtkImplicitFunction * ImplicitFunction
vtkTypeBool ExtractBoundaryCells
static vtkUnstructuredGridAlgorithm * New()
Hold a reference to a vtkObjectBase instance.
Definition: vtkMeta.h:23
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
int vtkTypeBool
Definition: vtkABI.h:64
virtual int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool ExtractOnlyBoundaryCells
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual vtkMTimeType GetMTime()
Return this object's modified time.
Superclass for algorithms that produce only unstructured grid as output.
int FillOutputPortInformation(int port, vtkInformation *info) override
Fill the output port information objects for this algorithm.
Store zero or more vtkInformation instances.
vtkDataObjectMeshCache is a class to store and reuse the mesh of a vtkDataSet, while forwarding data ...
general representation of visualization data
Definition: vtkDataObject.h:55
extract cells that lie either entirely inside or outside of a specified implicit function ...