13 #ifndef mitkSlicedGeometry3D_h
14 #define mitkSlicedGeometry3D_h
21 class SliceNavigationController;
22 class NavigationController;
68 itkFactorylessNewMacro(Self);
114 itkGetConstMacro(Slices,
unsigned int);
154 itkGetConstMacro(EvenlySpaced,
bool);
212 unsigned int slices);
236 bool frontside =
true,
237 bool rotated =
false);
269 void PrintSelf(std::ostream &os, itk::Indent indent)
const override;
BaseGeometry Describes the geometry of a data object.
Base class of all Operation-classes.
Describes a two-dimensional, rectangular plane.
Controls the selection of the slice the associated BaseRenderer will display.
Describes the geometry of a data object consisting of slices.
static const std::string SLICES
bool HasReferenceGeometry() const
ScalarType GetLargestExtent(const BaseGeometry *geometry)
virtual void SetEvenlySpaced(bool on=true)
virtual mitk::PlaneGeometry * GetPlaneGeometry(int s) const
Returns the PlaneGeometry of the slice (s).
const mitk::BoundingBox * GetBoundingBox() const override
mitkClassMacro(SlicedGeometry3D, BaseGeometry)
void ChangeImageGeometryConsideringOriginOffset(const bool isAnImageGeometry) override
When switching from an Image Geometry to a normal Geometry (and the other way around),...
virtual void InitializeSlicedGeometry(unsigned int slices)
Tell this instance how many PlaneGeometries it shall manage. Bounding box and the PlaneGeometries mus...
static const std::string DIRECTION_VECTOR
virtual void InitializeEvenlySpaced(mitk::PlaneGeometry *geometry2D, unsigned int slices)
Completely initialize this instance as evenly-spaced with slices parallel to the provided PlaneGeomet...
mitk::SliceNavigationController * GetSliceNavigationController()
static const std::string EVENLY_SPACED
const mitk::BaseGeometry * m_ReferenceGeometry
virtual void SetDirectionVector(const mitk::Vector3D &directionVector)
Set/Get the vector between slices for the evenly-spaced case (m_EvenlySpaced==true).
const PlaneGeometry * GetGeometry2D(int s)
virtual bool IsValidSlice(int s=0) const
Check whether a slice exists.
void SetImageGeometry(const bool isAnImageGeometry) override
Define that this BaseGeometry is referring to an Image.
virtual bool SetPlaneGeometry(mitk::PlaneGeometry *geometry2D, int s)
Set PlaneGeometry of slice s.
virtual void SetReferenceGeometry(const BaseGeometry *referenceGeometry)
virtual void ReinitializePlanes(const Point3D ¢er, const Point3D &referencePoint)
mitk::SliceNavigationController * m_SliceNavigationController
virtual void InitializePlanes(const mitk::BaseGeometry *geometry3D, mitk::AnatomicalPlane orientation, bool top=true, bool frontside=true, bool rotated=false)
Completely initialize this instance as evenly-spaced plane slices parallel to a side of the provided ...
void SetGeometry2D(PlaneGeometry *geo, int s)
void PreSetSpacing(const mitk::Vector3D &aSpacing) override
PreSetSpacing.
~SlicedGeometry3D() override
static double CalculateSpacing(const mitk::Vector3D &spacing, const mitk::Vector3D &d)
virtual void SetSliceNavigationController(mitk::SliceNavigationController *snc)
Set the SliceNavigationController corresponding to this sliced geometry.
mitk::Vector3D AdjustNormal(const mitk::Vector3D &normal) const
itk::LightObject::Pointer InternalClone() const override
double CalculateSpacing(const mitk::Vector3D &direction) const
void ExecuteOperation(Operation *operation) override
executes affine operations (translate, rotate, scale)
SlicedGeometry3D(const SlicedGeometry3D &other)
void PrintSelf(std::ostream &os, itk::Indent indent) const override
virtual void InitializeEvenlySpaced(mitk::PlaneGeometry *geometry2D, mitk::ScalarType zSpacing, unsigned int slices)
Completely initialize this instance as evenly-spaced with slices parallel to the provided PlaneGeomet...
mitk::Vector3D m_DirectionVector
std::vector< PlaneGeometry::Pointer > m_PlaneGeometries
virtual const BaseGeometry * GetReferenceGeometry() const
Find image slices visible on a given plane.
itk::BoundingBox< unsigned long, 3, ScalarType > BoundingBox
Standard 3D-BoundingBox typedef.