13 #ifndef mitkSurfaceInterpolationController_h_Included
14 #define mitkSurfaceInterpolationController_h_Included
31 #include "vtkAppendPolyData.h"
32 #include "vtkCellArray.h"
33 #include "vtkPoints.h"
34 #include "vtkPolyData.h"
35 #include "vtkPolygon.h"
36 #include "vtkSmartPointer.h"
40 #include "vtkImageData.h"
41 #include "vtkMarchingCubes.h"
42 #include "vtkProperty.h"
52 itkFactorylessNewMacro(Self);
54 itkGetMacro(DistanceImageSpacing,
double);
65 typedef std::map<mitk::Image *, ContourPositionInformationVec2D>
ContourListMap;
71 if (m_CurrentTimePoint != tp)
73 m_CurrentTimePoint = tp;
75 if (m_SelectedSegmentation)
77 this->ReinitializeInterpolation();
96 bool RemoveContour(ContourPositionInformation contourInfo);
103 void AddNewContours(std::vector<Surface::Pointer> newContours);
110 const mitk::Surface *GetContour(ContourPositionInformation contourInfo);
116 unsigned int GetNumberOfContours();
129 void SetMinSpacing(
double minSpacing);
135 void SetMaxSpacing(
double maxSpacing);
141 void SetDistanceImageVolume(
unsigned int distImageVolume);
149 Surface *GetContoursAsSurface();
192 void RemoveAllInterpolationSessions();
206 double EstimatePortionOfNeededMemory();
208 unsigned int GetNumberOfInterpolationSessions();
215 template <
typename TPixel,
unsigned int VImageDimension>
216 void GetImageBase(itk::Image<TPixel, VImageDimension> *input, itk::ImageBase<3>::Pointer &result);
219 void ReinitializeInterpolation();
221 void OnSegmentationDeleted(
const itk::Object *caller,
const itk::EventObject &event);
223 void AddToInterpolationPipeline(ContourPositionInformation contourInfo);
231 double m_DistanceImageSpacing;
233 vtkSmartPointer<vtkPolyData> m_PolyData;
237 ContourListMap m_ListOfInterpolationSessions;
241 unsigned int m_CurrentNumberOfReducedContours;
245 std::map<mitk::Image *, unsigned long> m_SegmentationObserverTags;