16 #include <itkImageRegion.h>
18 #include <vtkSmartPointer.h>
43 itkFactorylessNewMacro(Self);
79 void Expand(
unsigned int timeSteps = 1)
override;
122 void Graft(
const DataObject *data)
override;
138 void PrintSelf(std::ostream &os, itk::Indent indent)
const override;
216 std::vector<vtkSmartPointer<vtkPolyData>> m_PolyDatas;
219 bool m_CalculateBoundingBox;
Base class of all data objects.
Base class for all operations in the undo/redo framework.
Data class for storing polygonal surfaces (vtkPolyData).
virtual void SetVtkPolyData(vtkPolyData *polydata, unsigned int t=0)
Set the vtkPolyData for time step t.
bool IsEmptyTimeStep(unsigned int t) const override
Check whether time step t is empty (has no vtkPolyData).
Surface(const Surface &other)
virtual const RegionType & GetRequestedRegion() const
Get the requested region.
virtual void SetRequestedRegion(Surface::RegionType *region)
Set the requested region from a RegionType pointer.
void InitializeEmpty() override
Pure virtual; Must be used in subclasses to get a data object to a valid state. Should at least creat...
void ClearData() override
reset to non-initialized state, release memory
bool VerifyRequestedRegion() override
Verify that the requested region is within the largest possible region.
itk::ImageRegion< 5 > RegionType
Region type used for pipeline region negotiation (5-dimensional).
void Update() override
Trigger an update of all vtkPolyData objects in the pipeline.
void CalculateBoundingBox()
Compute the bounding box from all vtkPolyData objects across time steps.
void CopyInformation(const itk::DataObject *data) override
Copy information (geometry, region) from another data object.
const RegionType & GetLargestPossibleRegion() const
Get the largest possible region.
virtual void Swap(Surface &other)
Swap the contents of this surface with another surface.
void Expand(unsigned int timeSteps=1) override
Expand the data to the given number of time steps.
unsigned int GetSizeOfPolyDataSeries() const
Get the number of vtkPolyData objects in the time series.
void Graft(const DataObject *data) override
Graft data and information from another data object.
void ExecuteOperation(Operation *operation) override
Execute an operation on this surface (e.g., OpSURFACECHANGED).
Surface & operator=(Surface other)
void SetRequestedRegion(const itk::DataObject *data) override
Set the requested region to match another data object's requested region.
mitkClassMacro(Surface, BaseData)
bool RequestedRegionIsOutsideOfTheBufferedRegion() override
Determine whether the requested region is outside the buffered region.
void PrintSelf(std::ostream &os, itk::Indent indent) const override
Print the surface information to the output stream.
void SetRequestedRegionToLargestPossibleRegion() override
Set the requested region to the largest possible region.
void UpdateOutputInformation() override
Update the output information (bounding box, geometry).
virtual vtkPolyData * GetVtkPolyData(unsigned int t=0) const
Get the vtkPolyData at time step t.
Find image slices visible on a given plane.
MITKCORE_EXPORT const ScalarType eps
Epsilon value for floating point comparison (vnl_math::eps * 100).
double ScalarType
Scalar type used throughout MITK for geometric computations.
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.