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 =========================================================================*/
40 #ifndef vtkPolyDataSilhouette_h
41 #define vtkPolyDataSilhouette_h
42 
43 #include "vtkFiltersHybridModule.h" // For export macro
44 #include "vtkPolyDataAlgorithm.h"
45 
46 #define VTK_DIRECTION_SPECIFIED_VECTOR 0
47 #define VTK_DIRECTION_SPECIFIED_ORIGIN 1
48 #define VTK_DIRECTION_CAMERA_ORIGIN 2
49 #define VTK_DIRECTION_CAMERA_VECTOR 3
50 
51 class vtkCamera;
52 class vtkProp3D;
53 class vtkTransform;
54 class vtkPolyDataEdges;
55 
57 {
58 public:
61 
63  void PrintSelf(ostream& os, vtkIndent indent);
64 
66 
67  vtkSetMacro(EnableFeatureAngle,int);
68  vtkGetMacro(EnableFeatureAngle,int);
70 
72 
73  vtkSetMacro(FeatureAngle,double);
74  vtkGetMacro(FeatureAngle,double);
76 
78 
80  vtkSetMacro(BorderEdges,int);
81  vtkGetMacro(BorderEdges,int);
82  vtkBooleanMacro(BorderEdges,int);
84 
86 
88  vtkSetMacro(PieceInvariant,int);
89  vtkGetMacro(PieceInvariant,int);
90  vtkBooleanMacro(PieceInvariant,int);
92 
94 
96  vtkSetMacro(Direction,int);
97  vtkGetMacro(Direction,int);
99  {this->SetDirection( VTK_DIRECTION_SPECIFIED_VECTOR ); }
101  {this->SetDirection( VTK_DIRECTION_SPECIFIED_ORIGIN ); }
103  {this->SetDirection( VTK_DIRECTION_CAMERA_VECTOR ); }
105  {this->SetDirection( VTK_DIRECTION_CAMERA_ORIGIN ); }
107 
109 
116 
118 
126 
128 
131  vtkSetVector3Macro(Vector,double);
132  vtkGetVectorMacro(Vector,double,3);
134 
136 
140  vtkSetVector3Macro(Origin,double);
141  vtkGetVectorMacro(Origin,double,3);
143 
146  unsigned long GetMTime();
147 
148 protected:
151 
153  void ComputeProjectionVector(double vector[3], double origin[3]);
154 
159  double Vector[3];
160  double Origin[3];
161 
163  double FeatureAngle;
164 
167 
168  vtkPolyDataEdges* PreComp; // precomputed data for a given point of view
169 
170 private:
171  vtkPolyDataSilhouette(const vtkPolyDataSilhouette&); // Not implemented.
172  void operator=(const vtkPolyDataSilhouette&); // Not implemented.
173 };
174 
175 #endif
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkX3D::vector
@ vector
Definition: vtkX3D.h:237
vtkSetVector3Macro
#define vtkSetVector3Macro(name, type)
Definition: vtkSetGet.h:287
vtkProp3D
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:43
vtkPolyDataSilhouette::~vtkPolyDataSilhouette
~vtkPolyDataSilhouette()
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkPolyDataSilhouette::BorderEdges
int BorderEdges
Definition: vtkPolyDataSilhouette.h:165
vtkPolyDataSilhouette::New
static vtkPolyDataSilhouette * New()
vtkPolyDataSilhouette::Prop3D
vtkProp3D * Prop3D
Definition: vtkPolyDataSilhouette.h:157
vtkPolyDataSilhouette::SetProp3D
void SetProp3D(vtkProp3D VTK_WRAP_EXTERN *)
vtkPolyDataSilhouette::Camera
vtkCamera * Camera
Definition: vtkPolyDataSilhouette.h:156
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkPolyDataSilhouette::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkTransform
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:60
vtkGetVectorMacro
#define vtkGetVectorMacro(name, type, count)
Definition: vtkSetGet.h:424
vtkPolyDataSilhouette::Direction
int Direction
Definition: vtkPolyDataSilhouette.h:155
vtkPolyDataAlgorithm.h
vtkPolyDataSilhouette::SetDirectionToSpecifiedOrigin
void SetDirectionToSpecifiedOrigin()
Definition: vtkPolyDataSilhouette.h:100
VTKFILTERSHYBRID_EXPORT
#define VTKFILTERSHYBRID_EXPORT
Definition: vtkFiltersHybridModule.h:15
vtkPolyDataSilhouette::GetMTime
unsigned long GetMTime()
vtkPolyDataSilhouette::vtkPolyDataSilhouette
vtkPolyDataSilhouette()
vtkPolyDataSilhouette::Transform
vtkTransform * Transform
Definition: vtkPolyDataSilhouette.h:158
vtkPolyDataSilhouette::GetProp3D
vtkProp3D VTK_WRAP_EXTERN * GetProp3D()
VTK_DIRECTION_CAMERA_ORIGIN
#define VTK_DIRECTION_CAMERA_ORIGIN
Definition: vtkPolyDataSilhouette.h:48
vtkPolyDataSilhouette::PieceInvariant
int PieceInvariant
Definition: vtkPolyDataSilhouette.h:166
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkPolyDataSilhouette::SetDirectionToCameraVector
void SetDirectionToCameraVector()
Definition: vtkPolyDataSilhouette.h:102
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:49
vtkPolyDataSilhouette::ComputeProjectionVector
void ComputeProjectionVector(double vector[3], double origin[3])
VTK_WRAP_EXTERN
#define VTK_WRAP_EXTERN
Definition: vtkSetGet.h:834
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkPolyDataSilhouette
sort polydata along camera view direction
Definition: vtkPolyDataSilhouette.h:57
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkFiltersHybridModule.h
vtkPolyDataSilhouette::PreComp
vtkPolyDataEdges * PreComp
Definition: vtkPolyDataSilhouette.h:168
vtkPolyDataSilhouette::FeatureAngle
double FeatureAngle
Definition: vtkPolyDataSilhouette.h:163
VTK_DIRECTION_SPECIFIED_VECTOR
#define VTK_DIRECTION_SPECIFIED_VECTOR
Definition: vtkPolyDataSilhouette.h:46
VTK_DIRECTION_CAMERA_VECTOR
#define VTK_DIRECTION_CAMERA_VECTOR
Definition: vtkPolyDataSilhouette.h:49
vtkPolyDataSilhouette::SetDirectionToCameraOrigin
void SetDirectionToCameraOrigin()
Definition: vtkPolyDataSilhouette.h:104
vtkPolyDataSilhouette::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkPolyDataSilhouette::SetCamera
virtual void SetCamera(vtkCamera VTK_WRAP_EXTERN *)
vtkPolyDataSilhouette::SetDirectionToSpecifiedVector
void SetDirectionToSpecifiedVector()
Definition: vtkPolyDataSilhouette.h:98
vtkPolyDataSilhouette::EnableFeatureAngle
int EnableFeatureAngle
Definition: vtkPolyDataSilhouette.h:162
VTK_DIRECTION_SPECIFIED_ORIGIN
#define VTK_DIRECTION_SPECIFIED_ORIGIN
Definition: vtkPolyDataSilhouette.h:47
vtkPolyDataAlgorithm
Superclass for algorithms that produce only polydata as output.
Definition: vtkPolyDataAlgorithm.h:44