VTK
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 =========================================================================*/
41 #ifndef vtkPolyDataSilhouette_h
42 #define vtkPolyDataSilhouette_h
43 
44 #include "vtkFiltersHybridModule.h" // For export macro
45 #include "vtkPolyDataAlgorithm.h"
46 
47 
48 class vtkCamera;
49 class vtkProp3D;
50 class vtkTransform;
51 class vtkPolyDataEdges;
52 
53 class VTKFILTERSHYBRID_EXPORT vtkPolyDataSilhouette : public vtkPolyDataAlgorithm
54 {
55 public:
59  static vtkPolyDataSilhouette *New();
60 
62  void PrintSelf(ostream& os, vtkIndent indent);
63 
65 
68  vtkSetMacro(EnableFeatureAngle,int);
69  vtkGetMacro(EnableFeatureAngle,int);
71 
73 
76  vtkSetMacro(FeatureAngle,double);
77  vtkGetMacro(FeatureAngle,double);
79 
81 
85  vtkSetMacro(BorderEdges,int);
86  vtkGetMacro(BorderEdges,int);
87  vtkBooleanMacro(BorderEdges,int);
89 
91 
95  vtkSetMacro(PieceInvariant,int);
96  vtkGetMacro(PieceInvariant,int);
97  vtkBooleanMacro(PieceInvariant,int);
99 
101  {
102  VTK_DIRECTION_SPECIFIED_VECTOR = 0,
103  VTK_DIRECTION_SPECIFIED_ORIGIN = 1,
104  VTK_DIRECTION_CAMERA_ORIGIN = 2,
105  VTK_DIRECTION_CAMERA_VECTOR = 3
106  };
107 
109 
113  vtkSetMacro(Direction,int);
114  vtkGetMacro(Direction,int);
116  {this->SetDirection( VTK_DIRECTION_SPECIFIED_VECTOR ); }
118  {this->SetDirection( VTK_DIRECTION_SPECIFIED_ORIGIN ); }
120  {this->SetDirection( VTK_DIRECTION_CAMERA_VECTOR ); }
122  {this->SetDirection( VTK_DIRECTION_CAMERA_ORIGIN ); }
124 
126 
131  virtual void SetCamera(vtkCamera VTK_WRAP_EXTERN*);
132  vtkGetObjectMacro(Camera,vtkCamera VTK_WRAP_EXTERN);
134 
136 
143  void SetProp3D(vtkProp3D VTK_WRAP_EXTERN*);
144  vtkProp3D VTK_WRAP_EXTERN*GetProp3D();
146 
148 
153  vtkSetVector3Macro(Vector,double);
154  vtkGetVectorMacro(Vector,double,3);
156 
158 
163  vtkSetVector3Macro(Origin,double);
164  vtkGetVectorMacro(Origin,double,3);
166 
172 
173 protected:
176 
178  void ComputeProjectionVector(double vector[3], double origin[3]);
179 
184  double Vector[3];
185  double Origin[3];
186 
188  double FeatureAngle;
189 
192 
193  vtkPolyDataEdges* PreComp; // precomputed data for a given point of view
194 
195 private:
196  vtkPolyDataSilhouette(const vtkPolyDataSilhouette&) VTK_DELETE_FUNCTION;
197  void operator=(const vtkPolyDataSilhouette&) VTK_DELETE_FUNCTION;
198 };
199 
200 #endif
void SetDirectionToCameraVector()
Specify how view direction is computed.
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:60
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:46
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248
static vtkPolyDataAlgorithm * New()
void SetDirectionToSpecifiedVector()
Specify how view direction is computed.
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:39
void SetDirectionToSpecifiedOrigin()
Specify how view direction is computed.
a virtual camera for 3D rendering
Definition: vtkCamera.h:50
virtual vtkMTimeType GetMTime()
Return this object's modified time.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
vtkPolyDataEdges * PreComp
sort polydata along camera view direction
void SetDirectionToCameraOrigin()
Specify how view direction is computed.
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.