33 #ifndef __vtkDataSetSurfaceFilter_h
34 #define __vtkDataSetSurfaceFilter_h
36 #include "vtkFiltersGeometryModule.h"
61 void PrintSelf(ostream& os, vtkIndent indent);
67 vtkSetMacro(UseStrips,
int);
68 vtkGetMacro(UseStrips,
int);
69 vtkBooleanMacro(UseStrips,
int);
76 vtkSetMacro(PieceInvariant,
int);
77 vtkGetMacro(PieceInvariant,
int);
87 vtkSetMacro(PassThroughCellIds,
int);
88 vtkGetMacro(PassThroughCellIds,
int);
89 vtkBooleanMacro(PassThroughCellIds,
int);
90 vtkSetMacro(PassThroughPointIds,
int);
91 vtkGetMacro(PassThroughPointIds,
int);
92 vtkBooleanMacro(PassThroughPointIds,
int);
100 vtkSetStringMacro(OriginalCellIdsName);
103 return ( this->OriginalCellIdsName
104 ? this->OriginalCellIdsName :
"vtkOriginalCellIds");
106 vtkSetStringMacro(OriginalPointIdsName);
109 return ( this->OriginalPointIdsName
110 ? this->OriginalPointIdsName :
"vtkOriginalPointIds");
125 vtkSetMacro(NonlinearSubdivisionLevel,
int);
126 vtkGetMacro(NonlinearSubdivisionLevel,
int);
132 virtual int StructuredExecute(vtkDataSet *input,
133 vtkPolyData *output, vtkIdType *ext, vtkIdType *wholeExt);
134 #ifdef VTK_USE_64BIT_IDS
135 virtual int StructuredExecute(vtkDataSet *input,
138 vtkIdType ext[6]; vtkIdType wholeExt[6];
139 for (
int cc=0; cc < 6; cc++)
142 wholeExt[cc] = wholeExt32[cc];
144 return this->StructuredExecute(input, output, ext, wholeExt);
147 virtual int UnstructuredGridExecute(vtkDataSet *input,
149 int updateghostlevel);
150 virtual int DataSetExecute(vtkDataSet *input,
vtkPolyData *output);
151 virtual int UniformGridExecute(
153 vtkIdType *ext, vtkIdType *wholeExt,
bool extractface[6] );
154 #ifdef VTK_USE_64BIT_IDS
155 virtual int UniformGridExecute(vtkDataSet *input,
156 vtkPolyData *output,
int *ext32,
int *wholeExt32,
bool extractface[6] )
158 vtkIdType ext[6]; vtkIdType wholeExt[6];
159 for (
int cc=0; cc < 6; cc++)
162 wholeExt[cc] = wholeExt32[cc];
164 return this->UniformGridExecute(input, output, ext, wholeExt, extractface);
175 virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
177 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
189 void EstimateStructuredDataArraySizes(
190 vtkIdType *ext, vtkIdType *wholeExt,
191 vtkIdType &numPoints, vtkIdType &numCells );
194 void ExecuteFaceStrips(vtkDataSet *input,
vtkPolyData *output,
195 int maxFlag, vtkIdType *ext,
196 int aAxis,
int bAxis,
int cAxis,
197 vtkIdType *wholeExt);
199 void ExecuteFaceQuads(vtkDataSet *input,
vtkPolyData *output,
200 int maxFlag, vtkIdType *ext,
int aAxis,
int bAxis,
int cAxis,
201 vtkIdType *wholeExt,
bool checkVisibility );
203 void ExecuteFaceQuads(vtkDataSet *input,
vtkPolyData *output,
204 int maxFlag, vtkIdType *ext,
205 int aAxis,
int bAxis,
int cAxis,
206 vtkIdType *wholeExt);
208 void InitializeQuadHash(vtkIdType numPoints);
209 void DeleteQuadHash();
210 virtual void InsertQuadInHash(vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType d,
212 virtual void InsertTriInHash(vtkIdType a, vtkIdType b, vtkIdType c,
213 vtkIdType sourceId, vtkIdType faceId = -1);
214 virtual void InsertPolygonInHash(vtkIdType* ids,
int numpts,
216 void InitQuadHashTraversal();
225 vtkIdType GetOutputPointId(vtkIdType inPtId, vtkDataSet *input,
226 vtkPoints *outPts, vtkPointData *outPD);
228 class vtkEdgeInterpolationMap;
230 vtkEdgeInterpolationMap *
EdgeMap;
231 vtkIdType GetInterpolatedPointId(vtkIdType edgePtA, vtkIdType edgePtB,
232 vtkDataSet *input, vtkCell *cell,
233 double pcoords[3], vtkPoints *outPts,
234 vtkPointData *outPD);
239 void InitFastGeomQuadAllocation(vtkIdType numberOfCells);
241 void DeleteAllFastGeomQuads();
253 void RecordOrigCellId(vtkIdType newIndex, vtkIdType origId);
254 virtual void RecordOrigCellId(vtkIdType newIndex,
vtkFastGeomQuad *quad);
259 void RecordOrigPointId(vtkIdType newIndex, vtkIdType origId);
virtual int FillInputPortInformation(int port, vtkInformation *info)
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual const char * GetOriginalCellIdsName()
vtkIdTypeArray * OriginalCellIds
vtkFastGeomQuad * QuadHashTraversal
vtkIdType FastGeomQuadArrayLength
unsigned char ** FastGeomQuadArrays
concrete dataset represents vertices, lines, polygons, and triangle strips
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkIdType QuadHashTraversalIndex
Superclass for algorithms that produce only polydata as output.
struct vtkFastGeomQuadStruct * Next
char * OriginalPointIdsName
char * OriginalCellIdsName
vtkIdType NumberOfFastGeomQuadArrays
virtual const char * GetOriginalPointIdsName()
vtkIdTypeArray * OriginalPointIds
int NonlinearSubdivisionLevel
Extracts outer (polygonal) surface.
vtkIdType NumberOfNewCells
vtkEdgeInterpolationMap * EdgeMap
vtkFastGeomQuad ** QuadHash