VTK  9.2.6
vtkSelectVisiblePoints.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkSelectVisiblePoints.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=========================================================================*/
51#ifndef vtkSelectVisiblePoints_h
52#define vtkSelectVisiblePoints_h
53
55#include "vtkRenderingCoreModule.h" // For export macro
56
57class vtkRenderer;
58class vtkMatrix4x4;
59
60class VTKRENDERINGCORE_EXPORT vtkSelectVisiblePoints : public vtkPolyDataAlgorithm
61{
62public:
64 void PrintSelf(ostream& os, vtkIndent indent) override;
65
71
73
78 {
79 if (this->Renderer != ren)
80 {
81 this->Renderer = ren;
82 this->Modified();
83 }
84 }
85 vtkRenderer* GetRenderer() { return this->Renderer; }
87
89
93 vtkSetMacro(SelectionWindow, vtkTypeBool);
94 vtkGetMacro(SelectionWindow, vtkTypeBool);
95 vtkBooleanMacro(SelectionWindow, vtkTypeBool);
97
99
103 vtkSetVector4Macro(Selection, int);
104 vtkGetVectorMacro(Selection, int, 4);
106
108
112 vtkSetMacro(SelectInvisible, vtkTypeBool);
113 vtkGetMacro(SelectInvisible, vtkTypeBool);
114 vtkBooleanMacro(SelectInvisible, vtkTypeBool);
116
118
124 vtkSetClampMacro(Tolerance, double, 0.0, VTK_DOUBLE_MAX);
125 vtkGetMacro(Tolerance, double);
127
129
136 vtkSetClampMacro(ToleranceWorld, double, 0.0, VTK_DOUBLE_MAX);
137 vtkGetMacro(ToleranceWorld, double);
139
144 float* Initialize(bool getZbuff);
145
150 bool IsPointOccluded(const double x[3], const float* zPtr);
151
156
157protected:
160
162 int FillInputPortInformation(int port, vtkInformation* info) override;
163
166
168 int Selection[4];
169 int InternalSelection[4];
171 double DirectionOfProjection[3];
172 double Tolerance;
174
175private:
177 void operator=(const vtkSelectVisiblePoints&) = delete;
178};
179
180#endif
a simple class to control print indentation
Definition vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
represent and manipulate 4x4 transformation matrices
virtual void Modified()
Update the modification time for this object.
Superclass for algorithms that produce only polydata as output.
abstract specification for renderers
Definition vtkRenderer.h:73
extract points that are visible (based on z-buffer calculation)
vtkMatrix4x4 * CompositePerspectiveTransform
~vtkSelectVisiblePoints() override
void SetRenderer(vtkRenderer *ren)
Specify the renderer in which the visibility computation is to be performed.
vtkMTimeType GetMTime() override
Return MTime also considering the renderer.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkRenderer * GetRenderer()
Specify the renderer in which the visibility computation is to be performed.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
static vtkSelectVisiblePoints * New()
Instantiate object with no renderer; window selection turned off; tolerance set to 0....
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
float * Initialize(bool getZbuff)
Requires the renderer to be set.
bool IsPointOccluded(const double x[3], const float *zPtr)
Tests if a point x is being occluded or not against the Z-Buffer array passed in by zPtr.
int vtkTypeBool
Definition vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition vtkType.h:287
#define VTK_DOUBLE_MAX
Definition vtkType.h:165