VTK  9.3.1
vtkToImplicitArrayFilter.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
3 // Funded by CEA, DAM, DIF, F-91297 Arpajon, France
4 #ifndef vtkToImplicitArrayFilter_h
5 #define vtkToImplicitArrayFilter_h
6 
7 #include "vtkFiltersReductionModule.h" // for module export
9 
10 #include <memory>
11 
12 VTK_ABI_NAMESPACE_BEGIN
13 
42 class VTKFILTERSREDUCTION_EXPORT vtkToImplicitArrayFilter : public vtkPassInputTypeAlgorithm
43 {
44 public:
45  static vtkToImplicitArrayFilter* New();
47  void PrintSelf(std::ostream& os, vtkIndent indent) override;
48 
50 
56  vtkGetMacro(UseMaxNumberOfDegreesOfFreedom, bool);
57  vtkSetMacro(UseMaxNumberOfDegreesOfFreedom, bool);
58  vtkBooleanMacro(UseMaxNumberOfDegreesOfFreedom, bool);
60 
62 
70  vtkGetMacro(MaxNumberOfDegreesOfFreedom, std::size_t);
71  vtkSetMacro(MaxNumberOfDegreesOfFreedom, std::size_t);
73 
75 
80  vtkGetMacro(TargetReduction, double);
81  vtkSetMacro(TargetReduction, double);
83 
85 
88  void SetStrategy(vtkToImplicitStrategy*);
89  const vtkToImplicitStrategy* GetStrategy() const;
91 
93 
96  vtkDataArraySelection* GetArraySelection(int association);
97  vtkDataArraySelection* GetPointDataArraySelection();
98  vtkDataArraySelection* GetCellDataArraySelection();
99  vtkDataArraySelection* GetFieldDataArraySelection();
100  vtkDataArraySelection* GetPointsThenCellsDataArraySelection();
101  vtkDataArraySelection* GetVertexDataArraySelection();
102  vtkDataArraySelection* GetEdgeDataArraySelection();
103  vtkDataArraySelection* GetRowDataArraySelection();
105 
106 protected:
108  ~vtkToImplicitArrayFilter() override;
109 
111 
112  bool UseMaxNumberOfDegreesOfFreedom = false;
113  std::size_t MaxNumberOfDegreesOfFreedom = 100;
114 
115  double TargetReduction = 0.1;
116 
117 private:
119  void operator=(const vtkToImplicitArrayFilter&) = delete;
120 
121  struct vtkInternals;
122  std::unique_ptr<vtkInternals> Internals;
123 };
124 VTK_ABI_NAMESPACE_END
125 
126 #endif // vtkToImplicitArrayFilter_h
A VTK filter for compressing explicit memory arrays into implicit arrays.
Superclass for algorithms that produce output of the same type as input.
Store vtkAlgorithm input/output information.
Pure interface for strategies to transform explicit arrays into implicit arrays.
a simple class to control print indentation
Definition: vtkIndent.h:28
Store on/off settings for data arrays, etc.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Store zero or more vtkInformation instances.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
static vtkPassInputTypeAlgorithm * New()