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

vtkClipDataSet.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkClipDataSet.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 =========================================================================*/
00075 #ifndef __vtkClipDataSet_h
00076 #define __vtkClipDataSet_h
00077 
00078 #include "vtkDataSetToUnstructuredGridFilter.h"
00079 
00080 class vtkImplicitFunction;
00081 
00082 class vtkPointLocator;
00083 
00084 class VTK_GRAPHICS_EXPORT vtkClipDataSet : public vtkDataSetToUnstructuredGridFilter
00085 {
00086 public:
00087   vtkTypeRevisionMacro(vtkClipDataSet,vtkDataSetToUnstructuredGridFilter);
00088   void PrintSelf(ostream& os, vtkIndent indent);
00089 
00092   static vtkClipDataSet *New();
00093 
00095 
00098   vtkSetMacro(Value,double);
00099   vtkGetMacro(Value,double);
00101   
00103 
00108   vtkSetMacro(InsideOut,int);
00109   vtkGetMacro(InsideOut,int);
00110   vtkBooleanMacro(InsideOut,int);
00112 
00114 
00117   virtual void SetClipFunction(vtkImplicitFunction*);
00118   vtkGetObjectMacro(ClipFunction,vtkImplicitFunction);
00120 
00122 
00126   vtkSetMacro(GenerateClipScalars,int);
00127   vtkGetMacro(GenerateClipScalars,int);
00128   vtkBooleanMacro(GenerateClipScalars,int);
00130 
00132 
00134   vtkSetMacro(GenerateClippedOutput,int);
00135   vtkGetMacro(GenerateClippedOutput,int);
00136   vtkBooleanMacro(GenerateClippedOutput,int);
00138 
00140 
00144   vtkSetClampMacro(MergeTolerance,double,0.0001,0.25);
00145   vtkGetMacro(MergeTolerance,double);
00147   
00149 
00150   vtkUnstructuredGrid *GetClippedOutput();
00151   virtual int GetNumberOfOutputs();
00153 
00155 
00157   void SetLocator(vtkPointLocator *locator);
00158   vtkGetObjectMacro(Locator,vtkPointLocator);
00160 
00163   void CreateDefaultLocator();
00164 
00166   unsigned long GetMTime();
00167 
00169 
00171   vtkGetStringMacro(InputScalarsSelection);
00172   void SelectInputScalars(const char *fieldName) 
00173     {this->SetInputScalarsSelection(fieldName);}
00175 
00176 protected:
00177   vtkClipDataSet(vtkImplicitFunction *cf=NULL);
00178   ~vtkClipDataSet();
00179 
00180   void Execute();
00181   vtkImplicitFunction *ClipFunction;
00182   
00183   vtkPointLocator *Locator;
00184   int InsideOut;
00185   double Value;
00186   int GenerateClipScalars;
00187 
00188   int GenerateClippedOutput;
00189   double MergeTolerance;
00190 
00191   char *InputScalarsSelection;
00192   vtkSetStringMacro(InputScalarsSelection);
00193 
00194   //helper functions
00195   void ClipVolume();
00196 
00197 private:
00198   vtkClipDataSet(const vtkClipDataSet&);  // Not implemented.
00199   void operator=(const vtkClipDataSet&);  // Not implemented.
00200 };
00201 
00202 #endif