Medical Imaging Interaction Toolkit  2018.4.99-1640525a
Medical Imaging Interaction Toolkit
mitk::NavigationData Class Reference

Navigation Data. More...

#include <mitkNavigationData.h>

Inheritance diagram for mitk::NavigationData:
Collaboration diagram for mitk::NavigationData:

Public Types

typedef mitk::Point3D PositionType
 Type that holds the position part of the tracking data. More...
 
typedef mitk::Quaternion OrientationType
 Type that holds the orientation part of the tracking data. More...
 
typedef itk::Matrix< mitk::ScalarType, 6, 6 > CovarianceMatrixType
 type that holds the error characterization of the position and orientation measurements More...
 
typedef double TimeStampType
 type that holds the time at which the data was recorded in milliseconds More...
 

Public Member Functions

 mitkClassMacroItkParent (NavigationData, itk::DataObject)
 
Pointer Clone () const
 
 mitkNewMacro2Param (Self, mitk::AffineTransform3D::Pointer, const bool)
 
 mitkNewMacro1Param (Self, mitk::AffineTransform3D::Pointer)
 
virtual void SetPosition (PositionType _arg)
 sets the position of the NavigationData object More...
 
virtual PositionType GetPosition () const
 returns position of the NavigationData object More...
 
virtual void SetOrientation (OrientationType _arg)
 sets the orientation of the NavigationData object More...
 
virtual OrientationType GetOrientation () const
 returns the orientation of the NavigationData object More...
 
virtual bool IsDataValid () const
 returns true if the object contains valid data More...
 
virtual void SetDataValid (bool _arg)
 sets the dataValid flag of the NavigationData object indicating if the object contains valid data More...
 
virtual void SetIGTTimeStamp (TimeStampType _arg)
 sets the IGT timestamp of the NavigationData object in milliseconds More...
 
virtual TimeStampType GetIGTTimeStamp () const
 gets the IGT timestamp of the NavigationData object in milliseconds Please note, that there is also the GetTimeStamp method provided by the ITK object. Within IGT you should always use GetIGTTimeStamp ! More...
 
virtual void SetHasPosition (bool _arg)
 sets the HasPosition flag of the NavigationData object More...
 
virtual bool GetHasPosition () const
 gets the HasPosition flag of the NavigationData object More...
 
virtual void SetHasOrientation (bool _arg)
 sets the HasOrientation flag of the NavigationData object More...
 
virtual bool GetHasOrientation () const
 gets the HasOrientation flag of the NavigationData object More...
 
virtual void SetCovErrorMatrix (CovarianceMatrixType _arg)
 sets the 6x6 Error Covariance Matrix of the NavigationData object More...
 
virtual CovarianceMatrixType GetCovErrorMatrix () const
 gets the 6x6 Error Covariance Matrix of the NavigationData object More...
 
virtual void SetName (const char *_arg)
 set the name of the NavigationData object More...
 
virtual const char * GetName () const
 returns the name of the NavigationData object More...
 
void Graft (const DataObject *data) override
 Graft the data and information from one NavigationData to another. More...
 
void CopyInformation (const DataObject *data) override
 copy meta data of a NavigationData object More...
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 Prints the object information to the given stream os. More...
 
void SetPositionAccuracy (mitk::ScalarType error)
 
void SetOrientationAccuracy (mitk::ScalarType error)
 
mitk::AffineTransform3D::Pointer GetAffineTransform3D () const
 Calculate AffineTransform3D from the transformation held by this NavigationData. TODO: should throw an error if transformation is invalid. More...
 
mitk::Matrix3D GetRotationMatrix () const
 Calculate the RotationMatrix of this transformation. More...
 
mitk::Point3D TransformPoint (const mitk::Point3D point) const
 Transform by an affine transformation. More...
 
mitk::NavigationData::Pointer GetInverse () const
 
void Compose (const mitk::NavigationData::Pointer n, const bool pre=false)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 mitkCloneMacro (Self)
 
 NavigationData ()
 
 NavigationData (const mitk::NavigationData &toCopy)
 
 NavigationData (mitk::AffineTransform3D::Pointer affineTransform3D, const bool checkForRotationMatrix=true)
 
 ~NavigationData () override
 

Protected Attributes

PositionType m_Position
 holds the position part of the tracking data More...
 
