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 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 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; // flag to limit to one ComputeModelBounds per StartAppend 00230 float InternalMaxDistance; // the max distance computed during that one call 00231 private: 00232 vtkImplicitModeller(const vtkImplicitModeller&); // Not implemented. 00233 void operator=(const vtkImplicitModeller&); // Not implemented. 00234 }; 00235 00236 #endif 00237 00238