Hybrid/vtkImplicitModeller.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00077 #ifndef __vtkImplicitModeller_h
00078 #define __vtkImplicitModeller_h
00079
00080 #include "vtkDataSetToImageFilter.h"
00081
00082 #define VTK_VOXEL_MODE 0
00083 #define VTK_CELL_MODE 1
00084
00085 class vtkDataArray;
00086 class vtkExtractGeometry;
00087 class vtkMultiThreader;
00088
00089 class VTK_HYBRID_EXPORT vtkImplicitModeller : public vtkDataSetToImageFilter
00090 {
00091 public:
00092 vtkTypeRevisionMacro(vtkImplicitModeller,vtkDataSetToImageFilter);
00093 void PrintSelf(ostream& os, vtkIndent indent);
00094
00098 static vtkImplicitModeller *New();
00099
00102 double ComputeModelBounds(vtkDataSet *input = NULL);
00103
00105
00106 vtkGetVectorMacro(SampleDimensions,int,3);
00107 void SetSampleDimensions(int i, int j, int k);
00108 void SetSampleDimensions(int dim[3]);
00110
00112
00114 vtkSetClampMacro(MaximumDistance,double,0.0,1.0);
00115 vtkGetMacro(MaximumDistance,double);
00117
00119
00121 vtkSetVector6Macro(ModelBounds,double);
00122 vtkGetVectorMacro(ModelBounds,double,6);
00124
00126
00130 vtkSetMacro(AdjustBounds,int);
00131 vtkGetMacro(AdjustBounds,int);
00132 vtkBooleanMacro(AdjustBounds,int);
00134
00136
00139 vtkSetClampMacro(AdjustDistance,double,-1.0,1.0);
00140 vtkGetMacro(AdjustDistance,double);
00142
00144
00146 vtkSetMacro(Capping,int);
00147 vtkGetMacro(Capping,int);
00148 vtkBooleanMacro(Capping,int);
00150
00152
00154 vtkSetMacro(CapValue,double);
00155 vtkGetMacro(CapValue,double);
00157
00159
00164 vtkSetClampMacro(ProcessMode, int, 0, 1);
00165 vtkGetMacro(ProcessMode, int);
00166 void SetProcessModeToPerVoxel() {this->SetProcessMode(VTK_VOXEL_MODE);}
00167 void SetProcessModeToPerCell() {this->SetProcessMode(VTK_CELL_MODE);}
00168 const char *GetProcessModeAsString(void);
00170
00172
00174 vtkSetMacro(LocatorMaxLevel,int);
00175 vtkGetMacro(LocatorMaxLevel,int);
00177
00179
00180 vtkSetClampMacro( NumberOfThreads, int, 1, VTK_MAX_THREADS );
00181 vtkGetMacro( NumberOfThreads, int );
00183
00188 void StartAppend();
00189
00195 void Append(vtkDataSet *input);
00196
00198 void EndAppend();
00199
00200 virtual void UpdateData(vtkDataObject *output);
00201
00202 protected:
00203 vtkImplicitModeller();
00204 ~vtkImplicitModeller();
00205
00206 void ExecuteData(vtkDataObject *);
00207 void ExecuteInformation();
00208
00209 void Cap(vtkDataArray *s);
00210
00211 vtkMultiThreader *Threader;
00212 int NumberOfThreads;
00213
00214 int SampleDimensions[3];
00215 double MaximumDistance;
00216 double ModelBounds[6];
00217 int Capping;
00218 double CapValue;
00219 int DataAppended;
00220 int AdjustBounds;
00221 double AdjustDistance;
00222 int ProcessMode;
00223 int LocatorMaxLevel;
00224
00225 int BoundsComputed;
00226 double InternalMaxDistance;
00227 private:
00228 vtkImplicitModeller(const vtkImplicitModeller&);
00229 void operator=(const vtkImplicitModeller&);
00230 };
00231
00232 #endif
00233
00234