Public Member Functions | Protected Attributes

QmitkQuaternionRigidTransformView Class Reference

Widget for rigid registration. More...

#include <QmitkQuaternionRigidTransformView.h>

Inheritance diagram for QmitkQuaternionRigidTransformView:
Inheritance graph
[legend]
Collaboration diagram for QmitkQuaternionRigidTransformView:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 QmitkQuaternionRigidTransformView (QWidget *parent=0, Qt::WindowFlags f=0)
 ~QmitkQuaternionRigidTransformView ()
virtual itk::Object::Pointer GetTransform ()
virtual itk::Array< double > GetTransformParameters ()
virtual void SetTransformParameters (itk::Array< double > transformValues)
virtual QString GetName ()
virtual void SetupUI (QWidget *parent)
virtual itk::Array< double > GetScales ()
virtual vtkTransform * Transform (vtkMatrix4x4 *vtkmatrix, vtkTransform *vtktransform, itk::Array< double > transformParams)
virtual int GetNumberOfTransformParameters ()

Protected Attributes

Ui::QmitkQuaternionRigidTransformControls m_Controls
itk::Object::Pointer m_TransformObject
double m_CenterX
double m_CenterY
double m_CenterZ

Detailed Description

Widget for rigid registration.

Displays options for rigid registration.

Definition at line 31 of file QmitkQuaternionRigidTransformView.h.


Constructor & Destructor Documentation

QmitkQuaternionRigidTransformView::QmitkQuaternionRigidTransformView ( QWidget *  parent = 0,
Qt::WindowFlags  f = 0 
)
QmitkQuaternionRigidTransformView::~QmitkQuaternionRigidTransformView (  )

Definition at line 29 of file QmitkQuaternionRigidTransformView.cpp.

{
}

Member Function Documentation

