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
00019 #ifndef MITKGEOMETRY2DDATATOSURFACEDATAFILTER_H_HEADER_INCLUDED_C10B22CD
00020 #define MITKGEOMETRY2DDATATOSURFACEDATAFILTER_H_HEADER_INCLUDED_C10B22CD
00021
00022 #include "mitkSurfaceSource.h"
00023 #include "mitkGeometry3D.h"
00024 #include "vtkSystemIncludes.h"
00025
00026 class vtkPlaneSource;
00027 class vtkTransformPolyDataFilter;
00028 class vtkCubeSource;
00029 class vtkTransform;
00030 class vtkPlane;
00031 class vtkCutter;
00032 class vtkStripper;
00033 class vtkPolyData;
00034 class vtkPPolyDataNormals;
00035 class vtkTriangleFilter;
00036 class vtkTextureMapToPlane;
00037 class vtkBox;
00038 class vtkClipPolyData;
00039
00040 namespace mitk {
00041
00042 class Geometry2DData;
00043
00062 class MITK_CORE_EXPORT Geometry2DDataToSurfaceFilter : public SurfaceSource
00063 {
00064 public:
00065 mitkClassMacro(Geometry2DDataToSurfaceFilter, SurfaceSource);
00066 itkNewMacro(Self);
00067
00068 virtual void GenerateOutputInformation();
00069
00070 virtual void GenerateData();
00071
00072 const Geometry2DData *GetInput(void);
00073 const Geometry2DData *GetInput(unsigned int idx);
00074
00075 virtual void SetInput(const Geometry2DData *image);
00076 virtual void SetInput(unsigned int index, const Geometry2DData *image);
00077
00081 itkGetMacro(UseGeometryParametricBounds, bool);
00085 itkSetMacro(UseGeometryParametricBounds, bool);
00086
00095 itkGetMacro(XResolution, int);
00104 itkSetMacro(XResolution, int);
00105
00114 itkGetMacro(YResolution, int);
00115
00124 itkSetMacro(YResolution, int);
00125
00135 itkGetConstMacro(PlaceByGeometry, bool);
00136
00146 itkSetMacro(PlaceByGeometry, bool);
00147 itkBooleanMacro(PlaceByGeometry);
00148
00149 itkGetConstMacro( UseBoundingBox, bool );
00150 itkSetMacro( UseBoundingBox, bool );
00151 itkBooleanMacro( UseBoundingBox );
00152
00153 void SetBoundingBox( const BoundingBox *boundingBox );
00154 const BoundingBox *GetBoundingBox() const;
00155
00156 protected:
00157
00158 Geometry2DDataToSurfaceFilter();
00159
00160 virtual ~Geometry2DDataToSurfaceFilter();
00161
00164 vtkPlaneSource* m_PlaneSource;
00165
00169 vtkTransformPolyDataFilter* m_VtkTransformPlaneFilter;
00170
00174 bool m_UseGeometryParametricBounds;
00175
00184 int m_XResolution;
00185
00193 int m_YResolution;
00194
00203 bool m_PlaceByGeometry;
00204
00205 bool m_UseBoundingBox;
00206
00207 BoundingBox::ConstPointer m_BoundingBox;
00208
00209 vtkCubeSource *m_CubeSource;
00210 vtkTransform *m_Transform;
00211 vtkTransformPolyDataFilter *m_PolyDataTransformer;
00212
00213 vtkPlane *m_Plane;
00214 vtkCutter *m_PlaneCutter;
00215 vtkStripper *m_PlaneStripper;
00216 vtkPolyData *m_PlanePolyData;
00217 vtkPPolyDataNormals * m_NormalsUpdater;
00218 vtkTriangleFilter *m_PlaneTriangler;
00219 vtkTextureMapToPlane *m_TextureMapToPlane;
00220
00221 vtkBox *m_Box;
00222 vtkClipPolyData *m_PlaneClipper;
00223 };
00224
00225 }
00226
00227 #endif