00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00043 #ifndef __vtkPolyDataPointSampler_h
00044 #define __vtkPolyDataPointSampler_h
00045
00046 #include "vtkPolyDataAlgorithm.h"
00047
00048 class VTK_GRAPHICS_EXPORT vtkPolyDataPointSampler : public vtkPolyDataAlgorithm
00049 {
00050 public:
00052 static vtkPolyDataPointSampler *New();
00053
00055
00056 vtkTypeMacro(vtkPolyDataPointSampler,vtkPolyDataAlgorithm);
00057 void PrintSelf(ostream& os, vtkIndent indent);
00059
00061
00063 vtkSetClampMacro(Distance,double,0.0,VTK_LARGE_FLOAT);
00064 vtkGetMacro(Distance,double);
00066
00068
00070 vtkGetMacro(GenerateVertexPoints,int);
00071 vtkSetMacro(GenerateVertexPoints,int);
00072 vtkBooleanMacro(GenerateVertexPoints,int);
00074
00076
00078 vtkGetMacro(GenerateEdgePoints,int);
00079 vtkSetMacro(GenerateEdgePoints,int);
00080 vtkBooleanMacro(GenerateEdgePoints,int);
00082
00084
00086 vtkGetMacro(GenerateInteriorPoints,int);
00087 vtkSetMacro(GenerateInteriorPoints,int);
00088 vtkBooleanMacro(GenerateInteriorPoints,int);
00090
00092
00097 vtkGetMacro(GenerateVertices,int);
00098 vtkSetMacro(GenerateVertices,int);
00099 vtkBooleanMacro(GenerateVertices,int);
00101
00102 protected:
00103 vtkPolyDataPointSampler();
00104 ~vtkPolyDataPointSampler() {}
00105
00106 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00107
00108 double Distance;
00109 double Distance2;
00110
00111 int GenerateVertexPoints;
00112 int GenerateEdgePoints;
00113 int GenerateInteriorPoints;
00114 int GenerateVertices;
00115
00116 void SampleEdge(vtkPoints *pts, double x0[3], double x1[3]);
00117 void SampleTriangle(vtkPoints *newPts, vtkPoints *inPts,
00118 vtkIdType *pts);
00119 void SamplePolygon(vtkPoints *newPts, vtkPoints *inPts,
00120 vtkIdType npts, vtkIdType *pts);
00121
00122 private:
00123 vtkPolyDataPointSampler(const vtkPolyDataPointSampler&);
00124 void operator=(const vtkPolyDataPointSampler&);
00125 };
00126
00127 #endif