OrientationType m_Orientation
 holds the orientation part of the tracking data More...
 
CovarianceMatrixType m_CovErrorMatrix
 A 6x6 covariance matrix parameterizing the Gaussian error distribution of the measured position and orientation. More...
 
bool m_HasPosition
 defines if position part of m_CovErrorMatrix is valid More...
 
bool m_HasOrientation
 defines if orientation part of m_CovErrorMatrix is valid More...
 
bool m_DataValid
 defines if the object contains valid values More...
 
TimeStampType m_IGTTimeStamp
 contains the time at which the tracking data was recorded More...
 
std::string m_Name
 name of the navigation data More...
 

Detailed Description

Navigation Data.

Documentation This class represents the data object that is passed through the MITK-IGT navigation filter pipeline. It encapsulates position and orientation of a tracked tool/sensor. Additionally, it contains a data structure that contains error/plausibility information

It provides methods to work with the affine transformation represented by its orientation and position. Additionally, it provides a constructor to construct a NavigationData object from an AffineTransform3D and a getter to create an AffineTransform3D from a NavigationData object.

Definition at line 36 of file mitkNavigationData.h.

Member Typedef Documentation

◆ CovarianceMatrixType

type that holds the error characterization of the position and orientation measurements

Definition at line 56 of file mitkNavigationData.h.

◆ OrientationType

Type that holds the orientation part of the tracking data.

Definition at line 52 of file mitkNavigationData.h.

◆ PositionType

Type that holds the position part of the tracking data.

Definition at line 48 of file mitkNavigationData.h.

◆ TimeStampType

type that holds the time at which the data was recorded in milliseconds

Definition at line 60 of file mitkNavigationData.h.

Constructor & Destructor Documentation

◆ NavigationData() [1/3]

mitk::NavigationData::NavigationData ( )
protected

Definition at line 17 of file mitkNavigationData.cpp.

References m_CovErrorMatrix, and m_Position.

◆ NavigationData() [2/3]

mitk::NavigationData::NavigationData ( const mitk::NavigationData toCopy)
protected

Definition at line 27 of file mitkNavigationData.cpp.

◆ NavigationData() [3/3]

mitk::NavigationData::NavigationData ( mitk::AffineTransform3D::Pointer  affineTransform3D,
const bool  checkForRotationMatrix = true 
)
protected

Creates a NavigationData object from an affineTransform3D. Caution: NavigationData doesn't support spacing, only translation and rotation. If the affine transform includes spacing it cannot be converted to a NavigationData and an exception is thrown.

Parameters
checkForRotationMatrixif this is true, the rotation matrix coming from the affineTransform is checked for being a rotation matrix. If it isn't, an exception is thrown. Disable this check by setting checkForRotationMatrix to false.
Exceptions
mitkExceptionif checkForRotationMatrix is true and a non rotation matrix was introduced by AffineTransform.

Definition at line 157 of file mitkNavigationData.cpp.

References mitk::Equal(), m_Orientation, m_Position, mitkThrow, and offset.

◆ ~NavigationData()

mitk::NavigationData::~NavigationData ( )
overrideprotected

Definition at line 33 of file mitkNavigationData.cpp.

Member Function Documentation

◆ Clone()

Pointer mitk::NavigationData::Clone ( ) const

Referenced by GetInverse().

◆ Compose()

void mitk::NavigationData::Compose ( const mitk::NavigationData::Pointer  n,
const bool  pre = false 
)

Compose with another NavigationData

This method composes self with another NavigationData of the same dimension, modifying self to be the composition of self and other. If the argument pre is true, then other is precomposed with self; that is, the resulting transformation consists of first applying other to the source, followed by self. If pre is false or omitted, then other is post-composed with self; that is the resulting transformation consists of first applying self to the source, followed by other.

Definition at line 146 of file mitkNavigationData.cpp.

References Graft().

◆ CopyInformation()

void mitk::NavigationData::CopyInformation ( const DataObject *  data)
override

copy meta data of a NavigationData object

copies all meta data from NavigationData data to this object

Definition at line 92 of file mitkNavigationData.cpp.

◆ GetAffineTransform3D()

mitk::AffineTransform3D::Pointer mitk::NavigationData::GetAffineTransform3D ( ) const

Calculate AffineTransform3D from the transformation held by this NavigationData. TODO: should throw an error if transformation is invalid.

