00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00032 #ifndef __vtkSplineGraphEdges_h
00033 #define __vtkSplineGraphEdges_h
00034
00035 #include "vtkGraphAlgorithm.h"
00036 #include "vtkSmartPointer.h"
00037
00038 class vtkSpline;
00039
00040 class VTK_INFOVIS_EXPORT vtkSplineGraphEdges : public vtkGraphAlgorithm
00041 {
00042 public:
00043 static vtkSplineGraphEdges *New();
00044 vtkTypeMacro(vtkSplineGraphEdges,vtkGraphAlgorithm);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00048
00049 virtual void SetSpline(vtkSpline* s);
00050 vtkGetObjectMacro(Spline, vtkSpline);
00052
00053
00054 enum
00055 {
00056 BSPLINE = 0,
00057 CUSTOM
00058 };
00059
00060
00062
00064 vtkSetMacro(SplineType, int);
00065 vtkGetMacro(SplineType, int);
00067
00069
00070 vtkSetMacro(NumberOfSubdivisions, vtkIdType);
00071 vtkGetMacro(NumberOfSubdivisions, vtkIdType);
00073
00074 protected:
00075 vtkSplineGraphEdges();
00076 ~vtkSplineGraphEdges();
00077
00078 virtual int RequestData(
00079 vtkInformation *,
00080 vtkInformationVector **,
00081 vtkInformationVector *);
00082
00083 virtual unsigned long GetMTime();
00084
00085 void GeneratePoints(vtkGraph* g, vtkIdType e);
00086 void GenerateBSpline(vtkGraph* g, vtkIdType e);
00087
00088 vtkSpline* Spline;
00089
00090 int SplineType;
00091
00092
00093 vtkSmartPointer<vtkSpline> XSpline;
00094 vtkSmartPointer<vtkSpline> YSpline;
00095 vtkSmartPointer<vtkSpline> ZSpline;
00096
00097
00098 vtkIdType NumberOfSubdivisions;
00099
00100 private:
00101 vtkSplineGraphEdges(const vtkSplineGraphEdges&);
00102 void operator=(const vtkSplineGraphEdges&);
00103 };
00104
00105 #endif