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:
60  static vtkPolyDataSilhouette *New();
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 
113  virtual void SetCamera(vtkCamera VTK_WRAP_EXTERN*);
114  vtkGetObjectMacro(Camera,vtkCamera VTK_WRAP_EXTERN);
116 
118 
123  void SetProp3D(vtkProp3D VTK_WRAP_EXTERN*);
124  vtkProp3D VTK_WRAP_EXTERN*GetProp3D();
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
#define VTK_DIRECTION_CAMERA_VECTOR
#define VTK_DIRECTION_SPECIFIED_VECTOR
Store vtkAlgorithm input/output information.
#define VTK_DIRECTION_SPECIFIED_ORIGIN
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:59
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:42
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
Superclass for algorithms that produce only polydata as output.
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:38
#define VTKFILTERSHYBRID_EXPORT
a virtual camera for 3D rendering
Definition: vtkCamera.h:49
vtkPolyDataEdges * PreComp
#define VTK_DIRECTION_CAMERA_ORIGIN
sort polydata along camera view direction
Store zero or more vtkInformation instances.