Definition at line 189 of file mitkNavigationData.cpp.

References GetRotationMatrix(), and m_Position.

Referenced by mitk::NavigationDataToIGTLMessageFilter::GenerateDataModeSendTDataMsg(), and mitk::NavigationDataToIGTLMessageFilter::GenerateDataModeSendTransMsg().

◆ GetCovErrorMatrix()

virtual CovarianceMatrixType mitk::NavigationData::GetCovErrorMatrix ( ) const
virtual

◆ GetHasOrientation()

virtual bool mitk::NavigationData::GetHasOrientation ( ) const
virtual

gets the HasOrientation flag of the NavigationData object

Referenced by PrintSelf(), and mitk::NavigationDataRecorderDeprecated::Update().

◆ GetHasPosition()

virtual bool mitk::NavigationData::GetHasPosition ( ) const
virtual

gets the HasPosition flag of the NavigationData object

Referenced by PrintSelf(), and mitk::NavigationDataRecorderDeprecated::Update().

◆ GetIGTTimeStamp()

virtual TimeStampType mitk::NavigationData::GetIGTTimeStamp ( ) const
virtual

◆ GetInverse()

mitk::NavigationData::Pointer mitk::NavigationData::GetInverse ( ) const

Get inverse of the Transformation represented by this NavigationData.

Exceptions
mitk::Exceptionin case the transformation is invalid (only case: quaternion is zero)

Definition at line 246 of file mitkNavigationData.cpp.

References Clone(), mitk::Equal(), GetOrientation(), GetPosition(), mitkThrow, SetHasOrientation(), and SetHasPosition().

◆ GetName()

◆ GetOrientation()

◆ GetPosition()

◆ GetRotationMatrix()

mitk::Matrix3D mitk::NavigationData::GetRotationMatrix ( ) const

Calculate the RotationMatrix of this transformation.

Definition at line 208 of file mitkNavigationData.cpp.

References m_Orientation.

Referenced by GetAffineTransform3D().

◆ Graft()

void mitk::NavigationData::Graft ( const DataObject *  data)
override

Graft the data and information from one NavigationData to another.

Copies the content of data into this object. This is a convenience method to setup a second NavigationData object with all the meta information of another NavigationData object. Note that this method is different than just using two SmartPointers to the same NavigationData object since separate DataObjects are still maintained.

Definition at line 38 of file mitkNavigationData.cpp.

References SetCovErrorMatrix(), SetDataValid(), SetHasOrientation(), SetHasPosition(), SetIGTTimeStamp(), SetName(), SetOrientation(), and SetPosition().

Referenced by Compose(), mitk::NavigationDataPassThroughFilter::GenerateData(), mitk::NavigationDataSmoothingFilter::GenerateData(), mitk::NavigationDataDelayFilter::GenerateData(), mitk::NavigationDataHandEyeCalibrationFilter::GenerateData(), mitk::NavigationDataDisplacementFilter::GenerateData(), mitk::NavigationDataSequentialPlayer::GenerateData(), mitk::NavigationDataPlayer::GenerateData(), mitk::NavigationDataToMessageFilter::GenerateData(), mitk::NavigationDataEvaluationFilter::GenerateData(), mitk::CameraVisualization::GenerateData(), mitk::NavigationDataRecorder::GenerateData(), mitk::NavigationDataSliceVisualization::GenerateData(), mitk::NavigationDataLandmarkTransformFilter::GenerateData(), mitk::NavigationDataObjectVisualizationFilter::GenerateData(), mitk::IGTLMessageToNavigationDataFilter::GenerateTrackingDataData(), mitk::IGTLMessageToNavigationDataFilter::GenerateTransformData(), and mitk::NavigationDataPlayerBase::GraftEmptyOutput().

◆ IsDataValid()

◆ mitkClassMacroItkParent()

mitk::NavigationData::mitkClassMacroItkParent ( NavigationData  ,
itk::DataObject   
)

◆ mitkCloneMacro()

mitk::NavigationData::mitkCloneMacro ( Self  )
protected

◆ mitkNewMacro1Param()

mitk::NavigationData::mitkNewMacro1Param ( Self  ,
mitk::AffineTransform3D::Pointer   
)

◆ mitkNewMacro2Param()

