VTK  9.2.6
vtkPOutlineFilterInternals.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPOutlineFilterInternals.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
27 #ifndef vtkPOutlineFilterInternals_h
28 #define vtkPOutlineFilterInternals_h
29 
30 #include "vtkBoundingBox.h" // needed for vtkBoundingBox.
31 #include "vtkFiltersParallelModule.h" // For export macro
32 #include <vector> // needed for std::vector
33 
34 class vtkBoundingBox;
35 class vtkDataObject;
36 class vtkDataObjectTree;
37 class vtkDataSet;
38 class vtkGraph;
39 class vtkInformation;
42 class vtkOverlappingAMR;
43 class vtkPolyData;
44 class vtkUniformGridAMR;
45 
46 class VTKFILTERSPARALLEL_EXPORT vtkPOutlineFilterInternals
47 {
48 public:
49  vtkPOutlineFilterInternals() = default;
50  virtual ~vtkPOutlineFilterInternals() = default;
51 
59 
64  void SetController(vtkMultiProcessController*);
65 
70  void SetIsCornerSource(bool value);
71 
76  void SetCornerFactor(double cornerFactor);
77 
78 private:
80  vtkPOutlineFilterInternals& operator=(const vtkPOutlineFilterInternals&) = delete;
81 
82  int RequestData(vtkOverlappingAMR* amr, vtkPolyData* output);
83  int RequestData(vtkUniformGridAMR* amr, vtkPolyData* output);
84  int RequestData(vtkDataObjectTree* cd, vtkPolyData* output);
85  int RequestData(vtkDataSet* ds, vtkPolyData* output);
86  int RequestData(vtkGraph* graph, vtkPolyData* output);
87 
88  void CollectCompositeBounds(vtkDataObject* input);
89  vtkSmartPointer<vtkPolyData> GenerateOutlineGeometry(double bounds[6]);
90 
91  std::vector<vtkBoundingBox> BoundsList;
92  vtkMultiProcessController* Controller = nullptr;
93 
94  bool IsCornerSource = false;
95  double CornerFactor = 0.2;
96 };
97 
98 #endif
99 // 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:62
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:90
Base class for graph data types.
Definition: vtkGraph.h:295
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:65
a concrete implementation of vtkCompositeDataSet
Fast, simple class for representing and operating on 3D bounds.
Multiprocessing communication superclass.