dox/Hybrid/vtkImplicitModeller.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00081 #ifndef __vtkImplicitModeller_h
00082 #define __vtkImplicitModeller_h
00083
00084 #include "vtkDataSetToImageFilter.h"
00085
00086 #define VTK_VOXEL_MODE 0
00087 #define VTK_CELL_MODE 1
00088
00089 class vtkDataArray;
00090 class vtkExtractGeometry;
00091 class vtkMultiThreader;
00092
00093 class VTK_HYBRID_EXPORT vtkImplicitModeller : public vtkDataSetToImageFilter
00094 {
00095 public:
00096 vtkTypeRevisionMacro(vtkImplicitModeller,vtkDataSetToImageFilter);
00097 void PrintSelf(ostream& os, vtkIndent indent);
00098
00102 static vtkImplicitModeller *New();
00103
00106 float ComputeModelBounds(vtkDataSet *input = NULL);
00107
00109
00110 vtkGetVectorMacro(SampleDimensions,int,3);
00111 void SetSampleDimensions(int i, int j, int k);
00112 void SetSampleDimensions(int dim[3]);
00114
00116
00118 vtkSetClampMacro(MaximumDistance,float,0.0,1.0);
00119 vtkGetMacro(MaximumDistance,float);
00121
00123
00125 vtkSetVector6Macro(ModelBounds,float);
00126 vtkGetVectorMacro(ModelBounds,float,6);
00128
00130
00134 vtkSetMacro(AdjustBounds,int);
00135 vtkGetMacro(AdjustBounds,int);
00136 vtkBooleanMacro(AdjustBounds,int);
00138
00140
00143 vtkSetClampMacro(AdjustDistance,float,-1.0,1.0);
00144 vtkGetMacro(AdjustDistance,float);
00146
00148
00150 vtkSetMacro(Capping,int);
00151 vtkGetMacro(Capping,int);
00152 vtkBooleanMacro(Capping,int);
00154
00156
00158 vtkSetMacro(CapValue,float);
00159 vtkGetMacro(CapValue,float);
00161
00163
00168 vtkSetClampMacro(ProcessMode, int, 0, 1);
00169 vtkGetMacro(ProcessMode, int);
00170 void SetProcessModeToPerVoxel() {this->SetProcessMode(VTK_VOXEL_MODE);}
00171 void SetProcessModeToPerCell() {this->SetProcessMode(VTK_CELL_MODE);}
00172 const char *GetProcessModeAsString(void);
00174
00176
00178 vtkSetMacro(LocatorMaxLevel,int);
00179 vtkGetMacro(LocatorMaxLevel,int);
00181
00183
00184 vtkSetClampMacro( NumberOfThreads, int, 1, VTK_MAX_THREADS );
00185 vtkGetMacro( NumberOfThreads, int );
00187
00192 void StartAppend();
00193
00199 void Append(vtkDataSet *input);
00200
00202 void EndAppend();
00203
00204 virtual void UpdateData(vtkDataObject *output);
00205
00206 protected:
00207 vtkImplicitModeller();
00208 ~vtkImplicitModeller();
00209
00210 void ExecuteData(vtkDataObject *);
00211 void ExecuteInformation();
00212
00213 void Cap(vtkDataArray *s);
00214
00215 vtkMultiThreader *Threader;
00216 int NumberOfThreads;
00217
00218 int SampleDimensions[3];
00219 float MaximumDistance;
00220 float ModelBounds[6];
00221 int Capping;
00222 float CapValue;
00223 int DataAppended;
00224 int AdjustBounds;
00225 float AdjustDistance;
00226 int ProcessMode;
00227 int LocatorMaxLevel;
00228
00229 int BoundsComputed;
00230 float InternalMaxDistance;
00231 private:
00232 vtkImplicitModeller(const vtkImplicitModeller&);
00233 void operator=(const vtkImplicitModeller&);
00234 };
00235
00236 #endif
00237
00238