Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
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
00094 #ifndef __vtkImplicitModeller_h
00095 #define __vtkImplicitModeller_h
00096
00097 #include "vtkDataSetToImageFilter.h"
00098
00099 #define VTK_VOXEL_MODE 0
00100 #define VTK_CELL_MODE 1
00101
00102 class vtkDataArray;
00103 class vtkExtractGeometry;
00104 class vtkMultiThreader;
00105
00106 class VTK_HYBRID_EXPORT vtkImplicitModeller : public vtkDataSetToImageFilter
00107 {
00108 public:
00109 vtkTypeRevisionMacro(vtkImplicitModeller,vtkDataSetToImageFilter);
00110 void PrintSelf(ostream& os, vtkIndent indent);
00111
00115 static vtkImplicitModeller *New();
00116
00119 float ComputeModelBounds(vtkDataSet *input = NULL);
00120
00122
00123 vtkGetVectorMacro(SampleDimensions,int,3);
00124 void SetSampleDimensions(int i, int j, int k);
00125 void SetSampleDimensions(int dim[3]);
00127
00129
00131 vtkSetClampMacro(MaximumDistance,float,0.0,1.0);
00132 vtkGetMacro(MaximumDistance,float);
00134
00136
00138 vtkSetVector6Macro(ModelBounds,float);
00139 vtkGetVectorMacro(ModelBounds,float,6);
00141
00143
00147 vtkSetMacro(AdjustBounds,int);
00148 vtkGetMacro(AdjustBounds,int);
00149 vtkBooleanMacro(AdjustBounds,int);
00151
00153
00156 vtkSetClampMacro(AdjustDistance,float,-1.0,1.0);
00157 vtkGetMacro(AdjustDistance,float);
00159
00161
00163 vtkSetMacro(Capping,int);
00164 vtkGetMacro(Capping,int);
00165 vtkBooleanMacro(Capping,int);
00167
00169
00171 vtkSetMacro(CapValue,float);
00172 vtkGetMacro(CapValue,float);
00174
00176
00181 vtkSetClampMacro(ProcessMode, int, 0, 1);
00182 vtkGetMacro(ProcessMode, int);
00183 void SetProcessModeToPerVoxel() {this->SetProcessMode(VTK_VOXEL_MODE);}
00184 void SetProcessModeToPerCell() {this->SetProcessMode(VTK_CELL_MODE);}
00185 const char *GetProcessModeAsString(void);
00187
00189
00191 vtkSetMacro(LocatorMaxLevel,int);
00192 vtkGetMacro(LocatorMaxLevel,int);
00194
00196
00197 vtkSetClampMacro( NumberOfThreads, int, 1, VTK_MAX_THREADS );
00198 vtkGetMacro( NumberOfThreads, int );
00200
00205 void StartAppend();
00206
00212 void Append(vtkDataSet *input);
00213
00215 void EndAppend();
00216
00217 virtual void UpdateData(vtkDataObject *output);
00218
00219 protected:
00220 vtkImplicitModeller();
00221 ~vtkImplicitModeller();
00222
00223 void ExecuteData(vtkDataObject *);
00224 void ExecuteInformation();
00225
00226 void Cap(vtkDataArray *s);
00227
00228 vtkMultiThreader *Threader;
00229 int NumberOfThreads;
00230
00231 int SampleDimensions[3];
00232 float MaximumDistance;
00233 float ModelBounds[6];
00234 int Capping;
00235 float CapValue;
00236 int DataAppended;
00237 int AdjustBounds;
00238 float AdjustDistance;
00239 int ProcessMode;
00240 int LocatorMaxLevel;
00241
00242 int BoundsComputed;
00243 float InternalMaxDistance;
00244 private:
00245 vtkImplicitModeller(const vtkImplicitModeller&);
00246 void operator=(const vtkImplicitModeller&);
00247 };
00248
00249 #endif
00250
00251