00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00030 #ifndef __vtkExtractCells_h
00031 #define __vtkExtractCells_h
00032
00033 #include "vtkUnstructuredGridAlgorithm.h"
00034
00035 class vtkIdList;
00036 class vtkExtractCellsSTLCloak;
00037 class vtkModelMetadata;
00038
00039 class VTK_GRAPHICS_EXPORT vtkExtractCells : public vtkUnstructuredGridAlgorithm
00040 {
00041 public:
00042 vtkTypeRevisionMacro(vtkExtractCells, vtkUnstructuredGridAlgorithm);
00043 virtual void PrintSelf(ostream &os, vtkIndent indent);
00044
00045 static vtkExtractCells *New();
00046
00051 void SetCellList(vtkIdList *l);
00052
00056 void AddCellList(vtkIdList *l);
00057
00061 void AddCellRange(vtkIdType from, vtkIdType to);
00062
00063 protected:
00064
00065 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00066 virtual int FillInputPortInformation(int port, vtkInformation *info);
00067
00068 vtkExtractCells();
00069 ~vtkExtractCells();
00070
00071 private:
00072
00073 void Copy(vtkDataSet *input, vtkUnstructuredGrid *output);
00074 static vtkIdType findInSortedList(vtkIdList *idList, vtkIdType id);
00075 vtkIdList *reMapPointIds(vtkDataSet *grid);
00076
00077 vtkModelMetadata *ExtractMetadata(vtkDataSet *input);
00078
00079 void CopyCellsDataSet(vtkIdList *ptMap, vtkDataSet *input,
00080 vtkUnstructuredGrid *output);
00081 void CopyCellsUnstructuredGrid(vtkIdList *ptMap, vtkDataSet *input,
00082 vtkUnstructuredGrid *output);
00083
00084 vtkExtractCellsSTLCloak *CellList;
00085
00086 int SubSetUGridCellArraySize;
00087 char InputIsUgrid;
00088
00089 vtkExtractCells(const vtkExtractCells&);
00090 void operator=(const vtkExtractCells&);
00091 };
00092
00093 #endif