00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00056
#ifndef __vtkLinearExtrusionFilter_h
00057
#define __vtkLinearExtrusionFilter_h
00058
00059
#include "vtkPolyDataToPolyDataFilter.h"
00060
00061
class vtkDataArray;
00062
00063 #define VTK_VECTOR_EXTRUSION 1
00064 #define VTK_NORMAL_EXTRUSION 2
00065 #define VTK_POINT_EXTRUSION 3
00066
00067 class VTK_GRAPHICS_EXPORT vtkLinearExtrusionFilter :
public vtkPolyDataToPolyDataFilter
00068 {
00069
public:
00070 vtkTypeRevisionMacro(vtkLinearExtrusionFilter,
vtkPolyDataToPolyDataFilter);
00071
void PrintSelf(ostream& os,
vtkIndent indent);
00072
00075
static vtkLinearExtrusionFilter *
New();
00076
00078
00079 vtkSetClampMacro(ExtrusionType,
int,VTK_VECTOR_EXTRUSION,VTK_POINT_EXTRUSION);
00080 vtkGetMacro(ExtrusionType,
int);
00081 void SetExtrusionTypeToVectorExtrusion()
00082 {this->SetExtrusionType(
VTK_VECTOR_EXTRUSION);};
00083 void SetExtrusionTypeToNormalExtrusion()
00084 {this->SetExtrusionType(
VTK_NORMAL_EXTRUSION);};
00085 void SetExtrusionTypeToPointExtrusion()
00086 {this->SetExtrusionType(
VTK_POINT_EXTRUSION);};
00088
00090
00091 vtkSetMacro(Capping,
int);
00092 vtkGetMacro(Capping,
int);
00093 vtkBooleanMacro(Capping,
int);
00095
00097
00098 vtkSetMacro(ScaleFactor,
double);
00099 vtkGetMacro(ScaleFactor,
double);
00101
00103
00105 vtkSetVector3Macro(Vector,
double);
00106 vtkGetVectorMacro(Vector,
double,3);
00108
00110
00112 vtkSetVector3Macro(ExtrusionPoint,
double);
00113 vtkGetVectorMacro(ExtrusionPoint,
double,3);
00115
00116
protected:
00117 vtkLinearExtrusionFilter();
00118 ~vtkLinearExtrusionFilter() {};
00119
00120
void Execute();
00121 int ExtrusionType;
00122 int Capping;
00123 double ScaleFactor;
00124 double Vector[3];
00125 double ExtrusionPoint[3];
00126
00127
00128
double *(vtkLinearExtrusionFilter::*ExtrudePoint)(
double x[3],
vtkIdType id,
00129
vtkDataArray *normals);
00130
double *ViaNormal(
double x[3],
vtkIdType id,
vtkDataArray *normals);
00131
double *ViaVector(
double x[3],
vtkIdType id,
vtkDataArray *normals=0);
00132
double *ViaPoint(
double x[3],
vtkIdType id,
vtkDataArray *normals=0);
00133
00134
00135
private:
00136 vtkLinearExtrusionFilter(
const vtkLinearExtrusionFilter&);
00137
void operator=(
const vtkLinearExtrusionFilter&);
00138 };
00139
00140
#endif