mitk::NavigationData::mitkNewMacro2Param ( Self  ,
mitk::AffineTransform3D::Pointer  ,
const bool   
)

◆ New()

◆ PrintSelf()

void mitk::NavigationData::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
override

Prints the object information to the given stream os.

Parameters
osThe stream which is used to print the output.
indentDefines the indentation of the output.

Definition at line 79 of file mitkNavigationData.cpp.

References GetCovErrorMatrix(), GetHasOrientation(), GetHasPosition(), GetIGTTimeStamp(), GetOrientation(), GetPosition(), and IsDataValid().

◆ SetCovErrorMatrix()

virtual void mitk::NavigationData::SetCovErrorMatrix ( CovarianceMatrixType  _arg)
virtual

◆ SetDataValid()

◆ SetHasOrientation()

virtual void mitk::NavigationData::SetHasOrientation ( bool  _arg)
virtual

◆ SetHasPosition()

virtual void mitk::NavigationData::SetHasPosition ( bool  _arg)
virtual

◆ SetIGTTimeStamp()

virtual void mitk::NavigationData::SetIGTTimeStamp ( TimeStampType  _arg)
virtual

◆ SetName()

virtual void mitk::NavigationData::SetName ( const char *  _arg)
virtual

◆ SetOrientation()

◆ SetOrientationAccuracy()

void mitk::NavigationData::SetOrientationAccuracy ( mitk::ScalarType  error)

Set the orientation part of m_CovErrorMatrix to I*error^2 This means that all orientation variables are assumed to be independent

Definition at line 133 of file mitkNavigationData.cpp.

References m_CovErrorMatrix.

Referenced by mitk::TrackingDeviceSource::GenerateData().

◆ SetPosition()

◆ SetPositionAccuracy()

void mitk::NavigationData::SetPositionAccuracy ( mitk::ScalarType  error)

Set the position part of m_CovErrorMatrix to I*error^2 This means that all position variables are assumed to be independent

Definition at line 119 of file mitkNavigationData.cpp.

References m_CovErrorMatrix.

Referenced by mitk::TrackingDeviceSource::GenerateData().

◆ TransformPoint()

mitk::Point3D mitk::NavigationData::TransformPoint ( const mitk::Point3D  point) const

Transform by an affine transformation.

This method applies the affine transform given by self to a given point, returning the transformed point.

Definition at line 223 of file mitkNavigationData.cpp.

References GetOrientation(), and GetPosition().

Member Data Documentation

◆ m_CovErrorMatrix

CovarianceMatrixType mitk::NavigationData::m_CovErrorMatrix
protected

A 6x6 covariance matrix parameterizing the Gaussian error distribution of the measured position and orientation.

The hasPosition/hasOrientation fields define which entries are valid.holds the error characterization of the position and orientation

Definition at line 244 of file mitkNavigationData.h.

Referenced by NavigationData(), SetOrientationAccuracy(), and SetPositionAccuracy().

◆ m_DataValid

bool mitk::NavigationData::m_DataValid
protected

defines if the object contains valid values

Definition at line 256 of file mitkNavigationData.h.

Referenced by IsDataValid().

◆ m_HasOrientation

bool mitk::NavigationData::m_HasOrientation
protected

defines if orientation part of m_CovErrorMatrix is valid

Definition at line 252 of file mitkNavigationData.h.

◆ m_HasPosition

bool mitk::NavigationData::m_HasPosition
protected

defines if position part of m_CovErrorMatrix is valid

Definition at line 248 of file mitkNavigationData.h.

◆ m_IGTTimeStamp

TimeStampType mitk::NavigationData::m_IGTTimeStamp
protected

contains the time at which the tracking data was recorded

Definition at line 260 of file mitkNavigationData.h.

◆ m_Name

std::string mitk::NavigationData::m_Name
protected

name of the navigation data

Definition at line 264 of file mitkNavigationData.h.

◆ m_Orientation

OrientationType mitk::NavigationData::m_Orientation
protected

holds the orientation part of the tracking data

Definition at line 235 of file mitkNavigationData.h.

Referenced by GetRotationMatrix(), and NavigationData().

◆ m_Position

PositionType mitk::NavigationData::m_Position
protected

holds the position part of the tracking data

Definition at line 231 of file mitkNavigationData.h.

Referenced by GetAffineTransform3D(), and NavigationData().


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