00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00079 #ifndef __vtkTubeFilter_h
00080 #define __vtkTubeFilter_h
00081
00082 #include "vtkPolyDataToPolyDataFilter.h"
00083
00084 #define VTK_VARY_RADIUS_OFF 0
00085 #define VTK_VARY_RADIUS_BY_SCALAR 1
00086 #define VTK_VARY_RADIUS_BY_VECTOR 2
00087
00088 class VTK_GRAPHICS_EXPORT vtkTubeFilter : public vtkPolyDataToPolyDataFilter
00089 {
00090 public:
00091 vtkTypeMacro(vtkTubeFilter,vtkPolyDataToPolyDataFilter);
00092 void PrintSelf(ostream& os, vtkIndent indent);
00093
00096 static vtkTubeFilter *New();
00097
00099
00101 vtkSetClampMacro(Radius,float,0.0,VTK_LARGE_FLOAT);
00102 vtkGetMacro(Radius,float);
00104
00106
00107 vtkSetClampMacro(VaryRadius,int,
00108 VTK_VARY_RADIUS_OFF,VTK_VARY_RADIUS_BY_VECTOR);
00109 vtkGetMacro(VaryRadius,int);
00110 void SetVaryRadiusToVaryRadiusOff()
00111 {this->SetVaryRadius(VTK_VARY_RADIUS_OFF);};
00112 void SetVaryRadiusToVaryRadiusByScalar()
00113 {this->SetVaryRadius(VTK_VARY_RADIUS_BY_SCALAR);};
00114 void SetVaryRadiusToVaryRadiusByVector()
00115 {this->SetVaryRadius(VTK_VARY_RADIUS_BY_VECTOR);};
00116 const char *GetVaryRadiusAsString();
00118
00120
00122 vtkSetClampMacro(NumberOfSides,int,3,VTK_LARGE_INTEGER);
00123 vtkGetMacro(NumberOfSides,int);
00125
00127
00129 vtkSetMacro(RadiusFactor,float);
00130 vtkGetMacro(RadiusFactor,float);
00132
00134
00136 vtkSetVector3Macro(DefaultNormal,float);
00137 vtkGetVectorMacro(DefaultNormal,float,3);
00139
00141
00143 vtkSetMacro(UseDefaultNormal,int);
00144 vtkGetMacro(UseDefaultNormal,int);
00145 vtkBooleanMacro(UseDefaultNormal,int);
00147
00149
00150 vtkSetMacro(Capping,int);
00151 vtkGetMacro(Capping,int);
00152 vtkBooleanMacro(Capping,int);
00154
00156
00158 vtkSetClampMacro(OnRatio,int,1,VTK_LARGE_INTEGER);
00159 vtkGetMacro(OnRatio,int);
00161
00163
00166 vtkSetClampMacro(Offset,int,0,VTK_LARGE_INTEGER);
00167 vtkGetMacro(Offset,int);
00169
00170 protected:
00171 vtkTubeFilter();
00172 ~vtkTubeFilter() {};
00173
00174
00175 void Execute();
00176
00177 float Radius;
00178 int VaryRadius;
00179 int NumberOfSides;
00180 float RadiusFactor;
00181 float DefaultNormal[3];
00182 int UseDefaultNormal;
00183 int Capping;
00184 int OnRatio;
00185 int Offset;
00186
00187 private:
00188 vtkTubeFilter(const vtkTubeFilter&);
00189 void operator=(const vtkTubeFilter&);
00190 };
00191
00193 inline const char *vtkTubeFilter::GetVaryRadiusAsString(void)
00194 {
00195 if ( this->VaryRadius == VTK_VARY_RADIUS_OFF )
00196 {
00197 return "VaryRadiusOff";
00198 }
00199 else if ( this->VaryRadius == VTK_VARY_RADIUS_BY_SCALAR )
00200 {
00201 return "VaryRadiusByScalar";
00202 }
00203 else
00204 {
00205 return "VaryRadiusByVector";
00206 }
00207 }
00208
00209
00210 #endif