Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::AbstractTransformGeometry Class Reference

Geometry describing a curved 2D manifold in 3D space via a vtkAbstractTransform. More...

#include <mitkAbstractTransformGeometry.h>

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

Public Member Functions

 mitkClassMacro (AbstractTransformGeometry, PlaneGeometry)
 
Pointer Clone () const
 
virtual vtkAbstractTransform * GetVtkAbstractTransform () const
 Get the underlying vtkAbstractTransform. More...
 
itk::ModifiedTimeType GetMTime () const override
 Get the modification time, accounting for the transform. More...
 
virtual const PlaneGeometry * GetPlane ()
 Get the planar rectangle used as the 2D parameter space. More...
 
bool Project (const mitk::Point3D &pt3d_mm, mitk::Point3D &projectedPt3d_mm) const override
 Project a 3D point onto the curved surface. More...
 
bool Project (const mitk::Vector3D &vec3d_mm, mitk::Vector3D &projectedVec3d_mm) const override
 Project a 3D vector onto the curved surface. More...
 
bool Map (const mitk::Point3D &pt3d_mm, mitk::Point2D &pt2d_mm) const override
 Map a 3D world point onto the 2D parameter space. More...
 
void Map (const mitk::Point2D &pt2d_mm, mitk::Point3D &pt3d_mm) const override
 Map a 2D parameter-space point to 3D world coordinates. More...
 
bool Map (const mitk::Point3D &atPt3d_mm, const mitk::Vector3D &vec3d_mm, mitk::Vector2D &vec2d_mm) const override
 Map a 3D vector at a given 3D point to a 2D parameter-space vector. More...
 
void Map (const mitk::Point2D &atPt2d_mm, const mitk::Vector2D &vec2d_mm, mitk::Vector3D &vec3d_mm) const override
 Map a 2D parameter-space vector to a 3D world vector. More...
 
void IndexToWorld (const mitk::Point2D &pt_units, mitk::Point2D &pt_mm) const override
 Convert 2D index coordinates to 2D world coordinates via the internal plane. More...
 
void WorldToIndex (const mitk::Point2D &pt_mm, mitk::Point2D &pt_units) const override
 Convert 2D world coordinates to 2D index coordinates via the internal plane. More...
 
void IndexToWorld (const mitk::Vector2D &vec_units, mitk::Vector2D &vec_mm) const override
 Convert 2D index coordinates of a vector to world coordinates (mm). More...
 
void WorldToIndex (const mitk::Vector2D &vec_mm, mitk::Vector2D &vec_units) const override
 Convert world coordinates (mm) of a 2D vector to continuous index coordinates. More...
 
bool IsAbove (const Point3D &pt3d_mm, bool considerBoundingBox=false) const override
 Determine whether a point is above the curved plane. More...
 
virtual mitk::ScalarType GetParametricExtentInMM (int direction) const
 Get the parametric extent in mm for a given direction. More...
 
virtual const itk::Transform< mitk::ScalarType, 3, 3 > * GetParametricTransform () const
 Get the parametric transform (the ITK wrapper around the vtkAbstractTransform). More...
 
virtual void SetOversampling (mitk::ScalarType oversampling)
 Multiply the parametric bounds by an oversampling factor. More...
 
virtual void CalculateFrameGeometry ()
 Compute the frame geometry (IndexToWorldTransform + bounds) around the curved surface. More...
 
virtual void SetFrameGeometry (const mitk::BaseGeometry *frameGeometry)
 Set the frame geometry explicitly. More...
 
virtual const BoundingBox * GetParametricBoundingBox ()
 Get the parametric bounding box. More...
 
const BoundingBox::BoundsArrayType & GetParametricBounds () const
 Get the parametric bounds array. More...
 
mitk::ScalarType GetParametricExtent (int direction) const
 Get the parametric extent in a given direction (in index/unit coordinates). More...
 
- Public Member Functions inherited from mitk::PlaneGeometry
 mitkClassMacro (PlaneGeometry, BaseGeometry)
 
