VTK  9.3.1
vtkAppendDataSets.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
33 #ifndef vtkAppendDataSets_h
34 #define vtkAppendDataSets_h
35 
36 #include "vtkFiltersCoreModule.h" // For export macro
37 #include "vtkPointSetAlgorithm.h"
38 
39 VTK_ABI_NAMESPACE_BEGIN
40 class vtkDataSet;
42 
43 class VTKFILTERSCORE_EXPORT vtkAppendDataSets : public vtkPointSetAlgorithm
44 {
45 public:
46  static vtkAppendDataSets* New();
48  void PrintSelf(ostream& os, vtkIndent indent) override;
49 
51 
56  vtkGetMacro(MergePoints, bool);
57  vtkSetMacro(MergePoints, bool);
58  vtkBooleanMacro(MergePoints, bool);
60 
62 
69  vtkSetClampMacro(Tolerance, double, 0.0, VTK_DOUBLE_MAX);
70  vtkGetMacro(Tolerance, double);
72 
74 
79  vtkSetMacro(ToleranceIsAbsolute, bool);
80  vtkGetMacro(ToleranceIsAbsolute, bool);
81  vtkBooleanMacro(ToleranceIsAbsolute, bool);
83 
85 
94  vtkSetMacro(OutputDataSetType, int);
95  vtkGetMacro(OutputDataSetType, int);
97 
99 
104  vtkSetClampMacro(OutputPointsPrecision, int, SINGLE_PRECISION, DEFAULT_PRECISION);
105  vtkGetMacro(OutputPointsPrecision, int);
107 
113 
114 protected:
116  ~vtkAppendDataSets() override;
117 
118  // Usual data generation method
119  int RequestDataObject(vtkInformation* request, vtkInformationVector** inputVector,
120  vtkInformationVector* outputVector) override;
122  virtual int RequestUpdateExtent(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
123  int FillInputPortInformation(int port, vtkInformation* info) override;
124 
125  // If true we will attempt to merge points. Must also not have
126  // ghost cells defined.
128 
129  // Tolerance used for point merging
130  double Tolerance;
131 
132  // If true, tolerance is used as is. If false, tolerance is multiplied by
133  // the diagonal of the bounding box of the input.
135 
136  // Output data set type.
138 
139  // Precision of output points.
141 
142 private:
143  vtkAppendDataSets(const vtkAppendDataSets&) = delete;
144  void operator=(const vtkAppendDataSets&) = delete;
145 
146  // Get all input data sets that have points, cells, or both.
147  // Caller must delete the returned vtkDataSetCollection.
148  vtkDataSetCollection* GetNonEmptyInputs(vtkInformationVector** inputVector);
149 };
150 
151 VTK_ABI_NAMESPACE_END
152 #endif
maintain an unordered list of dataset objects
#define VTK_DOUBLE_MAX
Definition: vtkType.h:154
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
Store vtkAlgorithm input/output information.
vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
see vtkAlgorithm for details
virtual int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
int vtkTypeBool
Definition: vtkABI.h:64
a simple class to control print indentation
Definition: vtkIndent.h:28
Superclass for algorithms that produce output of the same type as input.
Appends one or more datasets together into a single output vtkPointSet.
static vtkPointSetAlgorithm * New()
Store zero or more vtkInformation instances.