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