Graphics/vtkDataSetSurfaceFilter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00030 #ifndef __vtkDataSetSurfaceFilter_h
00031 #define __vtkDataSetSurfaceFilter_h
00032
00033 #include "vtkDataSetToPolyDataFilter.h"
00034
00035
00036 class vtkPointData;
00037 class vtkPoints;
00038
00039
00040 struct vtkFastGeomQuadStruct
00041 {
00042 vtkIdType p0;
00043 vtkIdType p1;
00044 vtkIdType p2;
00045 vtkIdType p3;
00046 vtkIdType SourceId;
00047 struct vtkFastGeomQuadStruct *Next;
00048 };
00049 typedef struct vtkFastGeomQuadStruct vtkFastGeomQuad;
00050
00051
00052 class VTK_GRAPHICS_EXPORT vtkDataSetSurfaceFilter : public vtkDataSetToPolyDataFilter
00053 {
00054 public:
00055 static vtkDataSetSurfaceFilter *New();
00056 vtkTypeRevisionMacro(vtkDataSetSurfaceFilter,vtkDataSetToPolyDataFilter);
00057 void PrintSelf(ostream& os, vtkIndent indent);
00058
00060
00063 vtkSetMacro(UseStrips, int);
00064 vtkGetMacro(UseStrips, int);
00065 vtkBooleanMacro(UseStrips, int);
00067
00068 protected:
00069 vtkDataSetSurfaceFilter();
00070 ~vtkDataSetSurfaceFilter();
00071
00072 int UseStrips;
00073
00074 void ComputeInputUpdateExtents(vtkDataObject *output);
00075
00076 void Execute();
00077 void StructuredExecute(vtkDataSet *input, int *ext);
00078 void UnstructuredGridExecute();
00079 void DataSetExecute();
00080 void ExecuteInformation();
00081
00082
00083 void ExecuteFaceStrips(vtkDataSet *input, int maxFlag, int *ext,
00084 int aAxis, int bAxis, int cAxis);
00085 void ExecuteFaceQuads(vtkDataSet *input, int maxFlag, int *ext,
00086 int aAxis, int bAxis, int cAxis);
00087
00088 void InitializeQuadHash(vtkIdType numPoints);
00089 void DeleteQuadHash();
00090 void InsertQuadInHash(vtkIdType a, vtkIdType b, vtkIdType c, vtkIdType d,
00091 vtkIdType sourceId);
00092 void InsertTriInHash(vtkIdType a, vtkIdType b, vtkIdType c,
00093 vtkIdType sourceId);
00094 void InitQuadHashTraversal();
00095 vtkFastGeomQuad *GetNextVisibleQuadFromHash();
00096
00097 vtkFastGeomQuad **QuadHash;
00098 vtkIdType QuadHashLength;
00099 vtkFastGeomQuad *QuadHashTraversal;
00100 vtkIdType QuadHashTraversalIndex;
00101
00102 vtkIdType *PointMap;
00103 vtkIdType GetOutputPointId(vtkIdType inPtId, vtkDataSet *input,
00104 vtkPoints *outPts, vtkPointData *outPD);
00105
00106 vtkIdType NumberOfNewCells;
00107
00108
00109 void InitFastGeomQuadAllocation(int numberOfCells);
00110 vtkFastGeomQuad* NewFastGeomQuad();
00111 void DeleteAllFastGeomQuads();
00112
00113 int FastGeomQuadArrayLength;
00114 int NumberOfFastGeomQuadArrays;
00115 vtkFastGeomQuad** FastGeomQuadArrays;
00116
00117 int NextArrayIndex;
00118 int NextQuadIndex;
00119
00120 private:
00121 vtkDataSetSurfaceFilter(const vtkDataSetSurfaceFilter&);
00122 void operator=(const vtkDataSetSurfaceFilter&);
00123 };
00124
00125 #endif
00126
00127