Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Hybrid/vtkImplicitModeller.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImplicitModeller.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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; // flag to limit to one ComputeModelBounds per StartAppend 00226 double InternalMaxDistance; // the max distance computed during that one call 00227 private: 00228 vtkImplicitModeller(const vtkImplicitModeller&); // Not implemented. 00229 void operator=(const vtkImplicitModeller&); // Not implemented. 00230 }; 00231 00232 #endif 00233 00234