VTK  9.1.0
vtkPolyDataSilhouette.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkPolyDataSilhouette.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=========================================================================*/
67#ifndef vtkPolyDataSilhouette_h
68#define vtkPolyDataSilhouette_h
69
70#include "vtkFiltersHybridModule.h" // For export macro
72
73class vtkCamera;
74class vtkProp3D;
75class vtkTransform;
76class vtkPolyDataEdges;
77
78class VTKFILTERSHYBRID_EXPORT vtkPolyDataSilhouette : public vtkPolyDataAlgorithm
79{
80public:
85
87 void PrintSelf(ostream& os, vtkIndent indent) override;
88
90
93 vtkSetMacro(EnableFeatureAngle, int);
94 vtkGetMacro(EnableFeatureAngle, int);
96
98
101 vtkSetMacro(FeatureAngle, double);
102 vtkGetMacro(FeatureAngle, double);
104
106
110 vtkSetMacro(BorderEdges, vtkTypeBool);
111 vtkGetMacro(BorderEdges, vtkTypeBool);
112 vtkBooleanMacro(BorderEdges, vtkTypeBool);
114
116
120 vtkSetMacro(PieceInvariant, vtkTypeBool);
121 vtkGetMacro(PieceInvariant, vtkTypeBool);
122 vtkBooleanMacro(PieceInvariant, vtkTypeBool);
124
126 {
127 VTK_DIRECTION_SPECIFIED_VECTOR = 0,
128 VTK_DIRECTION_SPECIFIED_ORIGIN = 1,
129 VTK_DIRECTION_CAMERA_ORIGIN = 2,
130 VTK_DIRECTION_CAMERA_VECTOR = 3
131 };
132
134
138 vtkSetMacro(Direction, int);
139 vtkGetMacro(Direction, int);
140 void SetDirectionToSpecifiedVector() { this->SetDirection(VTK_DIRECTION_SPECIFIED_VECTOR); }
141 void SetDirectionToSpecifiedOrigin() { this->SetDirection(VTK_DIRECTION_SPECIFIED_ORIGIN); }
142 void SetDirectionToCameraVector() { this->SetDirection(VTK_DIRECTION_CAMERA_VECTOR); }
143 void SetDirectionToCameraOrigin() { this->SetDirection(VTK_DIRECTION_CAMERA_ORIGIN); }
145
147
152 virtual void SetCamera(vtkCamera VTK_WRAP_EXTERN*);
153 vtkGetObjectMacro(Camera, vtkCamera VTK_WRAP_EXTERN);
155
157
164 void SetProp3D(vtkProp3D VTK_WRAP_EXTERN*);
165 vtkProp3D VTK_WRAP_EXTERN* GetProp3D();
167
169
174 vtkSetVector3Macro(Vector, double);
175 vtkGetVectorMacro(Vector, double, 3);
177
179
184 vtkSetVector3Macro(Origin, double);
185 vtkGetVectorMacro(Origin, double, 3);
187
193
194protected:
197
199 void ComputeProjectionVector(double vector[3], double origin[3]);
200
205 double Vector[3];
206 double Origin[3];
207
210
213
214 vtkPolyDataEdges* PreComp; // precomputed data for a given point of view
215
216private:
218 void operator=(const vtkPolyDataSilhouette&) = delete;
219};
220
221#endif
a virtual camera for 3D rendering
Definition: vtkCamera.h:155
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
sort polydata along camera view direction
void SetDirectionToSpecifiedVector()
Specify how view direction is computed.
void SetDirectionToCameraOrigin()
Specify how view direction is computed.
~vtkPolyDataSilhouette() override
vtkPolyDataEdges * PreComp
void SetDirectionToCameraVector()
Specify how view direction is computed.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetProp3D(vtkProp3D VTK_WRAP_EXTERN *)
Specify a transformation matrix (via the vtkProp3D::GetMatrix() method) that is used to include the e...
vtkMTimeType GetMTime() override
Return MTime also considering the dependent objects: the camera and/or the prop3D.
vtkProp3D VTK_WRAP_EXTERN * GetProp3D()
Specify a transformation matrix (via the vtkProp3D::GetMatrix() method) that is used to include the e...
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void ComputeProjectionVector(double vector[3], double origin[3])
static vtkPolyDataSilhouette * New()
Instantiate object.
void SetDirectionToSpecifiedOrigin()
Specify how view direction is computed.
virtual void SetCamera(vtkCamera VTK_WRAP_EXTERN *)
Specify a camera that is used to define the view direction.
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:93
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:164
@ vector
Definition: vtkX3D.h:243
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287