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 _MITK_UNSTRUCTURED_GRID_H_
00020 #define _MITK_UNSTRUCTURED_GRID_H_
00021
00022 #include "mitkBaseData.h"
00023 #include "MitkExtExports.h"
00024 #include "itkImageRegion.h"
00025
00026 class vtkUnstructuredGrid;
00027
00028 namespace mitk {
00029
00030
00031
00032
00033 class MitkExt_EXPORT UnstructuredGrid : public BaseData
00034 {
00035
00036 public:
00037
00038 typedef itk::ImageRegion< 5 > RegionType;
00039
00040 mitkClassMacro(UnstructuredGrid, BaseData);
00041
00042 itkNewMacro(Self);
00043
00044 virtual void SetVtkUnstructuredGrid(vtkUnstructuredGrid* grid, unsigned int t = 0);
00045
00046 virtual vtkUnstructuredGrid* GetVtkUnstructuredGrid(unsigned int t = 0);
00047
00048 virtual void UpdateOutputInformation();
00049
00050 virtual void SetRequestedRegionToLargestPossibleRegion();
00051
00052 virtual bool RequestedRegionIsOutsideOfTheBufferedRegion();
00053
00054 virtual bool VerifyRequestedRegion();
00055
00056 virtual void SetRequestedRegion(itk::DataObject *data);
00057
00058 virtual void SetRequestedRegion(UnstructuredGrid::RegionType *region);
00059
00060 virtual void CopyInformation(const itk::DataObject *data);
00061
00062 virtual void Update();
00063
00064 const RegionType& GetLargestPossibleRegion() const
00065 {
00066 m_LargestPossibleRegion.SetIndex(3, 0);
00067 m_LargestPossibleRegion.SetSize(3, GetTimeSlicedGeometry()->GetTimeSteps());
00068 return m_LargestPossibleRegion;
00069 }
00070
00071
00072
00073
00074
00075 virtual const RegionType& GetRequestedRegion() const
00076 {
00077 return m_RequestedRegion;
00078 }
00079
00080 void CalculateBoundingBox();
00081
00082 protected:
00083
00084 typedef std::vector< vtkUnstructuredGrid* > VTKUnstructuredGridSeries;
00085
00086
00087
00088 virtual void Expand( unsigned int timeSteps = 1 );
00089
00090 UnstructuredGrid();
00091
00092 virtual ~UnstructuredGrid();
00093
00094 virtual void ClearData();
00095
00096 virtual void InitializeEmpty();
00097
00098 VTKUnstructuredGridSeries m_GridSeries;
00099
00100 mutable RegionType m_LargestPossibleRegion;
00101
00102 RegionType m_RequestedRegion;
00103
00104 bool m_CalculateBoundingBox;
00105 };
00106
00107 }
00108
00109 #endif