VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGenericCutter.h 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 =========================================================================*/ 00048 #ifndef vtkGenericCutter_h 00049 #define vtkGenericCutter_h 00050 00051 #include "vtkFiltersGenericModule.h" // For export macro 00052 #include "vtkPolyDataAlgorithm.h" 00053 00054 class vtkContourValues; 00055 00056 class vtkImplicitFunction; 00057 class vtkIncrementalPointLocator; 00058 class vtkPointData; 00059 class vtkCellData; 00060 00061 class VTKFILTERSGENERIC_EXPORT vtkGenericCutter : public vtkPolyDataAlgorithm 00062 { 00063 public: 00064 vtkTypeMacro(vtkGenericCutter,vtkPolyDataAlgorithm); 00065 void PrintSelf(ostream& os, vtkIndent indent); 00066 00069 static vtkGenericCutter *New(); 00070 00073 void SetValue(int i, double value); 00074 00076 double GetValue(int i); 00077 00080 double *GetValues(); 00081 00085 void GetValues(double *contourValues); 00086 00090 void SetNumberOfContours(int number); 00091 00093 int GetNumberOfContours(); 00094 00097 void GenerateValues(int numContours, double range[2]); 00098 00101 void GenerateValues(int numContours, double rangeStart, double rangeEnd); 00102 00105 unsigned long GetMTime(); 00106 00108 00109 virtual void SetCutFunction(vtkImplicitFunction*); 00110 vtkGetObjectMacro(CutFunction,vtkImplicitFunction); 00112 00114 00117 vtkSetMacro(GenerateCutScalars,int); 00118 vtkGetMacro(GenerateCutScalars,int); 00119 vtkBooleanMacro(GenerateCutScalars,int); 00121 00123 00125 void SetLocator(vtkIncrementalPointLocator *locator); 00126 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator); 00128 00131 void CreateDefaultLocator(); 00132 00133 protected: 00134 vtkGenericCutter(vtkImplicitFunction *cf=NULL); 00135 ~vtkGenericCutter(); 00136 00138 00139 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00140 int FillInputPortInformation(int, vtkInformation*); 00142 00143 vtkImplicitFunction *CutFunction; 00144 vtkIncrementalPointLocator *Locator; 00145 vtkContourValues *ContourValues; 00146 int GenerateCutScalars; 00147 00148 // Used internal by vtkGenericAdaptorCell::Contour() 00149 vtkPointData *InternalPD; 00150 vtkPointData *SecondaryPD; 00151 vtkCellData *SecondaryCD; 00152 00153 private: 00154 vtkGenericCutter(const vtkGenericCutter&); // Not implemented. 00155 void operator=(const vtkGenericCutter&); // Not implemented. 00156 }; 00157 00158 #endif 00159 00160