NavigationDataTransformFilter applies an user-defined rigid transformation on navigation data objects. Input navigation data are mapped 1:1 on output navigation data. To run the filter SetRigid3DTransform(TransformType::Pointer transform) has to be called first. More...
#include <mitkNavigationDataTransformFilter.h>
Public Types | |
typedef itk::Rigid3DTransform < float > | TransformType |
typedef NavigationDataTransformFilter | Self |
typedef NavigationDataToNavigationDataFilter | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
void | SetRigid3DTransform (TransformType::Pointer transform) |
Set the rigid transform used to transform the input navigation data. | |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
NavigationDataTransformFilter () | |
virtual | ~NavigationDataTransformFilter () |
virtual void | GenerateData () |
filter execute method | |
Protected Attributes | |
itk::QuaternionRigidTransform < double >::Pointer | m_QuatOrgRigidTransform |
transform needed to rotate orientation | |
itk::QuaternionRigidTransform < double >::Pointer | m_QuatTmpTransform |
further transform needed to rotate orientation | |
TransformType::Pointer | m_Transform |
transform which will be applied on navigation data(s) |
NavigationDataTransformFilter applies an user-defined rigid transformation on navigation data objects. Input navigation data are mapped 1:1 on output navigation data. To run the filter SetRigid3DTransform(TransformType::Pointer transform) has to be called first.
Documentation
Definition at line 36 of file mitkNavigationDataTransformFilter.h.
typedef itk::SmartPointer<const Self> mitk::NavigationDataTransformFilter::ConstPointer |
Reimplemented from mitk::NavigationDataToNavigationDataFilter.
Definition at line 43 of file mitkNavigationDataTransformFilter.h.
typedef itk::SmartPointer<Self> mitk::NavigationDataTransformFilter::Pointer |
Reimplemented from mitk::NavigationDataToNavigationDataFilter.
Definition at line 43 of file mitkNavigationDataTransformFilter.h.
Reimplemented from mitk::NavigationDataToNavigationDataFilter.
Definition at line 43 of file mitkNavigationDataTransformFilter.h.
Reimplemented from mitk::NavigationDataToNavigationDataFilter.
Definition at line 43 of file mitkNavigationDataTransformFilter.h.
typedef itk::Rigid3DTransform< float > mitk::NavigationDataTransformFilter::TransformType |
Definition at line 41 of file mitkNavigationDataTransformFilter.h.
mitk::NavigationDataTransformFilter::NavigationDataTransformFilter | ( | ) | [protected] |
Definition at line 21 of file mitkNavigationDataTransformFilter.cpp.
References m_QuatOrgRigidTransform, m_QuatTmpTransform, m_Transform, and New().
: mitk::NavigationDataToNavigationDataFilter() { m_Transform = NULL; //transform to rotate orientation m_QuatOrgRigidTransform = itk::QuaternionRigidTransform<double>::New(); m_QuatTmpTransform = itk::QuaternionRigidTransform<double>::New(); }
mitk::NavigationDataTransformFilter::~NavigationDataTransformFilter | ( | ) | [protected, virtual] |
Definition at line 32 of file mitkNavigationDataTransformFilter.cpp.
{ m_Transform = NULL; }
void mitk::NavigationDataTransformFilter::GenerateData | ( | ) | [protected, virtual] |
filter execute method
Documentation transforms navigation data
Definition at line 43 of file mitkNavigationDataTransformFilter.cpp.
References mitk::NavigationData::GetOrientation(), mitk::NavigationData::GetPosition(), mitk::NavigationData::Graft(), mitk::NavigationData::IsDataValid(), mitk::NavigationData::SetDataValid(), mitk::NavigationData::SetOrientation(), and mitk::NavigationData::SetPosition().
{ // only update data if m_Transform was set if(m_Transform.IsNull()) { itkExceptionMacro("Invalid parameter: Transform was not set! Use SetRigid3DTransform() before updating the filter."); return; } else { this->CreateOutputsForAllInputs(); // make sure that we have the same number of outputs as inputs /* update outputs with tracking data from tools */ for (unsigned int i = 0; i < this->GetNumberOfOutputs() ; ++i) { mitk::NavigationData* output = this->GetOutput(i); assert(output); const mitk::NavigationData* input = this->GetInput(i); assert(input); if (input->IsDataValid() == false) { output->SetDataValid(false); continue; } mitk::NavigationData::PositionType tempCoordinateIn, tempCoordinateOut; tempCoordinateIn = input->GetPosition(); itk::Point<float,3> itkPointIn, itkPointOut; itkPointIn[0] = tempCoordinateIn[0]; itkPointIn[1] = tempCoordinateIn[1]; itkPointIn[2] = tempCoordinateIn[2]; //do the transform itkPointOut = m_Transform->TransformPoint( itkPointIn ); tempCoordinateOut[0] = itkPointOut[0]; tempCoordinateOut[1] = itkPointOut[1]; tempCoordinateOut[2] = itkPointOut[2]; output->Graft(input); // First, copy all information from input to output output->SetPosition(tempCoordinateOut);// Then change the member(s): add new position of navigation data after tranformation output->SetDataValid(true); // operation was successful, therefore data of output is valid. //---transform orientation NavigationData::OrientationType quatIn = input->GetOrientation(); vnl_quaternion<double> const vnlQuatIn(quatIn.x(), quatIn.y(), quatIn.z(), quatIn.r()); itk::Matrix<float,3,3> rotMatrix = m_Transform->GetMatrix(); itk::Matrix<double,3,3> rotMatrixD; mitk::TransferMatrix(rotMatrix,rotMatrixD); m_QuatOrgRigidTransform->SetRotationMatrix(rotMatrixD); m_QuatTmpTransform->SetRotation(vnlQuatIn); m_QuatTmpTransform->Compose(m_QuatOrgRigidTransform,false); vnl_quaternion<double> vnlQuatOut = m_QuatTmpTransform->GetRotation(); NavigationData::OrientationType quatOut(vnlQuatOut[0], vnlQuatOut[1], vnlQuatOut[2], vnlQuatOut[3]); output->SetOrientation(quatOut); } } }
virtual const char* mitk::NavigationDataTransformFilter::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::NavigationDataToNavigationDataFilter.
static Pointer mitk::NavigationDataTransformFilter::New | ( | ) | [static] |
Referenced by mitkNavigationDataTransformFilterTest(), and NavigationDataTransformFilter().
void mitk::NavigationDataTransformFilter::SetRigid3DTransform | ( | TransformType::Pointer | transform ) |
Set the rigid transform used to transform the input navigation data.
Documentation
Definition at line 37 of file mitkNavigationDataTransformFilter.cpp.
{ m_Transform = transform; this->Modified(); }
itk::QuaternionRigidTransform<double>::Pointer mitk::NavigationDataTransformFilter::m_QuatOrgRigidTransform [protected] |
transform needed to rotate orientation
Definition at line 58 of file mitkNavigationDataTransformFilter.h.
Referenced by NavigationDataTransformFilter().
itk::QuaternionRigidTransform<double>::Pointer mitk::NavigationDataTransformFilter::m_QuatTmpTransform [protected] |
further transform needed to rotate orientation
Definition at line 59 of file mitkNavigationDataTransformFilter.h.
Referenced by NavigationDataTransformFilter().
TransformType::Pointer mitk::NavigationDataTransformFilter::m_Transform [protected] |
transform which will be applied on navigation data(s)
Definition at line 69 of file mitkNavigationDataTransformFilter.h.
Referenced by NavigationDataTransformFilter().