Pointer Clone () const
 
virtual void InitializeStandardPlane (const BaseGeometry *geometry3D, AnatomicalPlane planeorientation=AnatomicalPlane::Axial, ScalarType zPosition=0, bool frontside=true, bool rotated=false, bool top=true)
 Initialize a plane with orientation AnatomicalPlane (default: axial) with respect to BaseGeometry (default: identity). Spacing also taken from BaseGeometry. More...
 
virtual void InitializeStandardPlane (const BaseGeometry *geometry3D, bool top, AnatomicalPlane planeorientation=AnatomicalPlane::Axial, bool frontside=true, bool rotated=false)
 Initialize a plane with orientation AnatomicalPlane (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, AnatomicalPlane planeorientation=AnatomicalPlane::Axial, ScalarType zPosition=0, bool frontside=true, bool rotated=false, bool top=true)
 Initialize a plane with orientation AnatomicalPlane (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, AnatomicalPlane planeorientation=AnatomicalPlane::Axial, ScalarType zPosition=0, bool frontside=true, bool rotated=false, bool top=true)
 Initialize plane with orientation AnatomicalPlane (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
 Get the normal vector of the plane. More...
 
VnlVector GetNormalVnl () const
 Get the normal vector of the plane as a VnlVector. More...
 
virtual ScalarType SignedDistance (const Point3D &pt3d_mm) const
 Compute the signed distance of a point from the plane. More...
 
ScalarType DistanceFromPlane (const Point3D &pt3d_mm) const
 Unsigned distance of a point from the infinite plane. 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...
 
void ExecuteOperation (Operation *operation) override
 Execute an operation to re-orient or reposition the plane. More...
 
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
 Unsigned distance of a point from the geometry. More...
 
void SetReferenceGeometry (const mitk::BaseGeometry *geometry)
 Set the geometrical frame of reference in which this PlaneGeometry is placed. More...
 
const BaseGeometry * GetReferenceGeometry () const
 Get the geometrical frame of reference for this PlaneGeometry. More...
 
bool HasReferenceGeometry () const
 Check whether a reference geometry has been set. More...
 
- Public Member Functions inherited from mitk::BaseGeometry
 mitkClassMacroItkParent (BaseGeometry, itk::Object)
 
Pointer Clone () const
 
Point3D GetOrigin () const
 Get the origin of the geometry in world coordinates (mm). More...
 
void SetOrigin (const Point3D &origin)
 Set the origin of the geometry in world coordinates (mm). More...
 
mitk::Vector3D GetSpacing () const
 Get the spacing (voxel size) in mm per unit for each axis. More...
 
void SetSpacing (const mitk::Vector3D &aSpacing, bool enforceSetSpacing=false)
 Set the spacing (voxel size) for each axis. More...
 
VnlVector GetOriginVnl () const
 Get the origin as a VNL vector. More...
 
virtual unsigned int GetFrameOfReferenceID () const
 Get the DICOM FrameOfReferenceID referring to the world coordinate system. More...
 
virtual void SetFrameOfReferenceID (unsigned int _arg)
 Set the DICOM FrameOfReferenceID referring to the world coordinate system. More...
 
virtual unsigned long GetIndexToWorldTransformLastModified () const
 Get the last-modified timestamp of the IndexToWorldTransform. More...
 
void Modified () const override
 Overloaded Modified() to support the ModifiedLock mechanism. More...
 
virtual bool IsValid () const
 Check whether this geometry is in a valid state. More...
 
void Initialize ()
 Initialize the geometry to default values. More...
 
void InitializeGeometry (Self *newGeometry) const
 Copy the essential geometry properties into another instance. More...
 
mitk::AffineTransform3D * GetIndexToWorldTransform ()
 Get the affine transform that maps index coordinates to world coordinates. More...
 
const mitk::AffineTransform3D * GetIndexToWorldTransform () const
 Get the affine transform that maps index coordinates to world coordinates (const). More...
 
void SetIndexToWorldTransform (mitk::AffineTransform3D *transform)
 Set the affine transform for index-to-world coordinate mapping. More...
 
void SetIndexToWorldTransformByVtkMatrix (vtkMatrix4x4 *vtkmatrix)
 Set the IndexToWorldTransform via a vtkMatrix4x4. More...
 
void SetIndexToWorldTransformWithoutChangingSpacing (mitk::AffineTransform3D *transform)
 Set the IndexToWorldTransform while preserving the current spacing. More...
 
void SetIndexToWorldTransformByVtkMatrixWithoutChangingSpacing (vtkMatrix4x4 *vtkmatrix)
 Set the IndexToWorldTransform via a vtkMatrix4x4 while preserving spacing. More...
 
vtkMatrix4x4 * GetVtkMatrix ()
 Get the IndexToWorldTransform as a 4x4 VTK matrix. More...
 
const vtkMatrix4x4 * GetVtkMatrix () const
 Get the IndexToWorldTransform as a 4x4 VTK matrix (const). More...
 
vtkLinearTransform * GetVtkTransform () const
 Get the IndexToWorldTransform as a vtkLinearTransform. More...
 
void SetIdentity ()
 Reset the geometry to identity. More...
 
void Compose (const TransformType *other, bool pre=false)
 Compose the IndexToWorldTransform with another transform. More...
 
void Compose (const vtkMatrix4x4 *vtkmatrix, bool pre=false)
 Compose the IndexToWorldTransform with a vtkMatrix4x4. More...
 
void Translate (const Vector3D &vector)
 Translate the origin by a given vector. More...
 
void WorldToIndex (const mitk::Point3D &pt_mm, mitk::Point3D &pt_units) const
 Convert world coordinates (mm) of a point to continuous index coordinates. More...
 
void WorldToIndex (const mitk::Vector3D &vec_mm, mitk::Vector3D &vec_units) const
 Convert world coordinates (mm) of a vector to continuous index coordinates. More...
 
template<unsigned int VIndexDimension>
void WorldToIndex (const mitk::Point3D &pt_mm, itk::Index< VIndexDimension > &index) const
 Convert world coordinates (mm) of a point to discrete (integer) index coordinates. More...
 
void IndexToWorld (const mitk::Vector3D &vec_units, mitk::Vector3D &vec_mm) const
 Convert index coordinates of a vector to world coordinates (mm). 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 (mm). More...
 
template<unsigned int VIndexDimension>
void IndexToWorld (const itk::Index< VIndexDimension > &index, mitk::Point3D &pt_mm) const
 Convert discrete (itk::Index) index coordinates of a point to world coordinates (mm). More...
 
template<class TCoordRep >
void ItkPhysicalPointToWorld (const itk::Point< TCoordRep, 3 > &itkPhysicalPoint, mitk::Point3D &pt_mm) const
 Convert an ITK physical point to MITK world coordinates. More...
 
template<class TCoordRep >
void WorldToItkPhysicalPoint (const mitk::Point3D &pt_mm, itk::Point< TCoordRep, 3 > &itkPhysicalPoint) const
 Convert MITK world coordinates to ITK physical coordinates. More...
 
virtual const BoundingBoxType * GetBoundingBox ()
 Get the bounding box in index/unit coordinates. More...
 
const BoundsArrayType GetBounds () const
 Get the bounding box bounds as a BoundsArrayType in index/unit coordinates. More...
 
void SetBounds (const BoundsArrayType &bounds)
 Set the bounding box in index/unit coordinates. More...
 
void SetFloatBounds (const float bounds[6])
 Set the bounding box via a float array. More...
 
void SetFloatBounds (const double bounds[6])
 Set the bounding box via a double array. More...
 
VnlVector GetMatrixColumn (unsigned int direction) const
 Get a column of the IndexToWorldTransform matrix as a VnlVector. More...
 
mitk::BoundingBox::Pointer CalculateBoundingBoxRelativeToTransform (const mitk::AffineTransform3D *transform) const
 Calculate a bounding box relative to a given 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 mm along the specified direction. More...
 
Vector3D GetAxisVector (unsigned int direction) const
 Get a vector along the bounding box in the specified direction in mm. More...
 
virtual bool Is2DConvertable ()
 Check if this geometry can be converted to 2D without information loss. More...
 
Point3D GetCenter () const
 Get the center of the bounding box in world coordinates (mm). More...
 
double GetDiagonalLength2 () const
 Get the squared length of the bounding-box diagonal in mm. More...
 
double GetDiagonalLength () const
 Get the length of the bounding-box diagonal in mm. More...
 
Point3D GetCornerPoint (int id) const
 Get the position of 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 mm along the specified direction. More...
 
bool IsInside (const mitk::Point3D &p) const
 Test whether a point (world coordinates, mm) lies inside the bounding box. More...
 
bool IsIndexInside (const mitk::Point3D &index) const
 Test whether a point in continuous index coordinates lies inside the bounding box. More...
 
template<unsigned int VIndexDimension>
bool IsIndexInside (const itk::Index< VIndexDimension > &index) const
 Test whether a discrete ITK index lies inside the bounding box. More...
 
Point3D ClampPoint (const Point3D &point) const
 Clamp a point to lie within the geometry's world-coordinate bounds. More...
 
virtual void ChangeImageGeometryConsideringOriginOffset (const bool isAnImageGeometry)
 Switch between image geometry and normal geometry with origin correction. More...
 
virtual bool GetImageGeometry () const
 Query whether this geometry refers to an image. More...
 
virtual void SetImageGeometry (bool _arg)
 Define that this BaseGeometry refers to an image. More...
 
virtual void ImageGeometryOn ()
 Toggle macro for ImageGeometry (ImageGeometryOn/ImageGeometryOff). More...
 
virtual void ImageGeometryOff ()
 
const GeometryTransformHolder * GetGeometryTransformHolder () const
 Get the internal GeometryTransformHolder. More...
 
void MapAxesToOrientations (int axes[]) const
 Map geometry axes to anatomical orientations (sagittal, coronal, axial). More...
 
- Public Member Functions inherited from mitk::OperationActor
 itkTypeMacroNoParent (OperationActor) virtual ~OperationActor()
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from mitk::PlaneGeometry
static Pointer New ()
 
static bool CheckRotationMatrix (AffineTransform3D *transform, double epsilon=1e-6)
 Check if matrix is a rotation matrix: More...
 

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...
 
 mitkCloneMacro (Self)
 
- 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...
 
 mitkCloneMacro (Self)
 
- 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::BaseGeometry * m_ReferenceGeometry
 

Additional Inherited Members

- Public Types inherited from mitk::BaseGeometry
typedef GeometryTransformHolder::TransformType TransformType
 Affine transform type used for index-to-world mapping. More...
 
typedef itk::BoundingBox< unsigned long, 3, ScalarType > BoundingBoxType
 3D bounding box type parameterized with ScalarType. More...
 
typedef BoundingBoxType::BoundsArrayType BoundsArrayType
 Fixed-size array of six ScalarType values representing axis-aligned bounds [xmin,xmax,ymin,ymax,zmin,zmax]. More...
 
typedef BoundingBoxType::Pointer BoundingBoxPointer
 Smart-pointer type for BoundingBoxType. More...
 
- Static Protected Member Functions inherited from mitk::BaseGeometry
static const std::string GetTransformAsString (TransformType *transformType)
 

Detailed Description

Geometry describing a curved 2D manifold in 3D space via a vtkAbstractTransform.

AbstractTransformGeometry combines a PlaneGeometry (m_Plane), which defines the 2D parameter rectangle, with a vtkAbstractTransform (m_VtkAbstractTransform), which maps the planar rectangle into an arbitrary 2D manifold embedded in 3D space.

The workflow is: 2D parameter coordinates are first mapped through the PlaneGeometry into 3D coordinates, and those 3D coordinates are then transformed by the vtkAbstractTransform to produce the final world coordinates on the curved surface.

Note
This class provides read-only access to the vtkAbstractTransform and the m_Plane. For full external write access, use ExternAbstractTransformGeometry.
The bounds of the PlaneGeometry serve as the parametric bounds.
See also
PlaneGeometry, ExternAbstractTransformGeometry

Definition at line 46 of file mitkAbstractTransformGeometry.h.

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

Compute the frame geometry (IndexToWorldTransform + bounds) around the curved surface.

If no frame geometry has been set explicitly, this derives one from the internal PlaneGeometry's bounding box.

See also
SetFrameGeometry

◆ Clone()

Pointer mitk::AbstractTransformGeometry::Clone ( ) const

◆ GetMTime()

itk::ModifiedTimeType mitk::AbstractTransformGeometry::GetMTime ( ) const
override

Get the modification time, accounting for the transform.

Returns the later of this geometry's own MTime and the vtkAbstractTransform's MTime.

Returns
The effective modification time.

◆ GetParametricBoundingBox()

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

Get the parametric bounding box.

Returns
Const pointer to the parametric BoundingBox.

◆ GetParametricBounds()

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

Get the parametric bounds array.

Returns
Reference to the BoundsArrayType [xmin,xmax,ymin,ymax,zmin,zmax] of the parametric bounding box.

◆ GetParametricExtent()

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

Get the parametric extent in a given direction (in index/unit coordinates).

Parameters
[in]directionThe axis (0, 1, or 2).
Returns
The parametric extent.
Exceptions
mitk::Exceptionif direction is out of range.

◆ GetParametricExtentInMM()

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

Get the parametric extent in mm for a given direction.

Delegates to the internal PlaneGeometry's GetExtentInMM().

Parameters
[in]directionThe axis (0, 1, or 2).
Returns
The parametric extent in mm.
Precondition
m_Plane must not be null.

◆ GetParametricTransform()

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

Get the parametric transform (the ITK wrapper around the vtkAbstractTransform).

Returns
Const pointer to the itk::Transform.

◆ GetPlane()

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

Get the planar rectangle used as the 2D parameter space.

The bounds of this PlaneGeometry define the parametric domain that is mapped through the vtkAbstractTransform.

Returns
Const pointer to the internal PlaneGeometry.

◆ GetVtkAbstractTransform()

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

Get the underlying vtkAbstractTransform.

Returns
Pointer to the vtkAbstractTransform that maps the planar parameter space into the curved 3D manifold.

◆ IndexToWorld() [1/2]

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

Convert 2D index coordinates to 2D world coordinates via the internal plane.

Parameters
[in]pt_units2D point in index coordinates.
[out]pt_mm2D point in world coordinates (mm).

Reimplemented from mitk::PlaneGeometry.

◆ IndexToWorld() [2/2]

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

Convert 2D index coordinates of a vector to world coordinates (mm).

Parameters
[in]vec_unitsVector in index coordinates.
[out]vec_mmVector in world coordinates (mm).

Reimplemented from mitk::PlaneGeometry.

◆ IsAbove()

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

Determine whether a point is above the curved plane.

Applies the inverse transform to obtain parametric coordinates and checks whether the z-component exceeds the parametric bounds.

Parameters
[in]pt3d_mmPoint in world coordinates (mm).
[in]considerBoundingBoxUnused in this implementation.
Returns
true if the point is above the curved surface.

Reimplemented from mitk::PlaneGeometry.

◆ Map() [1/4]

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

Map a 2D parameter-space vector to a 3D world vector.

Parameters
[in]atPt2d_mmApplication point in 2D parameter space (mm).
[in]vec2d_mm2D vector (mm).
[out]vec3d_mmResulting 3D world vector (mm).

Reimplemented from mitk::PlaneGeometry.

◆ Map() [2/4]

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

Map a 2D parameter-space point to 3D world coordinates.

Delegates to the PlaneGeometry's Map(), then applies the vtkAbstractTransform.

Parameters
[in]pt2d_mm2D point in parameter space (mm).
[out]pt3d_mmResulting 3D world point (mm).

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

Map a 3D vector at a given 3D point to a 2D parameter-space vector.

Parameters
[in]atPt3d_mmApplication point in world coordinates (mm).
[in]vec3d_mm3D vector (mm).
[out]vec2d_mmMapped 2D vector in parameter space (mm).
Returns
true if the mapping was possible.

Reimplemented from mitk::PlaneGeometry.

◆ Map() [4/4]

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

Map a 3D world point onto the 2D parameter space.

Applies the inverse vtkAbstractTransform, then delegates to the internal PlaneGeometry's Map().

Parameters
[in]pt3d_mmPoint in world coordinates (mm).
[out]pt2d_mmMapped 2D point in parameter space (mm).
Returns
true if the point lies within the parametric bounds.

Reimplemented from mitk::PlaneGeometry.

◆ mitkClassMacro()

mitk::AbstractTransformGeometry::mitkClassMacro ( AbstractTransformGeometry  ,
PlaneGeometry   
)

◆ mitkCloneMacro()

mitk::AbstractTransformGeometry::mitkCloneMacro ( Self  )
protected

◆ 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::ThinPlateSplineCurvedGeometry, and mitk::LandmarkProjectorBasedCurvedGeometry.

Definition at line 319 of file mitkAbstractTransformGeometry.h.

◆ Project() [1/2]

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

Project a 3D point onto the curved surface.

Maps the point to 2D parameter space and back, yielding the closest point on the manifold.

Parameters
[in]pt3d_mmPoint in world coordinates (mm).
[out]projectedPt3d_mmThe projected point on the surface (mm).
Returns
true if the projected point lies within the parametric bounds.

Reimplemented from mitk::PlaneGeometry.

◆ Project() [2/2]

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

Project a 3D vector onto the curved surface.

Warning
Not yet satisfactorily implemented; throws an exception.
Parameters
[in]vec3d_mmThe vector to project (mm).
[out]projectedVec3d_mmThe projected vector (mm).
Returns
true if projection was possible.

Reimplemented from mitk::PlaneGeometry.

◆ SetFrameGeometry()

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

Set the frame geometry explicitly.

The frame geometry provides the standard BaseGeometry (IndexToWorldTransform and bounding box) as a hint for the region within which interpolation should occur.

Parameters
[in]frameGeometryThe frame geometry to use (may be nullptr to clear).
See also
CalculateFrameGeometry

Reimplemented in mitk::LandmarkProjectorBasedCurvedGeometry.

◆ SetOversampling()

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

Multiply the parametric bounds by an oversampling factor.

Scales the upper bounds of the parametric bounding box (derived from m_Plane) by the given factor. This change is applied immediately and is not linked to future changes of m_Plane bounds.

Parameters
[in]oversamplingThe oversampling factor.
Precondition
m_Plane must not be null.

◆ 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/2]

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

Convert 2D world coordinates to 2D index coordinates via the internal plane.

Parameters
[in]pt_mm2D point in world coordinates (mm).
[out]pt_units2D point in index coordinates.

Reimplemented from mitk::PlaneGeometry.

◆ WorldToIndex() [2/2]

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

Convert world coordinates (mm) of a 2D vector to continuous index coordinates.

Parameters
[in]vec_mmVector in world coordinates (mm).
[out]vec_unitsVector in continuous index coordinates.

Reimplemented from mitk::PlaneGeometry.

Member Data Documentation

◆ m_FrameGeometry

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

Definition at line 302 of file mitkAbstractTransformGeometry.h.

◆ m_ItkVtkAbstractTransform

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

Definition at line 300 of file mitkAbstractTransformGeometry.h.

◆ m_ParametricBoundingBox

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

Definition at line 311 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 298 of file mitkAbstractTransformGeometry.h.


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