Medical Imaging Interaction Toolkit  2018.4.99-7e02155b
Medical Imaging Interaction Toolkit
mitk::AbstractTransformGeometry Class Reference

Describes a geometry defined by an vtkAbstractTransform and a plane. More...

#include <mitkAbstractTransformGeometry.h>

Inheritance diagram for mitk::AbstractTransformGeometry:
Collaboration diagram for mitk::AbstractTransformGeometry:

Public Types

typedef AbstractTransformGeometry Self
 
typedef PlaneGeometry Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Public Types inherited from mitk::PlaneGeometry
enum  PlaneOrientation { Axial, Sagittal, Frontal, None }
 
typedef PlaneGeometry Self
 
typedef BaseGeometry Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- 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
 
virtual vtkAbstractTransform * GetVtkAbstractTransform () const
 Get the vtkAbstractTransform (stored in m_VtkAbstractTransform) More...
 
unsigned long GetMTime () const override
 
virtual const PlaneGeometryGetPlane ()
 Get the rectangular area that is used for transformation by m_VtkAbstractTransform and therewith defines the 2D manifold described by AbstractTransformGeometry. More...
 
bool Project (const mitk::Point3D &pt3d_mm, mitk::Point3D &projectedPt3d_mm) const override
 projects the given point onto the curved plane More...
 
bool Project (const mitk::Point3D &atPt3d_mm, const mitk::Vector3D &vec3d_mm, mitk::Vector3D &projectedVec3d_mm) const override
 projects a given vector starting from given point onto the curved plane More...
 
bool Project (const mitk::Vector3D &vec3d_mm, mitk::Vector3D &projectedVec3d_mm) const override
 projects a given vector starting from standard point onto the curved plane More...
 
bool Map (const mitk::Point3D &pt3d_mm, mitk::Point2D &pt2d_mm) const override
 Project a 3D point given in mm (pt3d_mm) onto the 2D geometry. The result is a 2D point in mm (pt2d_mm). More...
 
void Map (const mitk::Point2D &pt2d_mm, mitk::Point3D &pt3d_mm) const override
 Converts a 2D point given in mm (pt2d_mm) relative to the upper-left corner of the geometry into the corresponding world-coordinate (a 3D point in mm, pt3d_mm). More...
 
bool Map (const mitk::Point3D &atPt3d_mm, const mitk::Vector3D &vec3d_mm, mitk::Vector2D &vec2d_mm) const override
 Project a 3D vector given in mm (vec3d_mm) onto the 2D geometry. The result is a 2D vector in mm (vec2d_mm). More...
 
void Map (const mitk::Point2D &atPt2d_mm, const mitk::Vector2D &vec2d_mm, mitk::Vector3D &vec3d_mm) const override
 Converts a 2D vector given in mm (vec2d_mm) relative to the upper-left corner of the geometry into the corresponding world-coordinate (a 3D vector in mm, vec3d_mm). More...
 
void IndexToWorld (const mitk::Point2D &pt_units, mitk::Point2D &pt_mm) const override
 
void WorldToIndex (const mitk::Point2D &pt_mm, mitk::Point2D &pt_units) const override
 
void IndexToWorld (const mitk::Point2D &atPt2d_units, const mitk::Vector2D &vec_units, mitk::Vector2D &vec_mm) const override
 Convert (continuous or discrete) index coordinates of a vector vec_units to world coordinates (in mm) More...
 
void IndexToWorld (const mitk::Vector2D &vec_units, mitk::Vector2D &vec_mm) const override
 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 WorldToIndex (const mitk::Point2D &atPt2d_mm, const mitk::Vector2D &vec_mm, mitk::Vector2D &vec_units) const override
 Convert world coordinates (in mm) of a vector vec_mm to (continuous!) index coordinates. More...
 
void WorldToIndex (const mitk::Vector2D &vec_mm, mitk::Vector2D &vec_units) const override
 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...
 
bool IsAbove (const Point3D &pt3d_mm, bool considerBoundingBox=false) const override
 Calculates, whether a point is below or above the plane. There are two different calculation methods, with or without consideration of the bounding box. More...
 
virtual mitk::ScalarType GetParametricExtentInMM (int direction) const
 
virtual const itk::Transform< mitk::ScalarType, 3, 3 > * GetParametricTransform () const
 
virtual void SetOversampling (mitk::ScalarType oversampling)
 Change the parametric bounds to oversampling times the bounds of m_Plane. More...
 
virtual void CalculateFrameGeometry ()
 Calculates the standard part of a BaseGeometry (IndexToWorldTransform and bounding box) around the curved geometry. Has to be implemented in subclasses. More...
 
virtual void SetFrameGeometry (const mitk::BaseGeometry *frameGeometry)
 Set the frame geometry which is used as the standard part of an BaseGeometry (IndexToWorldTransform and bounding box) More...
 
itk::LightObject::Pointer InternalClone () const override
 clones the geometry More...
 
virtual const BoundingBoxGetParametricBoundingBox ()
 Get the parametric bounding-box. More...
 
const BoundingBox::BoundsArrayType & GetParametricBounds () const
 Get the parametric bounds. More...
 
mitk::ScalarType GetParametricExtent (int direction) const
 Get the parametric extent. More...
 
- Public Member Functions inherited from mitk::PlaneGeometry
Pointer Clone () const
 
virtual void InitializeStandardPlane (const BaseGeometry *geometry3D, PlaneOrientation planeorientation=Axial, ScalarType zPosition=0, bool frontside=true, bool rotated=false, bool top=true)
 Initialize a plane with orientation planeorientation (default: axial) with respect to BaseGeometry (default: identity). Spacing also taken from BaseGeometry. More...
 
virtual void InitializeStandardPlane (const BaseGeometry *geometry3D, bool top, PlaneOrientation planeorientation=Axial, bool frontside=true, bool rotated=false)
 Initialize a plane with orientation planeorientation (default: axial) with respect to BaseGeometry (default: identity). Spacing also taken from BaseGeometry. More...
 
virtual void InitializeStandardPlane (ScalarType width, ScalarType height, const AffineTransform3D *transform=nullptr, PlaneOrientation planeorientation=Axial, ScalarType zPosition=0, bool frontside=true, bool rotated=false, bool top=true)
 Initialize a plane with orientation planeorientation (default: axial) with respect to transform (default: identity) given width and height in units. More...
 
virtual void InitializeStandardPlane (ScalarType width, ScalarType height, const Vector3D &spacing, PlaneOrientation planeorientation=Axial, ScalarType zPosition=0, bool frontside=true, bool rotated=false, bool top=true)
 Initialize plane with orientation planeorientation (default: axial) given width, height and spacing. More...
 
virtual void InitializeStandardPlane (ScalarType width, ScalarType height, const Vector3D &rightVector, const Vector3D &downVector, const Vector3D *spacing=nullptr)
 Initialize plane by width and height in pixels, right-/down-vector (itk) to describe orientation in world-space (vectors will be normalized) and spacing (default: 1.0 mm in all directions). More...
 
virtual void InitializeStandardPlane (ScalarType width, ScalarType height, const VnlVector &rightVector, const VnlVector &downVector, const Vector3D *spacing=nullptr)
 Initialize plane by width and height in pixels, right-/down-vector (vnl) to describe orientation in world-space (vectors will be normalized) and spacing (default: 1.0 mm in all directions). More...
 
virtual void InitializeStandardPlane (const Vector3D &rightVector, const Vector3D &downVector, const Vector3D *spacing=nullptr)
 Initialize plane by right-/down-vector (itk) and spacing (default: 1.0 mm in all directions). More...
 
virtual void InitializeStandardPlane (const VnlVector &rightVector, const VnlVector &downVector, const Vector3D *spacing=nullptr)
 Initialize plane by right-/down-vector (vnl) and spacing (default: 1.0 mm in all directions). More...
 
virtual void InitializePlane (const Point3D &origin, const Vector3D &normal)
 Initialize plane by origin and normal (size is 1.0 mm in all directions, direction of right-/down-vector valid but undefined). More...
 
void SetMatrixByVectors (const VnlVector &rightVector, const VnlVector &downVector, ScalarType thickness=1.0)
 Initialize plane by right-/down-vector. More...
 
Vector3D GetNormal () const
 Normal of the plane. More...
 
VnlVector GetNormalVnl () const
 Normal of the plane as VnlVector. More...
 
virtual ScalarType SignedDistance (const Point3D &pt3d_mm) const
 
ScalarType DistanceFromPlane (const Point3D &pt3d_mm) const
 Distance of the point from the plane (bounding-box not considered) More...
 
ScalarType SignedDistanceFromPlane (const Point3D &pt3d_mm) const
 Signed distance of the point from the plane (bounding-box not considered) More...
 
ScalarType DistanceFromPlane (const PlaneGeometry *plane) const
 Distance of the plane from another plane (bounding-box not considered) More...
 
ScalarType SignedDistanceFromPlane (const PlaneGeometry *plane) const
 Signed distance of the plane from another plane (bounding-box not considered) More...
 
bool IntersectionLine (const PlaneGeometry *plane, Line3D &crossline) const
 Calculate the intersecting line of two planes. More...
 
unsigned int IntersectWithPlane2D (const PlaneGeometry *plane, Point2D &lineFrom, Point2D &lineTo) const
 Calculate two points where another plane intersects the border of this plane. More...
 
double Angle (const PlaneGeometry *plane) const
 Calculate the angle between two planes. More...
 
double Angle (const Line3D &line) const
 Calculate the angle between the plane and a line. More...
 
bool IntersectionPoint (const Line3D &line, Point3D &intersectionPoint) const
 Calculate intersection point between the plane and a line. More...
 
bool IntersectionPointParam (const Line3D &line, double &t) const
 Calculate line parameter of intersection point between the plane and a line. More...
 
bool IsParallel (const PlaneGeometry *plane) const
 Returns whether the plane is parallel to another plane. More...
 
bool IsOnPlane (const Point3D &point) const
 Returns whether the point is on the plane (bounding-box not considered) More...
 
bool IsOnPlane (const Line3D &line) const
 Returns whether the line is on the plane (bounding-box not considered) More...
 
bool IsOnPlane (const PlaneGeometry *plane) const
 Returns whether the plane is on the plane (bounding-box not considered) More...
 
Point3D ProjectPointOntoPlane (const Point3D &pt) const
 Returns the lot from the point to the plane. More...
 
itk::LightObject::Pointer InternalClone () const override
 clones the geometry More...
 
void ExecuteOperation (Operation *operation) override
 
virtual void SetSizeInUnits (mitk::ScalarType width, mitk::ScalarType height)
 Set the width and height of this 2D-geometry in units by calling SetBounds. This does not change the extent in mm! More...
 
ScalarType Distance (const Point3D &pt3d_mm) const
 Distance of the point from the geometry (bounding-box not considered) More...
 
void SetReferenceGeometry (const mitk::BaseGeometry *geometry)
 Set the geometrical frame of reference in which this PlaneGeometry is placed. More...
 
const BaseGeometryGetReferenceGeometry () const
 Get the geometrical frame of reference for this PlaneGeometry. More...
 
bool HasReferenceGeometry () 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 ()
 
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 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 ((continous!)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 refering to an Image. More...
 
virtual void ImageGeometryOn ()
 
virtual void ImageGeometryOff ()
 
const GeometryTransformHolderGetGeometryTransformHolder () const
 
- Public Member Functions inherited from mitk::OperationActor
 itkTypeMacroNoParent (OperationActor) virtual ~OperationActor()
 

Static Public Member Functions

static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
- Static Public Member Functions inherited from mitk::PlaneGeometry
static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
static bool CheckRotationMatrix (AffineTransform3D *transform, double epsilon=mitk::eps)
 Check if matrix is a rotation matrix: More...
 
static std::vector< int > CalculateDominantAxes (mitk::AffineTransform3D::MatrixType::InternalMatrixType &rotation_matrix)
 
- Static Public Member Functions inherited from mitk::BaseGeometry
static const char * GetStaticNameOfClass ()
 

Protected Member Functions

 AbstractTransformGeometry ()
 
 AbstractTransformGeometry (const AbstractTransformGeometry &other)
 
 ~AbstractTransformGeometry () override
 
virtual void SetVtkAbstractTransform (vtkAbstractTransform *aVtkAbstractTransform)
 Set the vtkAbstractTransform (stored in m_VtkAbstractTransform) More...
 
virtual void SetPlane (const mitk::PlaneGeometry *aPlane)
 Set the rectangular area that is used for transformation by m_VtkAbstractTransform and therewith defines the 2D manifold described by ExternAbstractTransformGeometry. More...
 
virtual void SetParametricBounds (const BoundingBox::BoundsArrayType &bounds)
 Set the parametric bounds. More...
 
void PreSetSpacing (const mitk::Vector3D &aSpacing) override
 PreSetSpacing. More...
 
- Protected Member Functions inherited from mitk::PlaneGeometry
 PlaneGeometry ()
 
 PlaneGeometry (const PlaneGeometry &other)
 
 ~PlaneGeometry () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
void PreSetSpacing (const mitk::Vector3D &aSpacing) override
 PreSetSpacing. More...
 
void CheckBounds (const BoundsArrayType &bounds) override
 CheckBounds. More...
 
void CheckIndexToWorldTransform (mitk::AffineTransform3D *transform) override
 CheckIndexToWorldTransform. 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)
 

Protected Attributes

mitk::PlaneGeometry::Pointer m_Plane
 The rectangular area that is used for transformation by m_VtkAbstractTransform and therewith defines the 2D manifold described by AbstractTransformGeometry. More...
 
itk::VtkAbstractTransform< ScalarType >::Pointer m_ItkVtkAbstractTransform
 
mitk::BaseGeometry::Pointer m_FrameGeometry
 
mitk::BoundingBox::Pointer m_ParametricBoundingBox
 
- Protected Attributes inherited from mitk::PlaneGeometry
const mitk::BaseGeometrym_ReferenceGeometry
 

Additional Inherited Members

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

Detailed Description

Describes a geometry defined by an vtkAbstractTransform and a plane.

vtkAbstractTransform is the most general transform in vtk (superclass for all vtk geometric transformations). It defines an arbitrary 3D transformation, i.e., a transformation of 3D space into 3D space. In contrast, AbstractTransformGeometry (since it is a subclass of PlaneGeometry) describes a 2D manifold in 3D space. The 2D manifold is defined as the manifold that results from transforming a rectangle (given in m_Plane as a PlaneGeometry) by the vtkAbstractTransform (given in m_VtkAbstractTransform). The PlaneGeometry m_Plane is used to define the parameter space. 2D coordinates are first mapped by the PlaneGeometry and the resulting 3D coordinates are put into the vtkAbstractTransform.

Note
This class is the superclass of concrete geometries. Since there is no write access to the vtkAbstractTransform and m_Plane, this class is somehow abstract. For full write access from extern, use ExternAbstractTransformGeometry.
The bounds of the PlaneGeometry are used as the parametric bounds.
See also
ExternAbstractTransformGeometry

Definition at line 44 of file mitkAbstractTransformGeometry.h.

Member Typedef Documentation

◆ ConstPointer

◆ Pointer

◆ Self

◆ Superclass

Constructor & Destructor Documentation

◆ AbstractTransformGeometry() [1/2]

mitk::AbstractTransformGeometry::AbstractTransformGeometry ( )
protected

◆ AbstractTransformGeometry() [2/2]

mitk::AbstractTransformGeometry::AbstractTransformGeometry ( const AbstractTransformGeometry other)
protected

◆ ~AbstractTransformGeometry()

mitk::AbstractTransformGeometry::~AbstractTransformGeometry ( )
overrideprotected

Member Function Documentation

◆ CalculateFrameGeometry()

virtual void mitk::AbstractTransformGeometry::CalculateFrameGeometry ( )
virtual

Calculates the standard part of a BaseGeometry (IndexToWorldTransform and bounding box) around the curved geometry. Has to be implemented in subclasses.

See also
SetFrameGeometry

◆ Clone()

Pointer mitk::AbstractTransformGeometry::Clone ( ) const

◆ GetClassHierarchy()

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

◆ GetClassName()

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

◆ GetMTime()

unsigned long mitk::AbstractTransformGeometry::GetMTime ( ) const
override

◆ GetParametricBoundingBox()

virtual const BoundingBox* mitk::AbstractTransformGeometry::GetParametricBoundingBox ( )
virtual

Get the parametric bounding-box.

See AbstractTransformGeometry for an example usage of this.

◆ GetParametricBounds()

const BoundingBox::BoundsArrayType& mitk::AbstractTransformGeometry::GetParametricBounds ( ) const

Get the parametric bounds.

See AbstractTransformGeometry for an example usage of this.

◆ GetParametricExtent()

mitk::ScalarType mitk::AbstractTransformGeometry::GetParametricExtent ( int  direction) const

Get the parametric extent.

See AbstractTransformGeometry for an example usage of this.

◆ GetParametricExtentInMM()

virtual mitk::ScalarType mitk::AbstractTransformGeometry::GetParametricExtentInMM ( int  direction) const
virtual

◆ GetParametricTransform()

virtual const itk::Transform<mitk::ScalarType, 3, 3>* mitk::AbstractTransformGeometry::GetParametricTransform ( ) const
virtual

◆ GetPlane()

virtual const PlaneGeometry* mitk::AbstractTransformGeometry::GetPlane ( )
virtual

Get the rectangular area that is used for transformation by m_VtkAbstractTransform and therewith defines the 2D manifold described by AbstractTransformGeometry.

◆ GetStaticNameOfClass()

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

Definition at line 47 of file mitkAbstractTransformGeometry.h.

◆ GetVtkAbstractTransform()

virtual vtkAbstractTransform* mitk::AbstractTransformGeometry::GetVtkAbstractTransform ( ) const
virtual

Get the vtkAbstractTransform (stored in m_VtkAbstractTransform)

◆ IndexToWorld() [1/3]

void mitk::AbstractTransformGeometry::IndexToWorld ( const mitk::Point2D pt_units,
mitk::Point2D pt_mm 
) const
overridevirtual

Reimplemented from mitk::PlaneGeometry.

◆ IndexToWorld() [2/3]

void mitk::AbstractTransformGeometry::IndexToWorld ( const mitk::Point2D atPt2d_units,
const mitk::Vector2D vec_units,
mitk::Vector2D vec_mm 
) const
overridevirtual

Convert (continuous or discrete) index coordinates of a vector vec_units to world coordinates (in mm)

Deprecated:
First parameter (Point2D) is not used. If possible, please use void IndexToWorld(const

Reimplemented from mitk::PlaneGeometry.

◆ IndexToWorld() [3/3]

void mitk::AbstractTransformGeometry::IndexToWorld ( const mitk::Vector2D vec_units,
mitk::Vector2D vec_mm 
) const
overridevirtual

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.

Reimplemented from mitk::PlaneGeometry.

◆ InternalClone()

itk::LightObject::Pointer mitk::AbstractTransformGeometry::InternalClone ( ) const
overridevirtual

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.

Reimplemented in mitk::LandmarkProjectorBasedCurvedGeometry, and mitk::ThinPlateSplineCurvedGeometry.

◆ IsAbove()

bool mitk::AbstractTransformGeometry::IsAbove ( const Point3D pt3d_mm,
bool  considerBoundingBox = false 
) const
overridevirtual

Calculates, whether a point is below or above the plane. There are two different calculation methods, with or without consideration of the bounding box.

Reimplemented from mitk::PlaneGeometry.

◆ Map() [1/4]

bool mitk::AbstractTransformGeometry::Map ( const mitk::Point3D pt3d_mm,
mitk::Point2D pt2d_mm 
) const
overridevirtual

Project a 3D point given in mm (pt3d_mm) onto the 2D geometry. The result is a 2D point in mm (pt2d_mm).

The result is a 2D point in mm (pt2d_mm) relative to the upper-left corner of the geometry. To convert this point into units (e.g., pixels in case of an image), use WorldToIndex.

Returns
true projection was possible
See also
Project(const mitk::Point3D &pt3d_mm, mitk::Point3D &projectedPt3d_mm)

Reimplemented from mitk::PlaneGeometry.

◆ Map() [2/4]

void mitk::AbstractTransformGeometry::Map ( const mitk::Point2D pt2d_mm,
mitk::Point3D pt3d_mm 
) const
overridevirtual

Converts a 2D point given in mm (pt2d_mm) relative to the upper-left corner of the geometry into the corresponding world-coordinate (a 3D point in mm, pt3d_mm).

To convert a 2D point given in units (e.g., pixels in case of an image) into a 2D point given in mm (as required by this method), use IndexToWorld.

Reimplemented from mitk::PlaneGeometry.

◆ Map() [3/4]

bool mitk::AbstractTransformGeometry::Map ( const mitk::Point3D atPt3d_mm,
const mitk::Vector3D vec3d_mm,
mitk::Vector2D vec2d_mm 
) const
overridevirtual

Project a 3D vector given in mm (vec3d_mm) onto the 2D geometry. The result is a 2D vector in mm (vec2d_mm).

The result is a 2D vector in mm (vec2d_mm) relative to the upper-left corner of the geometry. To convert this point into units (e.g., pixels in case of an image), use WorldToIndex.

Returns
true projection was possible
See also
Project(const mitk::Vector3D &vec3d_mm, mitk::Vector3D &projectedVec3d_mm)

Reimplemented from mitk::PlaneGeometry.

◆ Map() [4/4]

void mitk::AbstractTransformGeometry::Map ( const mitk::Point2D atPt2d_mm,
const mitk::Vector2D vec2d_mm,
mitk::Vector3D vec3d_mm 
) const
overridevirtual

Converts a 2D vector given in mm (vec2d_mm) relative to the upper-left corner of the geometry into the corresponding world-coordinate (a 3D vector in mm, vec3d_mm).

To convert a 2D vector given in units (e.g., pixels in case of an image) into a 2D vector given in mm (as required by this method), use IndexToWorld.

Reimplemented from mitk::PlaneGeometry.

◆ New()

static Pointer mitk::AbstractTransformGeometry::New ( )
static

◆ PreSetSpacing()

void mitk::AbstractTransformGeometry::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.

Reimplemented in mitk::LandmarkProjectorBasedCurvedGeometry, and mitk::ThinPlateSplineCurvedGeometry.

Definition at line 231 of file mitkAbstractTransformGeometry.h.

◆ Project() [1/3]

bool mitk::AbstractTransformGeometry::Project ( const mitk::Point3D pt3d_mm,
mitk::Point3D projectedPt3d_mm 
) const
overridevirtual

projects the given point onto the curved plane

Reimplemented from mitk::PlaneGeometry.

◆ Project() [2/3]

bool mitk::AbstractTransformGeometry::Project ( const mitk::Point3D atPt3d_mm,
const mitk::Vector3D vec3d_mm,
mitk::Vector3D projectedVec3d_mm 
) const
overridevirtual

projects a given vector starting from given point onto the curved plane

Warning
no satisfiyng implementation existing yet

Reimplemented from mitk::PlaneGeometry.

◆ Project() [3/3]

bool mitk::AbstractTransformGeometry::Project ( const mitk::Vector3D vec3d_mm,
mitk::Vector3D projectedVec3d_mm 
) const
overridevirtual

projects a given vector starting from standard point onto the curved plane

Warning
no satisfying implementation existing yet

Reimplemented from mitk::PlaneGeometry.

◆ SetFrameGeometry()

virtual void mitk::AbstractTransformGeometry::SetFrameGeometry ( const mitk::BaseGeometry frameGeometry)
virtual

Set the frame geometry which is used as the standard part of an BaseGeometry (IndexToWorldTransform and bounding box)

Maybe used as a hint within which the interpolation shall occur by concrete sub-classes.

See also
CalculateFrameGeometry

Reimplemented in mitk::LandmarkProjectorBasedCurvedGeometry.

◆ SetOversampling()

virtual void mitk::AbstractTransformGeometry::SetOversampling ( mitk::ScalarType  oversampling)
virtual

Change the parametric bounds to oversampling times the bounds of m_Plane.

The change is done once (immediately). Later changes of the bounds of m_Plane will not influence the parametric bounds. (Consequently, there is no method to get the oversampling.)

◆ SetParametricBounds()

virtual void mitk::AbstractTransformGeometry::SetParametricBounds ( const BoundingBox::BoundsArrayType &  bounds)
protectedvirtual

Set the parametric bounds.

Protected in this class, made public in some sub-classes, e.g., ExternAbstractTransformGeometry.

◆ SetPlane()

virtual void mitk::AbstractTransformGeometry::SetPlane ( const mitk::PlaneGeometry aPlane)
protectedvirtual

Set the rectangular area that is used for transformation by m_VtkAbstractTransform and therewith defines the 2D manifold described by ExternAbstractTransformGeometry.

Protected in this class, made public in ExternAbstractTransformGeometry.

Note
The bounds of the PlaneGeometry are used as the parametric bounds.
The PlaneGeometry is cloned, not linked/referenced.

◆ SetVtkAbstractTransform()

virtual void mitk::AbstractTransformGeometry::SetVtkAbstractTransform ( vtkAbstractTransform *  aVtkAbstractTransform)
protectedvirtual

Set the vtkAbstractTransform (stored in m_VtkAbstractTransform)

Protected in this class, made public in ExternAbstractTransformGeometry.

◆ WorldToIndex() [1/3]

void mitk::AbstractTransformGeometry::WorldToIndex ( const mitk::Point2D pt_mm,
mitk::Point2D pt_units 
) const
overridevirtual

Reimplemented from mitk::PlaneGeometry.

◆ WorldToIndex() [2/3]

void mitk::AbstractTransformGeometry::WorldToIndex ( const mitk::Point2D atPt2d_mm,
const mitk::Vector2D vec_mm,
mitk::Vector2D vec_units 
) const
overridevirtual

Convert world coordinates (in mm) of a vector vec_mm to (continuous!) index coordinates.

Deprecated:
First parameter (Point2D) is not used. If possible, please use void WorldToIndex(const

Reimplemented from mitk::PlaneGeometry.

◆ WorldToIndex() [3/3]

void mitk::AbstractTransformGeometry::WorldToIndex ( const mitk::Vector2D vec_mm,
mitk::Vector2D vec_units 
) const
overridevirtual

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.

Reimplemented from mitk::PlaneGeometry.

Member Data Documentation

◆ m_FrameGeometry

mitk::BaseGeometry::Pointer mitk::AbstractTransformGeometry::m_FrameGeometry
protected

Definition at line 214 of file mitkAbstractTransformGeometry.h.

◆ m_ItkVtkAbstractTransform

itk::VtkAbstractTransform<ScalarType>::Pointer mitk::AbstractTransformGeometry::m_ItkVtkAbstractTransform
protected

Definition at line 212 of file mitkAbstractTransformGeometry.h.

◆ m_ParametricBoundingBox

mitk::BoundingBox::Pointer mitk::AbstractTransformGeometry::m_ParametricBoundingBox
mutableprotected

Definition at line 223 of file mitkAbstractTransformGeometry.h.

◆ m_Plane

mitk::PlaneGeometry::Pointer mitk::AbstractTransformGeometry::m_Plane
protected

The rectangular area that is used for transformation by m_VtkAbstractTransform and therewith defines the 2D manifold described by AbstractTransformGeometry.

Definition at line 210 of file mitkAbstractTransformGeometry.h.


The documentation for this class was generated from the following file: