VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Filters/Extraction/vtkExtractPolyDataGeometry.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkExtractPolyDataGeometry.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 =========================================================================*/
00045 #ifndef vtkExtractPolyDataGeometry_h
00046 #define vtkExtractPolyDataGeometry_h
00047 
00048 #include "vtkFiltersExtractionModule.h" // For export macro
00049 #include "vtkPolyDataAlgorithm.h"
00050 
00051 class vtkImplicitFunction;
00052 
00053 class VTKFILTERSEXTRACTION_EXPORT vtkExtractPolyDataGeometry : public vtkPolyDataAlgorithm
00054 {
00055 public:
00056   vtkTypeMacro(vtkExtractPolyDataGeometry,vtkPolyDataAlgorithm);
00057   void PrintSelf(ostream& os, vtkIndent indent);
00058 
00060   static vtkExtractPolyDataGeometry *New();
00061 
00063   unsigned long GetMTime();
00064 
00066 
00067   virtual void SetImplicitFunction(vtkImplicitFunction*);
00068   vtkGetObjectMacro(ImplicitFunction,vtkImplicitFunction);
00070 
00072 
00075   vtkSetMacro(ExtractInside,int);
00076   vtkGetMacro(ExtractInside,int);
00077   vtkBooleanMacro(ExtractInside,int);
00079 
00081 
00083   vtkSetMacro(ExtractBoundaryCells,int);
00084   vtkGetMacro(ExtractBoundaryCells,int);
00085   vtkBooleanMacro(ExtractBoundaryCells,int);
00087 
00089 
00091   vtkSetMacro(PassPoints,int);
00092   vtkGetMacro(PassPoints,int);
00093   vtkBooleanMacro(PassPoints,int);
00095 
00096 protected:
00097   vtkExtractPolyDataGeometry(vtkImplicitFunction *f=NULL);
00098   ~vtkExtractPolyDataGeometry();
00099 
00100   // Usual data generation method
00101   int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00102 
00103   vtkImplicitFunction *ImplicitFunction;
00104   int ExtractInside;
00105   int ExtractBoundaryCells;
00106   int PassPoints;
00107 
00108   vtkIdType InsertPointInMap(vtkIdType i, vtkPoints *inPts, vtkPoints *newPts, vtkIdType *pointMap);
00109 
00110 private:
00111   vtkExtractPolyDataGeometry(const vtkExtractPolyDataGeometry&);  // Not implemented.
00112   void operator=(const vtkExtractPolyDataGeometry&);  // Not implemented.
00113 };
00114 
00116 
00118 inline vtkIdType vtkExtractPolyDataGeometry::InsertPointInMap(vtkIdType i, vtkPoints *inPts,
00119                                                               vtkPoints *newPts, vtkIdType *pointMap)
00120 {
00121   double x[3];
00122   inPts->GetPoint(i, x);
00123   pointMap[i] = newPts->InsertNextPoint(x);
00124   return pointMap[i];
00125 }
00127 
00128 
00129 #endif