VTK  9.3.1
vtkPOutlineFilterInternals.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
15 #ifndef vtkPOutlineFilterInternals_h
16 #define vtkPOutlineFilterInternals_h
17 
18 #include "vtkBoundingBox.h" // needed for vtkBoundingBox.
19 #include "vtkFiltersParallelModule.h" // For export macro
20 #include <vector> // needed for std::vector
21 
22 VTK_ABI_NAMESPACE_BEGIN
23 class vtkBoundingBox;
24 class vtkDataObject;
25 class vtkDataObjectTree;
26 class vtkDataSet;
27 class vtkGraph;
28 class vtkInformation;
31 class vtkOverlappingAMR;
32 class vtkPolyData;
33 class vtkUniformGridAMR;
34 
35 class VTKFILTERSPARALLEL_EXPORT vtkPOutlineFilterInternals
36 {
37 public:
38  vtkPOutlineFilterInternals() = default;
39  virtual ~vtkPOutlineFilterInternals() = default;
40 
48 
53  void SetController(vtkMultiProcessController*);
54 
59  void SetIsCornerSource(bool value);
60 
65  void SetCornerFactor(double cornerFactor);
66 
67 private:
69  vtkPOutlineFilterInternals& operator=(const vtkPOutlineFilterInternals&) = delete;
70 
71  int RequestData(vtkOverlappingAMR* amr, vtkPolyData* output);
72  int RequestData(vtkUniformGridAMR* amr, vtkPolyData* output);
73  int RequestData(vtkDataObjectTree* cd, vtkPolyData* output);
74  int RequestData(vtkDataSet* ds, vtkPolyData* output);
75  int RequestData(vtkGraph* graph, vtkPolyData* output);
76 
77  void CollectCompositeBounds(vtkDataObject* input);
78  vtkSmartPointer<vtkPolyData> GenerateOutlineGeometry(double bounds[6]);
79 
80  std::vector<vtkBoundingBox> BoundsList;
81  vtkMultiProcessController* Controller = nullptr;
82 
83  bool IsCornerSource = false;
84  double CornerFactor = 0.2;
85 };
86 
87 VTK_ABI_NAMESPACE_END
88 #endif
89 // VTK-HeaderTest-Exclude: vtkPOutlineFilterInternals.h
provides implementation for most abstract methods in the superclass vtkCompositeDataSet ...
Store vtkAlgorithm input/output information.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:52
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
Base class for graph data types.
Definition: vtkGraph.h:280
create wireframe outline (or corners) for arbitrary data set
hierarchical dataset of vtkUniformGrids
Store zero or more vtkInformation instances.
general representation of visualization data
Definition: vtkDataObject.h:54
a concrete implementation of vtkCompositeDataSet
Fast, simple class for representing and operating on 3D bounds.
Multiprocessing communication superclass.