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=========================================================================*/
47#ifndef vtkPolyDataSilhouette_h
48#define vtkPolyDataSilhouette_h
49
50#include "vtkFiltersHybridModule.h" // For export macro
52
53class vtkCamera;
54class vtkProp3D;
55class vtkTransform;
56class vtkPolyDataEdges;
57
58class VTKFILTERSHYBRID_EXPORT vtkPolyDataSilhouette : public vtkPolyDataAlgorithm
59{
60public:
65
67 void PrintSelf(ostream& os, vtkIndent indent) override;
68
70
73 vtkSetMacro(EnableFeatureAngle, int);
74 vtkGetMacro(EnableFeatureAngle, int);
76
78
81 vtkSetMacro(FeatureAngle, double);
82 vtkGetMacro(FeatureAngle, double);
84
86
90 vtkSetMacro(BorderEdges, vtkTypeBool);
91 vtkGetMacro(BorderEdges, vtkTypeBool);
92 vtkBooleanMacro(BorderEdges, vtkTypeBool);
94
96
100 vtkSetMacro(PieceInvariant, vtkTypeBool);
101 vtkGetMacro(PieceInvariant, vtkTypeBool);
102 vtkBooleanMacro(PieceInvariant, vtkTypeBool);
104
106 {
107 VTK_DIRECTION_SPECIFIED_VECTOR = 0,
108 VTK_DIRECTION_SPECIFIED_ORIGIN = 1,
109 VTK_DIRECTION_CAMERA_ORIGIN = 2,
110 VTK_DIRECTION_CAMERA_VECTOR = 3
111 };
112
114
118 vtkSetMacro(Direction, int);
119 vtkGetMacro(Direction, int);
120 void SetDirectionToSpecifiedVector() { this->SetDirection(VTK_DIRECTION_SPECIFIED_VECTOR); }
121 void SetDirectionToSpecifiedOrigin() { this->SetDirection(VTK_DIRECTION_SPECIFIED_ORIGIN); }
122 void SetDirectionToCameraVector() { this->SetDirection(VTK_DIRECTION_CAMERA_VECTOR); }
123 void SetDirectionToCameraOrigin() { this->SetDirection(VTK_DIRECTION_CAMERA_ORIGIN); }
125
127
132 virtual void SetCamera(vtkCamera VTK_WRAP_EXTERN*);
133 vtkGetObjectMacro(Camera, vtkCamera VTK_WRAP_EXTERN);
135
137
144 void SetProp3D(vtkProp3D VTK_WRAP_EXTERN*);
145 vtkProp3D VTK_WRAP_EXTERN* GetProp3D();
147
149
154 vtkSetVector3Macro(Vector, double);
155 vtkGetVectorMacro(Vector, double, 3);
157
159
164 vtkSetVector3Macro(Origin, double);
165 vtkGetVectorMacro(Origin, double, 3);
167
173
174protected:
177
179 void ComputeProjectionVector(double vector[3], double origin[3]);
180
185 double Vector[3];
186 double Origin[3];
187
190
193
194 vtkPolyDataEdges* PreComp; // precomputed data for a given point of view
195
196private:
198 void operator=(const vtkPolyDataSilhouette&) = delete;
199};
200
201#endif
a virtual camera for 3D rendering
Definition: vtkCamera.h:55
a simple class to control print indentation
Definition: vtkIndent.h:43
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:53
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:64
@ vector
Definition: vtkX3D.h:243
int vtkTypeBool
Definition: vtkABI.h:69
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287