QString QmitkQuaternionRigidTransformView::GetName (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 116 of file QmitkQuaternionRigidTransformView.cpp.

{
  return "QuaternionRigid";
}
int QmitkQuaternionRigidTransformView::GetNumberOfTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 181 of file QmitkQuaternionRigidTransformView.cpp.

References QmitkRigidRegistrationTransformsGUIBase::m_FixedImage.

{
  if (m_FixedImage.IsNotNull())
  {
    if (m_FixedImage->GetDimension() == 2)
      return 0;
    else
      return 7;
  }
  else
    return 0;
}
itk::Array< double > QmitkQuaternionRigidTransformView::GetScales (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 134 of file QmitkQuaternionRigidTransformView.cpp.

References m_Controls, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale1, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale2, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale3, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale4, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationX, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationY, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationZ, and Ui_QmitkQuaternionRigidTransformControls::m_UseOptimizerScalesQuaternionRigid.

{
  itk::Array<double> scales;
  scales.SetSize(7);
  scales.Fill(1.0);
  if (m_Controls.m_UseOptimizerScalesQuaternionRigid->isChecked())
  {
    scales[0] = m_Controls.m_ScalesQuaternionRigidTransformScale1->text().toDouble();
    scales[1] = m_Controls.m_ScalesQuaternionRigidTransformScale2->text().toDouble();
    scales[2] = m_Controls.m_ScalesQuaternionRigidTransformScale3->text().toDouble();
    scales[3] = m_Controls.m_ScalesQuaternionRigidTransformScale4->text().toDouble();
    scales[4] = m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationX->text().toDouble();
    scales[5] = m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationY->text().toDouble();
    scales[6] = m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationZ->text().toDouble();
  }
  return scales;
}
itk::Object::Pointer QmitkQuaternionRigidTransformView::GetTransform (  ) [virtual]
itk::Array< double > QmitkQuaternionRigidTransformView::GetTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 83 of file QmitkQuaternionRigidTransformView.cpp.

References Ui_QmitkQuaternionRigidTransformControls::m_CenterForInitializerQuaternionRigid, m_Controls, Ui_QmitkQuaternionRigidTransformControls::m_MomentsQuaternionRigid, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale1, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale2, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale3, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale4, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationX, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationY, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationZ, and Ui_QmitkQuaternionRigidTransformControls::m_UseOptimizerScalesQuaternionRigid.

{
  itk::Array<double> transformValues;
  transformValues.SetSize(10);
  transformValues.fill(0);
  transformValues[0] = m_Controls.m_UseOptimizerScalesQuaternionRigid->isChecked();
  transformValues[1] = m_Controls.m_ScalesQuaternionRigidTransformScale1->text().toDouble();
  transformValues[2] = m_Controls.m_ScalesQuaternionRigidTransformScale2->text().toDouble();
  transformValues[3] = m_Controls.m_ScalesQuaternionRigidTransformScale3->text().toDouble();
  transformValues[4] = m_Controls.m_ScalesQuaternionRigidTransformScale4->text().toDouble();
  transformValues[5] = m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationX->text().toDouble();
  transformValues[6] = m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationY->text().toDouble();
  transformValues[7] = m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationZ->text().toDouble();
  transformValues[8] = m_Controls.m_CenterForInitializerQuaternionRigid->isChecked();
  transformValues[9] = m_Controls.m_MomentsQuaternionRigid->isChecked();
  return transformValues;
}
void QmitkQuaternionRigidTransformView::SetTransformParameters ( itk::Array< double >  transformValues ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 101 of file QmitkQuaternionRigidTransformView.cpp.

References Ui_QmitkQuaternionRigidTransformControls::m_CenterForInitializerQuaternionRigid, m_Controls, Ui_QmitkQuaternionRigidTransformControls::m_GeometryQuaternionRigid, Ui_QmitkQuaternionRigidTransformControls::m_MomentsQuaternionRigid, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale1, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale2, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale3, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale4, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationX, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationY, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationZ, and Ui_QmitkQuaternionRigidTransformControls::m_UseOptimizerScalesQuaternionRigid.

{
  m_Controls.m_UseOptimizerScalesQuaternionRigid->setChecked(transformValues[0]);
  m_Controls.m_ScalesQuaternionRigidTransformScale1->setText(QString::number(transformValues[1]));
  m_Controls.m_ScalesQuaternionRigidTransformScale2->setText(QString::number(transformValues[2]));
  m_Controls.m_ScalesQuaternionRigidTransformScale3->setText(QString::number(transformValues[3]));
  m_Controls.m_ScalesQuaternionRigidTransformScale4->setText(QString::number(transformValues[4]));
  m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationX->setText(QString::number(transformValues[5]));
  m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationY->setText(QString::number(transformValues[6]));
  m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationZ->setText(QString::number(transformValues[7]));
  m_Controls.m_CenterForInitializerQuaternionRigid->setChecked(transformValues[8]);
  m_Controls.m_MomentsQuaternionRigid->setChecked(transformValues[9]);
  m_Controls.m_GeometryQuaternionRigid->setChecked(!transformValues[9]);
}
void QmitkQuaternionRigidTransformView::SetupUI ( QWidget *  parent ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 121 of file QmitkQuaternionRigidTransformView.cpp.

References m_Controls, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale1, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale2, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale3, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScale4, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationX, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationY, Ui_QmitkQuaternionRigidTransformControls::m_ScalesQuaternionRigidTransformScaleTranslationZ, and Ui_QmitkQuaternionRigidTransformControls::setupUi().

{
  m_Controls.setupUi(parent);
  QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this);
  m_Controls.m_ScalesQuaternionRigidTransformScale1->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesQuaternionRigidTransformScale2->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesQuaternionRigidTransformScale3->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesQuaternionRigidTransformScale4->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationX->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationY->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesQuaternionRigidTransformScaleTranslationZ->setValidator(validatorLineEditInputFloat);
}
vtkTransform * QmitkQuaternionRigidTransformView::Transform ( vtkMatrix4x4 *  vtkmatrix,
vtkTransform *  vtktransform,
itk::Array< double >  transformParams 
) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 152 of file QmitkQuaternionRigidTransformView.cpp.

References m_CenterX, m_CenterY, m_CenterZ, and QmitkRigidRegistrationTransformsGUIBase::m_MovingImage.

{
  if (m_MovingImage.IsNotNull())
  {
    itk::QuaternionRigidTransform<double>::Pointer quaternionTransform = itk::QuaternionRigidTransform<double>::New();
    quaternionTransform->SetParameters(transformParams);
    itk::Matrix<double, 3, 3> Matrix = quaternionTransform->GetMatrix();
    for (int i = 0; i < 3; i++)
    {
      for (int j = 0; j < 3; j++)
      {
        vtkmatrix->SetElement(i, j, Matrix[i][j]);
      }
    }
    float center[4];
    float translation[4];
    center[0] = m_CenterX;
    center[1] = m_CenterY;
    center[2] = m_CenterZ;
    center[3] = 1;
    vtkmatrix->MultiplyPoint(center, translation);
    vtkmatrix->SetElement(0, 3, -translation[0] + center[0] + transformParams[4]);
    vtkmatrix->SetElement(1, 3, -translation[1] + center[1] + transformParams[5]);
    vtkmatrix->SetElement(2, 3, -translation[2] + center[2] + transformParams[6]);
    vtktransform->SetMatrix(vtkmatrix);
  }
  return vtktransform;
}

Member Data Documentation

Definition at line 67 of file QmitkQuaternionRigidTransformView.h.

Referenced by Transform().

Definition at line 68 of file QmitkQuaternionRigidTransformView.h.

Referenced by Transform().

Definition at line 69 of file QmitkQuaternionRigidTransformView.h.

Referenced by Transform().

itk::Object::Pointer QmitkQuaternionRigidTransformView::m_TransformObject [protected]

Definition at line 65 of file QmitkQuaternionRigidTransformView.h.

Referenced by GetTransform().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines