Medical Imaging Interaction Toolkit  2024.06.00
Medical Imaging Interaction Toolkit
mitk::Geometry3D Class Reference

Standard implementation of BaseGeometry. More...

#include <mitkGeometry3D.h>

Inheritance diagram for mitk::Geometry3D:
Collaboration diagram for mitk::Geometry3D:

Public Types

typedef Geometry3D Self
 
typedef mitk::BaseGeometry Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef itk::QuaternionRigidTransform< ScalarTypeQuaternionTransformType
 
typedef QuaternionTransformType::VnlQuaternionType VnlQuaternionType
 
- Public Types inherited from mitk::BaseGeometry
typedef BaseGeometry Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef GeometryTransformHolder::TransformType TransformType
 
typedef itk::BoundingBox< unsigned long, 3, ScalarTypeBoundingBoxType
 
typedef BoundingBoxType::BoundsArrayType BoundsArrayType
 
typedef BoundingBoxType::Pointer BoundingBoxPointer
 

Public Member Functions

virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
Pointer Clone () const
 
- Public Member Functions inherited from mitk::BaseGeometry
Pointer Clone () const
 
const Point3D GetOrigin () const
 Get the origin, e.g. the upper-left corner of the plane. More...
 
void SetOrigin (const Point3D &origin)
 Set the origin, i.e. the upper-left corner of the plane. More...
 
const mitk::Vector3D GetSpacing () const
 Get the spacing (size of a pixel). More...
 
void SetSpacing (const mitk::Vector3D &aSpacing, bool enforceSetSpacing=false)
 Set the spacing (m_Spacing). More...
 
VnlVector GetOriginVnl () const
 Get the origin as VnlVector. More...
 
virtual unsigned int GetFrameOfReferenceID () const
 Get the DICOM FrameOfReferenceID referring to the used world coordinate system. More...
 
virtual void SetFrameOfReferenceID (unsigned int _arg)
 Set the DICOM FrameOfReferenceID referring to the used world coordinate system. More...
 
virtual unsigned long GetIndexToWorldTransformLastModified () const
 
void Modified () const override
 Overload of function Modified() to prohibit several calls of Modified() using the ModifiedLock class. More...
 
virtual bool IsValid () const
 Is this BaseGeometry in a state that is valid? More...
 
void Initialize ()
 Initialize the BaseGeometry. More...
 
void InitializeGeometry (Self *newGeometry) const
 
mitk::AffineTransform3DGetIndexToWorldTransform ()
 Get the transformation used to convert from index to world coordinates. More...
 
const mitk::AffineTransform3DGetIndexToWorldTransform () const
 Get the transformation used to convert from index to world coordinates. More...
 
void SetIndexToWorldTransform (mitk::AffineTransform3D *transform)
 
void SetIndexToWorldTransformByVtkMatrix (vtkMatrix4x4 *vtkmatrix)
 Convenience method for setting the ITK transform (m_IndexToWorldTransform) via an vtkMatrix4x4.The spacing of the new transform is copied to m_spacing. More...
 
void SetIndexToWorldTransformWithoutChangingSpacing (mitk::AffineTransform3D *transform)
 
void SetIndexToWorldTransformByVtkMatrixWithoutChangingSpacing (vtkMatrix4x4 *vtkmatrix)
 Convenience method for setting the ITK transform (m_IndexToWorldTransform) via an vtkMatrix4x4. This function keeps the original spacing. More...
 
vtkMatrix4x4 * GetVtkMatrix ()
 
const vtkMatrix4x4 * GetVtkMatrix () const
 
vtkLinearTransform * GetVtkTransform () const
 Get the m_IndexToWorldTransform as a vtkLinearTransform. More...
 
void SetIdentity ()
 Set the transform to identity, the spacing to 1 and origin to 0. More...
 
void Compose (const TransformType *other, bool pre=false)
 Compose new IndexToWorldTransform with a given transform. More...
 
void Compose (const vtkMatrix4x4 *vtkmatrix, bool pre=false)
 Compose new IndexToWorldTransform with a given vtkMatrix4x4. More...
 
void Translate (const Vector3D &vector)
 Translate the origin by a vector. More...
 
void ExecuteOperation (Operation *operation) override
 executes affine operations (translate, rotate, scale) More...
 
void WorldToIndex (const mitk::Point3D &pt_mm, mitk::Point3D &pt_units) const
 Convert world coordinates (in mm) of a point to (continuous!) index coordinates. More...
 
void WorldToIndex (const mitk::Vector3D &vec_mm, mitk::Vector3D &vec_units) const
 Convert world coordinates (in mm) of a vector vec_mm to (continuous!) index coordinates. For further information about coordinates types, please see the Geometry documentation. More...
 
template<unsigned int VIndexDimension>
void WorldToIndex (const mitk::Point3D &pt_mm, itk::Index< VIndexDimension > &index) const
 Convert world coordinates (in mm) of a point to (discrete!) index coordinates. This method rounds to integer indices! For further information about coordinates types, please see the Geometry documentation. More...
 
void IndexToWorld (const mitk::Vector3D &vec_units, mitk::Vector3D &vec_mm) const
 Convert (continuous or discrete) index coordinates of a vector vec_units to world coordinates (in mm) For further information about coordinates types, please see the Geometry documentation. More...
 
void IndexToWorld (const mitk::Point3D &pt_units, mitk::Point3D &pt_mm) const
 Convert (continuous or discrete) index coordinates of a point to world coordinates (in mm) For further information about coordinates types, please see the Geometry documentation. More...
 
template<unsigned int VIndexDimension>
void IndexToWorld (const itk::Index< VIndexDimension > &index, mitk::Point3D &pt_mm) const
 Convert (discrete) index coordinates of a point to world coordinates (in mm) For further information about coordinates types, please see the Geometry documentation. More...
 
void IndexToWorld (const mitk::Point3D &atPt3d_units, const mitk::Vector3D &vec_units, mitk::Vector3D &vec_mm) const
 Convert (continuous or discrete) index coordinates of a vector vec_units to world coordinates (in mm) More...
 
void WorldToIndex (const mitk::Point3D &atPt3d_mm, const mitk::Vector3D &vec_mm, mitk::Vector3D &vec_units) const
 Convert world coordinates (in mm) of a vector vec_mm to (continuous!) index coordinates. More...
 
template<class TCoordRep >
void ItkPhysicalPointToWorld (const itk::Point< TCoordRep, 3 > &itkPhysicalPoint, mitk::Point3D &pt_mm) const
 Deprecated for use with ITK version 3.10 or newer. Convert ITK physical coordinates of a point (in mm, but without a rotation) into MITK world coordinates (in mm) More...
 
template<class TCoordRep >
void WorldToItkPhysicalPoint (const mitk::Point3D &pt_mm, itk::Point< TCoordRep, 3 > &itkPhysicalPoint) const
 Deprecated for use with ITK version 3.10 or newer. Convert world coordinates (in mm) of a point to ITK physical coordinates (in mm, but without a possible rotation) More...
 
virtual const BoundingBoxTypeGetBoundingBox ()
 
const BoundsArrayType GetBounds () const
 
void SetBounds (const BoundsArrayType &bounds)
 Set the bounding box (in index/unit coordinates) More...
 
void SetFloatBounds (const float bounds[6])
 Set the bounding box (in index/unit coordinates) via a float array. More...
 
void SetFloatBounds (const double bounds[6])
 Set the bounding box (in index/unit coordinates) via a double array. More...
 
VnlVector GetMatrixColumn (unsigned int direction) const
 Get a VnlVector along bounding-box in the specified direction, length is spacing. More...
 
mitk::BoundingBox::Pointer CalculateBoundingBoxRelativeToTransform (const mitk::AffineTransform3D *transform) const
 Calculates a bounding-box around the geometry relative to a coordinate system defined by a transform. More...
 
ScalarType GetExtent (unsigned int direction) const
 Set the time bounds (in ms) More...
 
ScalarType GetExtentInMM (int direction) const
 Get the extent of the bounding-box in the specified direction in mm. More...
 
Vector3D GetAxisVector (unsigned int direction) const
 Get vector along bounding-box in the specified direction in mm. More...
 
virtual bool Is2DConvertable ()
 Checks, if the given geometry can be converted to 2D without information loss e.g. when a 2D image is saved, the matrix is usually cropped to 2x2, and when you load it back to MITK it will be filled with standard values. This function checks, if information would be lost during this procedure. More...
 
Point3D GetCenter () const
 Get the center of the bounding-box in mm. More...
 
double GetDiagonalLength2 () const
 Get the squared length of the diagonal of the bounding-box in mm. More...
 
double GetDiagonalLength () const
 Get the length of the diagonal of the bounding-box in mm. More...
 
Point3D GetCornerPoint (int id) const
 Get the position of the corner number id (in world coordinates) More...
 
Point3D GetCornerPoint (bool xFront=true, bool yFront=true, bool zFront=true) const
 Get the position of a corner (in world coordinates) More...
 
void SetExtentInMM (int direction, ScalarType extentInMM)
 Set the extent of the bounding-box in the specified direction in mm. More...
 
bool IsInside (const mitk::Point3D &p) const
 Test whether the point p (world coordinates in mm) is inside the bounding box. More...
 
bool IsIndexInside (const mitk::Point3D &index) const
 Test whether the point p ((continuous!)index coordinates in units) is inside the bounding box. More...
 
template<unsigned int VIndexDimension>
bool IsIndexInside (const itk::Index< VIndexDimension > &index) const
 Convenience method for working with ITK indices. More...
 
virtual void ChangeImageGeometryConsideringOriginOffset (const bool isAnImageGeometry)
 When switching from an Image Geometry to a normal Geometry (and the other way around), you have to. More...
 
virtual bool GetImageGeometry () const
 Is this an ImageGeometry? More...
 
virtual void SetImageGeometry (bool _arg)
 Define that this BaseGeometry is referring to an Image. More...
 
virtual void ImageGeometryOn ()
 
virtual void ImageGeometryOff ()
 
const GeometryTransformHolderGetGeometryTransformHolder () const
 
void MapAxesToOrientations (int axes[]) const
 One to one mapping of axes to world orientations. More...
 
- Public Member Functions inherited from mitk::OperationActor
 itkTypeMacroNoParent (OperationActor) virtual ~OperationActor()
 

Static Public Member Functions

static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
static Pointer New (const Self &_arg)
 
- Static Public Member Functions inherited from mitk::BaseGeometry
static const char * GetStaticNameOfClass ()
 

Protected Member Functions

 Geometry3D ()
 
 Geometry3D (const Geometry3D &)
 
itk::LightObject::Pointer InternalClone () const override
 clones the geometry More...
 
 ~Geometry3D () override
 
void PreSetSpacing (const mitk::Vector3D &aSpacing) override
 PreSetSpacing. More...
 
- Protected Member Functions inherited from mitk::BaseGeometry
 BaseGeometry ()
 
 BaseGeometry (const BaseGeometry &other)
 
 ~BaseGeometry () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
virtual unsigned int GetNDimensions () const
 
bool IsBoundingBoxNull () const
 
bool IsIndexToWorldTransformNull () const
 
void SetVtkMatrixDeepCopy (vtkTransform *vtktransform)
 
void _SetSpacing (const mitk::Vector3D &aSpacing, bool enforceSetSpacing=false)
 
virtual void CheckBounds (const BoundsArrayType &)
 CheckBounds. More...
 
virtual void CheckIndexToWorldTransform (mitk::AffineTransform3D *)
 CheckIndexToWorldTransform. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from mitk::BaseGeometry
static const std::string GetTransformAsString (TransformType *transformType)
 

Detailed Description

Standard implementation of BaseGeometry.

Definition at line 32 of file mitkGeometry3D.h.

Member Typedef Documentation

◆ ConstPointer

Definition at line 35 of file mitkGeometry3D.h.

◆ Pointer

Definition at line 35 of file mitkGeometry3D.h.

◆ QuaternionTransformType

typedef itk::QuaternionRigidTransform<ScalarType> mitk::Geometry3D::QuaternionTransformType

Definition at line 35 of file mitkGeometry3D.h.

◆ Self

Definition at line 35 of file mitkGeometry3D.h.

◆ Superclass

◆ VnlQuaternionType

typedef QuaternionTransformType::VnlQuaternionType mitk::Geometry3D::VnlQuaternionType

Definition at line 38 of file mitkGeometry3D.h.

Constructor & Destructor Documentation

◆ Geometry3D() [1/2]

mitk::Geometry3D::Geometry3D ( )
protected

◆ Geometry3D() [2/2]

mitk::Geometry3D::Geometry3D ( const Geometry3D )
protected

◆ ~Geometry3D()

mitk::Geometry3D::~Geometry3D ( )
overrideprotected

Member Function Documentation

◆ Clone()

Pointer mitk::Geometry3D::Clone ( ) const

◆ GetClassHierarchy()

virtual std::vector<std::string> mitk::Geometry3D::GetClassHierarchy ( ) const
inlineoverridevirtual

Reimplemented from mitk::BaseGeometry.

Definition at line 35 of file mitkGeometry3D.h.

◆ GetClassName()

virtual const char* mitk::Geometry3D::GetClassName ( ) const
virtual

Reimplemented from mitk::BaseGeometry.

◆ GetStaticNameOfClass()

static const char* mitk::Geometry3D::GetStaticNameOfClass ( )
inlinestatic

Definition at line 35 of file mitkGeometry3D.h.

◆ InternalClone()

itk::LightObject::Pointer mitk::Geometry3D::InternalClone ( ) const
overrideprotectedvirtual

clones the geometry

Overwrite in all sub-classes. Normally looks like:

Self::Pointer newGeometry = new Self(*this);
newGeometry->UnRegister();
return newGeometry.GetPointer();

Implements mitk::BaseGeometry.

◆ New() [1/2]

static Pointer mitk::Geometry3D::New ( )
static

Method for creation through the object factory.

◆ New() [2/2]

static Pointer mitk::Geometry3D::New ( const Self _arg)
inlinestatic

Definition at line 42 of file mitkGeometry3D.h.

◆ PreSetSpacing()

void mitk::Geometry3D::PreSetSpacing ( const mitk::Vector3D aSpacing)
inlineoverrideprotectedvirtual

PreSetSpacing.

These virtual function allows a different beahiour in subclasses. Do implement them in every subclass of BaseGeometry. If not needed, use Superclass::PreSetSpacing().

Reimplemented from mitk::BaseGeometry.

Definition at line 71 of file mitkGeometry3D.h.


The documentation for this class was generated from the following file:
mitk::Geometry3D::Self
Geometry3D Self
Definition: mitkGeometry3D.h:35
mitk::Geometry3D::Pointer
itk::SmartPointer< Self > Pointer
Definition: mitkGeometry3D.h:35