VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGenericClip.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 =========================================================================*/ 00063 #ifndef __vtkGenericClip_h 00064 #define __vtkGenericClip_h 00065 00066 #include "vtkUnstructuredGridAlgorithm.h" 00067 00068 class vtkImplicitFunction; 00069 00070 class vtkPointData; 00071 class vtkCellData; 00072 class vtkIncrementalPointLocator; 00073 00074 class VTK_GENERIC_FILTERING_EXPORT vtkGenericClip : public vtkUnstructuredGridAlgorithm 00075 { 00076 public: 00077 vtkTypeMacro(vtkGenericClip,vtkUnstructuredGridAlgorithm); 00078 void PrintSelf(ostream& os, vtkIndent indent); 00079 00082 static vtkGenericClip *New(); 00083 00085 00088 vtkSetMacro(Value,double); 00089 vtkGetMacro(Value,double); 00091 00093 00098 vtkSetMacro(InsideOut,int); 00099 vtkGetMacro(InsideOut,int); 00100 vtkBooleanMacro(InsideOut,int); 00102 00104 00107 virtual void SetClipFunction(vtkImplicitFunction*); 00108 vtkGetObjectMacro(ClipFunction,vtkImplicitFunction); 00110 00112 00116 vtkSetMacro(GenerateClipScalars,int); 00117 vtkGetMacro(GenerateClipScalars,int); 00118 vtkBooleanMacro(GenerateClipScalars,int); 00120 00122 00124 vtkSetMacro(GenerateClippedOutput,int); 00125 vtkGetMacro(GenerateClippedOutput,int); 00126 vtkBooleanMacro(GenerateClippedOutput,int); 00128 00130 00134 vtkSetClampMacro(MergeTolerance,double,0.0001,0.25); 00135 vtkGetMacro(MergeTolerance,double); 00137 00139 00140 vtkUnstructuredGrid *GetClippedOutput(); 00141 virtual int GetNumberOfOutputs(); 00143 00145 00147 void SetLocator(vtkIncrementalPointLocator *locator); 00148 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator); 00150 00153 void CreateDefaultLocator(); 00154 00156 unsigned long GetMTime(); 00157 00159 00161 vtkGetStringMacro(InputScalarsSelection); 00162 void SelectInputScalars(const char *fieldName) 00163 {this->SetInputScalarsSelection(fieldName);} 00165 00166 protected: 00167 vtkGenericClip(vtkImplicitFunction *cf=NULL); 00168 ~vtkGenericClip(); 00169 00170 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00171 int FillInputPortInformation(int, vtkInformation*); 00172 00173 vtkImplicitFunction *ClipFunction; 00174 00175 vtkIncrementalPointLocator *Locator; 00176 int InsideOut; 00177 double Value; 00178 int GenerateClipScalars; 00179 00180 int GenerateClippedOutput; 00181 double MergeTolerance; 00182 00183 char *InputScalarsSelection; 00184 vtkSetStringMacro(InputScalarsSelection); 00185 00186 // Used internal by vtkGenericAdaptorCell::Clip() 00187 vtkPointData *InternalPD; 00188 vtkPointData *SecondaryPD; 00189 vtkCellData *SecondaryCD; 00190 00191 private: 00192 vtkGenericClip(const vtkGenericClip&); // Not implemented. 00193 void operator=(const vtkGenericClip&); // Not implemented. 00194 }; 00195 00196 #endif