vtkAxisAlignedCutter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
38 #ifndef vtkAxisAlignedPlaneCutter_h
39 #define vtkAxisAlignedPlaneCutter_h
40 
41 #include "vtkAMRSliceFilter.h" // for vtkAMRSliceFilter
42 #include "vtkContourValues.h" // for vtkContourValues
43 #include "vtkDataObjectAlgorithm.h"
44 #include "vtkHyperTreeGridAxisCut.h" // for vtkHyperTreeGridAxisCut
45 #include "vtkImplicitFunction.h" // fir vtkImplicitFunction
46 #include "vtkPVVTKExtensionsFiltersGeneralModule.h" // for export macro
47 #include "vtkSmartPointer.h" // for vtkSmartPointer
48 
50 class vtkDataAssembly;
52 class vtkPartitionedDataSet;
53 class vtkPartitionedDataSetCollection;
54 class vtkPVPlane;
55 
57 {
58 public:
60  void PrintSelf(ostream& os, vtkIndent indent) override;
61  static vtkAxisAlignedCutter* New();
62 
64 
68  vtkSetSmartPointerMacro(CutFunction, vtkImplicitFunction);
69  vtkGetSmartPointerMacro(CutFunction, vtkImplicitFunction);
71 
77  vtkMTimeType GetMTime() override;
78 
80 
85  void SetOffsetValue(int i, double value);
86  double GetOffsetValue(int i);
88 
90 
94  void SetNumberOfOffsetValues(int number);
95  int GetNumberOfOffsetValues();
97 
99 
105  vtkSetMacro(LevelOfResolution, int);
106  vtkGetMacro(LevelOfResolution, int);
108 
109 protected:
111  ~vtkAxisAlignedCutter() override;
112 
115  int FillInputPortInformation(int, vtkInformation* info) override;
116 
117 private:
119  void operator=(const vtkAxisAlignedCutter&) = delete;
120 
124  void ProcessHTG(
125  vtkHyperTreeGrid* inputHTG, vtkPVPlane* plane, vtkPartitionedDataSetCollection* outputSlices);
126 
132  bool ProcessPDS(vtkPartitionedDataSet* inputPDS, vtkPVPlane* plane,
133  vtkPartitionedDataSetCollection* outputPDC, vtkDataAssembly* outputHierarchy, int nodeId);
134 
138  void CutHTGWithAAPlane(
139  vtkHyperTreeGrid* input, vtkHyperTreeGrid* output, vtkPVPlane* plane, double offset);
140 
144  void CutAMRWithAAPlane(vtkOverlappingAMR* input, vtkOverlappingAMR* output, vtkPVPlane* plane);
145 
148  vtkNew<vtkAMRSliceFilter> AMRCutter;
149  int LevelOfResolution = 0;
150  vtkNew<vtkContourValues> OffsetValues;
151 };
152 
154 
155 #endif
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
static vtkDataObjectAlgorithm * New()
#define VTK_ABI_NAMESPACE_END
vtkTypeUInt64 vtkMTimeType
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
Cut data with an Axis-Aligned cut function.
#define VTK_ABI_NAMESPACE_BEGIN
virtual vtkMTimeType GetMTime()
virtual int FillInputPortInformation(int port, vtkInformation *info)
#define VTKPVVTKEXTENSIONSFILTERSGENERAL_EXPORT
extends vtkPlane to add Offset parameter.
Definition: vtkPVPlane.h:19
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
void operator=(const vtkObjectBase &)