00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00035 #ifndef __vtkSampleFunction_h
00036 #define __vtkSampleFunction_h
00037
00038 #include "vtkImageAlgorithm.h"
00039
00040 class vtkImplicitFunction;
00041 class vtkDataArray;
00042
00043 class VTK_IMAGING_EXPORT vtkSampleFunction : public vtkImageAlgorithm
00044 {
00045 public:
00046 vtkTypeMacro(vtkSampleFunction,vtkImageAlgorithm);
00047 void PrintSelf(ostream& os, vtkIndent indent);
00048
00052 static vtkSampleFunction *New();
00053
00055
00056 virtual void SetImplicitFunction(vtkImplicitFunction*);
00057 vtkGetObjectMacro(ImplicitFunction,vtkImplicitFunction);
00059
00061
00062 vtkSetMacro(OutputScalarType,int);
00063 vtkGetMacro(OutputScalarType,int);
00064 void SetOutputScalarTypeToDouble()
00065 {this->SetOutputScalarType(VTK_DOUBLE);}
00066 void SetOutputScalarTypeToFloat()
00067 {this->SetOutputScalarType(VTK_FLOAT);}
00068 void SetOutputScalarTypeToLong()
00069 {this->SetOutputScalarType(VTK_LONG);}
00070 void SetOutputScalarTypeToUnsignedLong()
00071 {this->SetOutputScalarType(VTK_UNSIGNED_LONG);};
00072 void SetOutputScalarTypeToInt()
00073 {this->SetOutputScalarType(VTK_INT);}
00074 void SetOutputScalarTypeToUnsignedInt()
00075 {this->SetOutputScalarType(VTK_UNSIGNED_INT);}
00076 void SetOutputScalarTypeToShort()
00077 {this->SetOutputScalarType(VTK_SHORT);}
00078 void SetOutputScalarTypeToUnsignedShort()
00079 {this->SetOutputScalarType(VTK_UNSIGNED_SHORT);}
00080 void SetOutputScalarTypeToChar()
00081 {this->SetOutputScalarType(VTK_CHAR);}
00082 void SetOutputScalarTypeToUnsignedChar()
00083 {this->SetOutputScalarType(VTK_UNSIGNED_CHAR);}
00085
00089 virtual void SetScalars(vtkDataArray *da);
00090
00092 void SetSampleDimensions(int i, int j, int k);
00093
00095
00096 void SetSampleDimensions(int dim[3]);
00097 vtkGetVectorMacro(SampleDimensions,int,3);
00099
00101
00103 vtkSetVector6Macro(ModelBounds,double);
00104 vtkGetVectorMacro(ModelBounds,double,6);
00106
00108
00111 vtkSetMacro(Capping,int);
00112 vtkGetMacro(Capping,int);
00113 vtkBooleanMacro(Capping,int);
00115
00117
00118 vtkSetMacro(CapValue,double);
00119 vtkGetMacro(CapValue,double);
00121
00123
00124 vtkSetMacro(ComputeNormals,int);
00125 vtkGetMacro(ComputeNormals,int);
00126 vtkBooleanMacro(ComputeNormals,int);
00128
00130
00132 vtkSetStringMacro(ScalarArrayName);
00133 vtkGetStringMacro(ScalarArrayName);
00135
00137
00139 vtkSetStringMacro(NormalArrayName);
00140 vtkGetStringMacro(NormalArrayName);
00142
00144 unsigned long GetMTime();
00145
00146 protected:
00152 vtkSampleFunction();
00153
00154 ~vtkSampleFunction();
00155
00156 virtual void ReportReferences(vtkGarbageCollector*);
00157
00158 void ExecuteData(vtkDataObject *);
00159 virtual int RequestInformation (vtkInformation *,
00160 vtkInformationVector **,
00161 vtkInformationVector *);
00162 void Cap(vtkDataArray *s);
00163
00164 int OutputScalarType;
00165 int SampleDimensions[3];
00166 double ModelBounds[6];
00167 int Capping;
00168 double CapValue;
00169 vtkImplicitFunction *ImplicitFunction;
00170 int ComputeNormals;
00171 char *ScalarArrayName;
00172 char *NormalArrayName;
00173
00174 private:
00175 vtkSampleFunction(const vtkSampleFunction&);
00176 void operator=(const vtkSampleFunction&);
00177 };
00178
00179 #endif
00180
00181