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

vtkGenericClip.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkGenericClip.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 =========================================================================*/
00073 #ifndef __vtkGenericClip_h
00074 #define __vtkGenericClip_h
00075 
00076 #include "vtkGenericDataSetToUnstructuredGridFilter.h"
00077 
00078 class vtkImplicitFunction;
00079 
00080 class vtkPointLocator;
00081 
00082 class VTK_GENERIC_FILTERING_EXPORT vtkGenericClip : public vtkGenericDataSetToUnstructuredGridFilter
00083 {
00084 public:
00085   vtkTypeRevisionMacro(vtkGenericClip,vtkGenericDataSetToUnstructuredGridFilter);
00086   void PrintSelf(ostream& os, vtkIndent indent);
00087 
00090   static vtkGenericClip *New();
00091 
00093 
00096   vtkSetMacro(Value,double);
00097   vtkGetMacro(Value,double);
00099   
00101 
00106   vtkSetMacro(InsideOut,int);
00107   vtkGetMacro(InsideOut,int);
00108   vtkBooleanMacro(InsideOut,int);
00110 
00112 
00115   virtual void SetClipFunction(vtkImplicitFunction*);
00116   vtkGetObjectMacro(ClipFunction,vtkImplicitFunction);
00118 
00120 
00124   vtkSetMacro(GenerateClipScalars,int);
00125   vtkGetMacro(GenerateClipScalars,int);
00126   vtkBooleanMacro(GenerateClipScalars,int);
00128 
00130 
00132   vtkSetMacro(GenerateClippedOutput,int);
00133   vtkGetMacro(GenerateClippedOutput,int);
00134   vtkBooleanMacro(GenerateClippedOutput,int);
00136 
00138 
00142   vtkSetClampMacro(MergeTolerance,double,0.0001,0.25);
00143   vtkGetMacro(MergeTolerance,double);
00145   
00147 
00148   vtkUnstructuredGrid *GetClippedOutput();
00149   virtual int GetNumberOfOutputs();
00151 
00153 
00155   void SetLocator(vtkPointLocator *locator);
00156   vtkGetObjectMacro(Locator,vtkPointLocator);
00158 
00161   void CreateDefaultLocator();
00162 
00164   unsigned long GetMTime();
00165 
00167 
00169   vtkGetStringMacro(InputScalarsSelection);
00170   void SelectInputScalars(const char *fieldName) 
00171     {this->SetInputScalarsSelection(fieldName);}
00173 
00174 protected:
00175   vtkGenericClip(vtkImplicitFunction *cf=NULL);
00176   ~vtkGenericClip();
00177 
00178   void Execute();
00179   vtkImplicitFunction *ClipFunction;
00180   
00181   vtkPointLocator *Locator;
00182   int InsideOut;
00183   double Value;
00184   int GenerateClipScalars;
00185 
00186   int GenerateClippedOutput;
00187   double MergeTolerance;
00188 
00189   char *InputScalarsSelection;
00190   vtkSetStringMacro(InputScalarsSelection);
00191 
00192   //helper functions
00193   void ClipVolume();
00194 
00195 private:
00196   vtkGenericClip(const vtkGenericClip&);  // Not implemented.
00197   void operator=(const vtkGenericClip&);  // Not implemented.
00198 };
00199 
00200 #endif