Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MITKPOLYGONTORINGFILTER_H_HEADER_INCLUDED_C10B22CD
00019 #define MITKPOLYGONTORINGFILTER_H_HEADER_INCLUDED_C10B22CD
00020
00021 #include "mitkCommon.h"
00022 #include "MitkExtExports.h"
00023 #include "mitkSurfaceSource.h"
00024 #include "mitkMesh.h"
00025
00026 class vtkPolyData;
00027 class vtkPoints;
00028 class vtkCardinalSpline;
00029 class vtkPoints;
00030 class vtkCellArray;
00031
00032
00033 namespace mitk {
00034
00039 class MitkExt_EXPORT PolygonToRingFilter : public SurfaceSource
00040 {
00041 public:
00042 mitkClassMacro(PolygonToRingFilter, SurfaceSource);
00043 itkNewMacro(Self);
00044
00045 virtual void GenerateOutputInformation();
00046
00047 virtual void GenerateData();
00048
00049 const mitk::Mesh *GetInput(void);
00050
00051 virtual void SetInput(const mitk::Mesh *image);
00052
00054 itkGetMacro(RingRadius, float);
00055
00056
00057 itkSetMacro(RingRadius, float);
00058
00060 itkGetMacro(RingResolution, unsigned int);
00061
00063 itkSetMacro(RingResolution, unsigned int);
00064
00066 itkGetMacro(SplineResolution, unsigned int);
00067
00069 itkSetMacro(SplineResolution, unsigned int);
00070
00071 protected:
00072 typedef std::vector<Vector3D> VectorListType;
00073 typedef std::vector<Point3D> PointListType;
00074
00075 PolygonToRingFilter();
00076
00077 virtual ~PolygonToRingFilter();
00078
00079 void BuildVtkTube( vtkPoints *vPoints, vtkCellArray *polys,
00080 PointListType& ptList, VectorListType& vecList );
00081 void BuildPointAndVectorList( mitk::Mesh::CellType& cell,
00082 PointListType& ptList, VectorListType& vecList, int timeStep = 0 );
00083 void DrawCyl(vtkPoints *vPoints, vtkCellArray *polys,
00084 VectorListType &sl, VectorListType &sc, int idmax,
00085 Point3D & last_p, Point3D & cur_p);
00086
00088 float m_RingRadius;
00089
00091 unsigned int m_RingResolution;
00092
00094 unsigned int m_SplineResolution;
00095
00096 vtkCardinalSpline *m_SplineX, *m_SplineY, *m_SplineZ;
00097
00098 PointListType m_PointList;
00099 VectorListType m_VectorList;
00100 };
00101
00102 }
00103
00104 #endif