Public Member Functions | Protected Attributes

QmitkRigid3DTransformView Class Reference

Widget for rigid registration. More...

#include <QmitkRigid3DTransformView.h>

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

List of all members.

Public Member Functions

 QmitkRigid3DTransformView (QWidget *parent=0, Qt::WindowFlags f=0)
 ~QmitkRigid3DTransformView ()
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::QmitkRigid3DTransformControls 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 QmitkRigid3DTransformView.h.


Constructor & Destructor Documentation

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

Definition at line 29 of file QmitkRigid3DTransformView.cpp.

{
}

Member Function Documentation

QString QmitkRigid3DTransformView::GetName (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 104 of file QmitkRigid3DTransformView.cpp.

{
  return "Rigid3D";
}
int QmitkRigid3DTransformView::GetNumberOfTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 178 of file QmitkRigid3DTransformView.cpp.

References QmitkRigidRegistrationTransformsGUIBase::m_FixedImage.

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

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 127 of file QmitkRigid3DTransformView.cpp.

References m_Controls, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale1, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale2, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale3, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale4, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale5, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale6, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale7, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale8, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale9, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationX, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationY, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationZ, and Ui_QmitkRigid3DTransformControls::m_UseOptimizerScalesRigid3D.

{
  itk::Array<double> scales;
  scales.SetSize(12);
  scales.Fill(1.0);
  if (m_Controls.m_UseOptimizerScalesRigid3D->isChecked())
  {
    scales[0] = m_Controls.m_ScalesRigid3DTransformScale1->text().toDouble();
    scales[1] = m_Controls.m_ScalesRigid3DTransformScale2->text().toDouble();
    scales[2] = m_Controls.m_ScalesRigid3DTransformScale3->text().toDouble();
    scales[3] = m_Controls.m_ScalesRigid3DTransformScale4->text().toDouble();
    scales[4] = m_Controls.m_ScalesRigid3DTransformScale5->text().toDouble();
    scales[5] = m_Controls.m_ScalesRigid3DTransformScale6->text().toDouble();
    scales[6] = m_Controls.m_ScalesRigid3DTransformScale7->text().toDouble();
    scales[7] = m_Controls.m_ScalesRigid3DTransformScale8->text().toDouble();
    scales[8] = m_Controls.m_ScalesRigid3DTransformScale9->text().toDouble();
    scales[9] = m_Controls.m_ScalesRigid3DTransformScaleTranslationX->text().toDouble();
    scales[10] = m_Controls.m_ScalesRigid3DTransformScaleTranslationY->text().toDouble();
    scales[11] = m_Controls.m_ScalesRigid3DTransformScaleTranslationZ->text().toDouble();
  }
  return scales;
}
itk::Object::Pointer QmitkRigid3DTransformView::GetTransform (  ) [virtual]
itk::Array< double > QmitkRigid3DTransformView::GetTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 61 of file QmitkRigid3DTransformView.cpp.

References Ui_QmitkRigid3DTransformControls::m_CenterForInitializerRigid3D, m_Controls, Ui_QmitkRigid3DTransformControls::m_MomentsRigid3D, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale1, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale2, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale3, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale4, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale5, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale6, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale7, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale8, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale9, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationX, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationY, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationZ, and Ui_QmitkRigid3DTransformControls::m_UseOptimizerScalesRigid3D.

{
  itk::Array<double> transformValues;
  transformValues.SetSize(15);
  transformValues.fill(0);
  transformValues[0] = m_Controls.m_UseOptimizerScalesRigid3D->isChecked();
  transformValues[1] = m_Controls.m_ScalesRigid3DTransformScale1->text().toDouble();
  transformValues[2] = m_Controls.m_ScalesRigid3DTransformScale2->text().toDouble();
  transformValues[3] = m_Controls.m_ScalesRigid3DTransformScale3->text().toDouble();
  transformValues[4] = m_Controls.m_ScalesRigid3DTransformScale4->text().toDouble();
  transformValues[5] = m_Controls.m_ScalesRigid3DTransformScale5->text().toDouble();
  transformValues[6] = m_Controls.m_ScalesRigid3DTransformScale6->text().toDouble();
  transformValues[7] = m_Controls.m_ScalesRigid3DTransformScale7->text().toDouble();
  transformValues[8] = m_Controls.m_ScalesRigid3DTransformScale8->text().toDouble();
  transformValues[9] = m_Controls.m_ScalesRigid3DTransformScale9->text().toDouble();
  transformValues[10] = m_Controls.m_ScalesRigid3DTransformScaleTranslationX->text().toDouble();
  transformValues[11] = m_Controls.m_ScalesRigid3DTransformScaleTranslationY->text().toDouble();
  transformValues[12] = m_Controls.m_ScalesRigid3DTransformScaleTranslationZ->text().toDouble();
  transformValues[13] = m_Controls.m_CenterForInitializerRigid3D->isChecked();
  transformValues[14] = m_Controls.m_MomentsRigid3D->isChecked();
  return transformValues;
}
void QmitkRigid3DTransformView::SetTransformParameters ( itk::Array< double >  transformValues ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 84 of file QmitkRigid3DTransformView.cpp.

References Ui_QmitkRigid3DTransformControls::m_CenterForInitializerRigid3D, m_Controls, Ui_QmitkRigid3DTransformControls::m_GeometryRigid3D, Ui_QmitkRigid3DTransformControls::m_MomentsRigid3D, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale1, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale2, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale3, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale4, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale5, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale6, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale7, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale8, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale9, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationX, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationY, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationZ, and Ui_QmitkRigid3DTransformControls::m_UseOptimizerScalesRigid3D.

{
  m_Controls.m_UseOptimizerScalesRigid3D->setChecked(transformValues[0]);
  m_Controls.m_ScalesRigid3DTransformScale1->setText(QString::number(transformValues[1]));
  m_Controls.m_ScalesRigid3DTransformScale2->setText(QString::number(transformValues[2]));
  m_Controls.m_ScalesRigid3DTransformScale3->setText(QString::number(transformValues[3]));
  m_Controls.m_ScalesRigid3DTransformScale4->setText(QString::number(transformValues[4]));
  m_Controls.m_ScalesRigid3DTransformScale5->setText(QString::number(transformValues[5]));
  m_Controls.m_ScalesRigid3DTransformScale6->setText(QString::number(transformValues[6]));
  m_Controls.m_ScalesRigid3DTransformScale7->setText(QString::number(transformValues[7]));
  m_Controls.m_ScalesRigid3DTransformScale8->setText(QString::number(transformValues[8]));
  m_Controls.m_ScalesRigid3DTransformScale9->setText(QString::number(transformValues[9]));
  m_Controls.m_ScalesRigid3DTransformScaleTranslationX->setText(QString::number(transformValues[10]));
  m_Controls.m_ScalesRigid3DTransformScaleTranslationY->setText(QString::number(transformValues[11]));
  m_Controls.m_ScalesRigid3DTransformScaleTranslationZ->setText(QString::number(transformValues[12]));
  m_Controls.m_CenterForInitializerRigid3D->setChecked(transformValues[13]);
  m_Controls.m_MomentsRigid3D->setChecked(transformValues[14]);
  m_Controls.m_GeometryRigid3D->setChecked(!transformValues[14]);
}
void QmitkRigid3DTransformView::SetupUI ( QWidget *  parent ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 109 of file QmitkRigid3DTransformView.cpp.

References m_Controls, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale1, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale2, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale3, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale4, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale5, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale6, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale7, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale8, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale9, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationX, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationY, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationZ, and Ui_QmitkRigid3DTransformControls::setupUi().

{
  m_Controls.setupUi(parent);
  QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this);
  m_Controls.m_ScalesRigid3DTransformScale1->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScale2->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScale3->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScale4->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScale5->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScale6->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScale7->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScale8->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScale9->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScaleTranslationX->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScaleTranslationY->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesRigid3DTransformScaleTranslationZ->setValidator(validatorLineEditInputFloat);
}
vtkTransform * QmitkRigid3DTransformView::Transform ( vtkMatrix4x4 *  vtkmatrix,
vtkTransform *  vtktransform,
itk::Array< double >  transformParams 
) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 150 of file QmitkRigid3DTransformView.cpp.

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

{
  if (m_MovingImage.IsNotNull())
  {
    int m = 0;
    for (int i = 0; i < 3; i++)
    {
      for (int j = 0; j < 3; j++)
      {
        vtkmatrix->SetElement(i, j, transformParams[m]);
        m++;
      }
    }
    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[9]);
    vtkmatrix->SetElement(1, 3, -translation[1] + center[1] + transformParams[10]);
    vtkmatrix->SetElement(2, 3, -translation[2] + center[2] + transformParams[11]);
    vtktransform->SetMatrix(vtkmatrix);
  }
  return vtktransform;
}

Member Data Documentation

Definition at line 67 of file QmitkRigid3DTransformView.h.

Referenced by Transform().

Definition at line 68 of file QmitkRigid3DTransformView.h.

Referenced by Transform().

Definition at line 69 of file QmitkRigid3DTransformView.h.

Referenced by Transform().

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

Definition at line 65 of file QmitkRigid3DTransformView.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