00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00032 #ifndef __vtkSampleFunction_h
00033 #define __vtkSampleFunction_h
00034
00035 #include "vtkImageAlgorithm.h"
00036
00037 class vtkImplicitFunction;
00038 class vtkDataArray;
00039
00040 class VTK_IMAGING_EXPORT vtkSampleFunction : public vtkImageAlgorithm
00041 {
00042 public:
00043 vtkTypeRevisionMacro(vtkSampleFunction,vtkImageAlgorithm);
00044 void PrintSelf(ostream& os, vtkIndent indent);
00045
00049 static vtkSampleFunction *New();
00050
00052
00053 virtual void SetImplicitFunction(vtkImplicitFunction*);
00054 vtkGetObjectMacro(ImplicitFunction,vtkImplicitFunction);
00056
00058
00059 vtkSetMacro(OutputScalarType,int);
00060 vtkGetMacro(OutputScalarType,int);
00061 void SetOutputScalarTypeToDouble()
00062 {this->SetOutputScalarType(VTK_DOUBLE);}
00063 void SetOutputScalarTypeToFloat()
00064 {this->SetOutputScalarType(VTK_FLOAT);}
00065 void SetOutputScalarTypeToLong()
00066 {this->SetOutputScalarType(VTK_LONG);}
00067 void SetOutputScalarTypeToUnsignedLong()
00068 {this->SetOutputScalarType(VTK_UNSIGNED_LONG);};
00069 void SetOutputScalarTypeToInt()
00070 {this->SetOutputScalarType(VTK_INT);}
00071 void SetOutputScalarTypeToUnsignedInt()
00072 {this->SetOutputScalarType(VTK_UNSIGNED_INT);}
00073 void SetOutputScalarTypeToShort()
00074 {this->SetOutputScalarType(VTK_SHORT);}
00075 void SetOutputScalarTypeToUnsignedShort()
00076 {this->SetOutputScalarType(VTK_UNSIGNED_SHORT);}
00077 void SetOutputScalarTypeToChar()
00078 {this->SetOutputScalarType(VTK_CHAR);}
00079 void SetOutputScalarTypeToUnsignedChar()
00080 {this->SetOutputScalarType(VTK_UNSIGNED_CHAR);}
00082
00086 virtual void SetScalars(vtkDataArray *da);
00087
00089 void SetSampleDimensions(int i, int j, int k);
00090
00092
00093 void SetSampleDimensions(int dim[3]);
00094 vtkGetVectorMacro(SampleDimensions,int,3);
00096
00098
00100 vtkSetVector6Macro(ModelBounds,double);
00101 vtkGetVectorMacro(ModelBounds,double,6);
00103
00105
00108 vtkSetMacro(Capping,int);
00109 vtkGetMacro(Capping,int);
00110 vtkBooleanMacro(Capping,int);
00112
00114
00115 vtkSetMacro(CapValue,double);
00116 vtkGetMacro(CapValue,double);
00118
00120
00121 vtkSetMacro(ComputeNormals,int);
00122 vtkGetMacro(ComputeNormals,int);
00123 vtkBooleanMacro(ComputeNormals,int);
00125
00127
00129 vtkSetStringMacro(ScalarArrayName);
00130 vtkGetStringMacro(ScalarArrayName);
00132
00134
00136 vtkSetStringMacro(NormalArrayName);
00137 vtkGetStringMacro(NormalArrayName);
00139
00141 unsigned long GetMTime();
00142
00143 protected:
00149 vtkSampleFunction();
00150
00151 ~vtkSampleFunction();
00152
00153 virtual void ReportReferences(vtkGarbageCollector*);
00154
00155 void ExecuteData(vtkDataObject *);
00156 virtual int RequestInformation (vtkInformation *,
00157 vtkInformationVector **,
00158 vtkInformationVector *);
00159 void Cap(vtkDataArray *s);
00160
00161 int OutputScalarType;
00162 int SampleDimensions[3];
00163 double ModelBounds[6];
00164 int Capping;
00165 double CapValue;
00166 vtkImplicitFunction *ImplicitFunction;
00167 int ComputeNormals;
00168 char *ScalarArrayName;
00169 char *NormalArrayName;
00170
00171 private:
00172 vtkSampleFunction(const vtkSampleFunction&);
00173 void operator=(const vtkSampleFunction&);
00174 };
00175
00176 #endif
00177
00178