17 #ifndef TimeGeometry_h
18 #define TimeGeometry_h
21 #include <itkObject.h>
74 virtual TimeStepType CountTimeSteps() const = 0;
82 virtual TimePointType GetMinimumTimePoint() const = 0;
89 virtual TimePointType GetMaximumTimePoint() const = 0;
97 virtual TimePointType GetMinimumTimePoint(TimeStepType step) const = 0;
103 virtual TimePointType GetMaximumTimePoint(TimeStepType step) const = 0;
113 virtual
TimeBounds GetTimeBounds(TimeStepType step) const = 0;
120 virtual
bool IsValidTimePoint(TimePointType timePoint) const = 0;
128 virtual
bool IsValidTimeStep(TimeStepType timeStep) const = 0;
139 virtual TimePointType TimeStepToTimePoint(TimeStepType timeStep) const = 0;
149 virtual TimeStepType TimePointToTimeStep(TimePointType timePoint) const = 0;
184 virtual
BaseGeometry::
Pointer GetGeometryCloneForTimeStep(TimeStepType timeStep) const = 0;
192 virtual
void SetTimeStepGeometry(
BaseGeometry *geometry, TimeStepType timeStep) = 0;
201 virtual
void Expand(TimeStepType size) = 0;
213 virtual
void ReplaceTimeStepGeometries(const
BaseGeometry *geometry) = 0;
218 virtual
bool IsValid() const = 0;
224 Point3D GetCornerPointInWorld(
int id) const;
231 Point3D GetCornerPointInWorld(
bool xFront = true,
bool yFront = true,
bool zFront = true) const;
236 Point3D GetCenterInWorld() const;
241 double GetDiagonalLength2InWorld() const;
246 double GetDiagonalLengthInWorld() const;
251 bool IsWorldPointInside(const
mitk::
Point3D &p) const;
260 void UpdateBoundingBox();
265 BoundingBox *GetBoundingBoxInWorld()
const {
return m_BoundingBox; }
273 ScalarType GetExtentInWorld(
unsigned int direction)
const;
278 virtual void Initialize();
296 virtual void ExecuteOperation(
Operation *op)
override;
298 virtual void PrintSelf(std::ostream &os, itk::Indent indent)
const override;
325 #endif // TimeGeometry_h
itk::BoundingBox< unsigned long, 3, ScalarType > BoundingBox
Standard 3D-BoundingBox typedef.
itk::SmartPointer< Self > Pointer
itk::FixedArray< ScalarType, 2 > TimeBounds
Standard typedef for time-bounds.
Base class of all Operation-classes.
static void Update(vtkPolyData *)
DataCollection - Class to facilitate loading/accessing structured data.
abstract class, that can be used by Undo to undo an operation.
#define mitkClassMacroItkParent(className, SuperClassName)
mitk::ScalarType TimePointType
std::vcl_size_t TimeStepType
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.
virtual void UpdateWithoutBoundingBox()
Updates everything except the Bounding box.
BoundingBox::BoundsArrayType GetBoundsInWorld() const
Returns the world bounds of the object that cover all time steps.
MITKCORE_EXPORT const ScalarType eps
BoundingBox::Pointer m_BoundingBox
Contains a bounding box which includes all time steps.
BaseGeometry Describes the geometry of a data object.
BoundingBoxType::BoundsArrayType BoundsArrayType