VTK  9.5.20250904
vtkSphereTreeFilter.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
32#ifndef vtkSphereTreeFilter_h
33#define vtkSphereTreeFilter_h
34
35#include "vtkFiltersCoreModule.h" // For export macro
37#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
38
39#define VTK_SPHERE_TREE_LEVELS 0
40#define VTK_SPHERE_TREE_POINT 1
41#define VTK_SPHERE_TREE_LINE 2
42#define VTK_SPHERE_TREE_PLANE 3
43
44VTK_ABI_NAMESPACE_BEGIN
45class vtkSphereTree;
46
47class VTKFILTERSCORE_EXPORT VTK_MARSHALAUTO vtkSphereTreeFilter : public vtkPolyDataAlgorithm
48{
49public:
54
56
60 void PrintSelf(ostream& os, vtkIndent indent) override;
62
64
68 vtkGetObjectMacro(SphereTree, vtkSphereTree);
70
72
80 vtkSetMacro(ExtractionMode, int);
81 vtkGetMacro(ExtractionMode, int);
82 void SetExtractionModeToLevels() { this->SetExtractionMode(VTK_SPHERE_TREE_LEVELS); }
83 void SetExtractionModeToPoint() { this->SetExtractionMode(VTK_SPHERE_TREE_POINT); }
84 void SetExtractionModeToLine() { this->SetExtractionMode(VTK_SPHERE_TREE_LINE); }
85 void SetExtractionModeToPlane() { this->SetExtractionMode(VTK_SPHERE_TREE_PLANE); }
88
90
95 vtkSetMacro(TreeHierarchy, bool);
96 vtkGetMacro(TreeHierarchy, bool);
97 vtkBooleanMacro(TreeHierarchy, bool);
99
101
108 vtkSetClampMacro(Level, int, -1, VTK_SHORT_MAX);
109 vtkGetMacro(Level, int);
111
113
117 vtkSetVector3Macro(Point, double);
118 vtkGetVectorMacro(Point, double, 3);
120
122
127 vtkSetVector3Macro(Ray, double);
128 vtkGetVectorMacro(Ray, double, 3);
130
132
136 vtkSetVector3Macro(Normal, double);
137 vtkGetVectorMacro(Normal, double, 3);
139
144
145protected:
148
152 int Level;
153 double Point[3];
154 double Ray[3];
155 double Normal[3];
156
158 int FillInputPortInformation(int port, vtkInformation* info) override;
159
161
162private:
164 void operator=(const vtkSphereTreeFilter&) = delete;
165};
166
167VTK_ABI_NAMESPACE_END
168#endif
Detect and break reference loops.
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
represent a sphere tree as vtkPolyData
void SetExtractionModeToLine()
Specify what information this filter is to extract from the sphere tree.
const char * GetExtractionModeAsString()
Specify what information this filter is to extract from the sphere tree.
virtual void SetSphereTree(vtkSphereTree *)
Specify and retrieve the sphere tree.
~vtkSphereTreeFilter() override
void SetExtractionModeToPlane()
Specify what information this filter is to extract from the sphere tree.
static vtkSphereTreeFilter * New()
Instantiate the sphere tree filter.
void SetExtractionModeToLevels()
Specify what information this filter is to extract from the sphere tree.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void ReportReferences(vtkGarbageCollector *) override
vtkMTimeType GetMTime() override
Modified GetMTime because the sphere tree may have changed.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard type related macros and PrintSelf() method.
void SetExtractionModeToPoint()
Specify what information this filter is to extract from the sphere tree.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
class to build and traverse sphere trees
#define VTK_SPHERE_TREE_POINT
#define VTK_SPHERE_TREE_LEVELS
#define VTK_SPHERE_TREE_LINE
#define VTK_SPHERE_TREE_PLANE
#define VTK_SHORT_MAX
Definition vtkType.h:157
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_MARSHALAUTO