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 "vtkPolyDataAlgorithm.h"
44 
45 #define VTK_DIRECTION_SPECIFIED_VECTOR 0
46 #define VTK_DIRECTION_SPECIFIED_ORIGIN 1
47 #define VTK_DIRECTION_CAMERA_ORIGIN 2
48 #define VTK_DIRECTION_CAMERA_VECTOR 3
49 
50 class vtkCamera;
51 class vtkProp3D;
52 class vtkTransform;
53 class vtkPolyDataEdges;
54 
56 {
57 public:
59  static vtkPolyDataSilhouette *New();
60 
62  void PrintSelf(ostream& os, vtkIndent indent);
63 
65 
66  vtkSetMacro(EnableFeatureAngle,int);
67  vtkGetMacro(EnableFeatureAngle,int);
69 
71 
72  vtkSetMacro(FeatureAngle,double);
73  vtkGetMacro(FeatureAngle,double);
75 
77 
79  vtkSetMacro(BorderEdges,int);
80  vtkGetMacro(BorderEdges,int);
81  vtkBooleanMacro(BorderEdges,int);
83 
85 
87  vtkSetMacro(PieceInvariant,int);
88  vtkGetMacro(PieceInvariant,int);
89  vtkBooleanMacro(PieceInvariant,int);
91 
93 
95  vtkSetMacro(Direction,int);
96  vtkGetMacro(Direction,int);
98  {this->SetDirection( VTK_DIRECTION_SPECIFIED_VECTOR ); }
100  {this->SetDirection( VTK_DIRECTION_SPECIFIED_ORIGIN ); }
102  {this->SetDirection( VTK_DIRECTION_CAMERA_VECTOR ); }
104  {this->SetDirection( VTK_DIRECTION_CAMERA_ORIGIN ); }
106 
108 
112  virtual void SetCamera(vtkCamera VTK_WRAP_EXTERN*);
113  vtkGetObjectMacro(Camera,vtkCamera VTK_WRAP_EXTERN);
115 
117 
122  void SetProp3D(vtkProp3D VTK_WRAP_EXTERN*);
123  vtkProp3D VTK_WRAP_EXTERN*GetProp3D();
125 
127 
130  vtkSetVector3Macro(Vector,double);
131  vtkGetVectorMacro(Vector,double,3);
133 
135 
139  vtkSetVector3Macro(Origin,double);
140  vtkGetVectorMacro(Origin,double,3);
142 
145  unsigned long GetMTime();
146 
147 protected:
150 
152  void ComputeProjectionVector(double vector[3], double origin[3]);
153 
158  double Vector[3];
159  double Origin[3];
160 
162  double FeatureAngle;
163 
166 
167  vtkPolyDataEdges* PreComp; // precomputed data for a given point of view
168 
169 private:
170  vtkPolyDataSilhouette(const vtkPolyDataSilhouette&); // Not implemented.
171  void operator=(const vtkPolyDataSilhouette&); // Not implemented.
172 };
173 
174 #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:58
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:41
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:37
a virtual camera for 3D rendering
Definition: vtkCamera.h:47
vtkPolyDataEdges * PreComp
#define VTK_DIRECTION_CAMERA_ORIGIN
sort polydata along camera view direction
Store zero or more vtkInformation instances.
#define VTK_HYBRID_EXPORT