Public Member Functions | Protected Attributes

QmitkFixedCenterOfRotationAffineTransformView Class Reference

Widget for rigid registration. More...

#include <QmitkFixedCenterOfRotationAffineTransformView.h>

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

List of all members.

Public Member Functions

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


Constructor & Destructor Documentation

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

Definition at line 29 of file QmitkFixedCenterOfRotationAffineTransformView.cpp.

{
}

Member Function Documentation

QString QmitkFixedCenterOfRotationAffineTransformView::GetName (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 123 of file QmitkFixedCenterOfRotationAffineTransformView.cpp.

{
  return "FixedCenterOfRotationAffine";
}
int QmitkFixedCenterOfRotationAffineTransformView::GetNumberOfTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 205 of file QmitkFixedCenterOfRotationAffineTransformView.cpp.

References m_Controls, QmitkRigidRegistrationTransformsGUIBase::m_FixedImage, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale7, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale8, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale9, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ, Ui_QmitkFixedCenterOfRotationAffineTransformControls::textLabel11_3_2_2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::textLabel12_3_2_2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::textLabel13_2_2_2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::textLabel2_7_2_2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::textLabel3_6_2_2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::textLabel4_4_3_2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::textLabel5_4_2_2, and Ui_QmitkFixedCenterOfRotationAffineTransformControls::textLabel6_4_2_2.

{
  if (m_FixedImage.IsNotNull())
  {
    if (m_FixedImage->GetDimension() == 2)
    {
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale7->hide();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale8->hide();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale9->hide();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX->hide();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY->hide();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ->hide();
      m_Controls.textLabel2_7_2_2->setText("Translation Scale X:");
      m_Controls.textLabel3_6_2_2->setText("Translation Scale Y:");
      m_Controls.textLabel4_4_3_2->hide();
      m_Controls.textLabel5_4_2_2->hide();
      m_Controls.textLabel6_4_2_2->hide();
      m_Controls.textLabel11_3_2_2->hide();
      m_Controls.textLabel12_3_2_2->hide();
      m_Controls.textLabel13_2_2_2->hide();
      return 6;
    }
    else
    {
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale7->show();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale8->show();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale9->show();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX->show();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY->show();
      m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ->show();
      m_Controls.textLabel2_7_2_2->setText("Scale 5:");
      m_Controls.textLabel3_6_2_2->setText("Scale 6:");
      m_Controls.textLabel4_4_3_2->show();
      m_Controls.textLabel5_4_2_2->show();
      m_Controls.textLabel6_4_2_2->show();
      m_Controls.textLabel11_3_2_2->show();
      m_Controls.textLabel12_3_2_2->show();
      m_Controls.textLabel13_2_2_2->show();
      return 12;
    }
  }
  else 
    return 0;
}
itk::Array< double > QmitkFixedCenterOfRotationAffineTransformView::GetScales (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 146 of file QmitkFixedCenterOfRotationAffineTransformView.cpp.

References m_Controls, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale1, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale3, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale4, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale5, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale6, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale7, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale8, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale9, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ, and Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_UseOptimizerScalesFixedCenterOfRotationAffine.

itk::Object::Pointer QmitkFixedCenterOfRotationAffineTransformView::GetTransform (  ) [virtual]
itk::Array< double > QmitkFixedCenterOfRotationAffineTransformView::GetTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 80 of file QmitkFixedCenterOfRotationAffineTransformView.cpp.

References Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_CenterForInitializerFixedCenterOfRotationAffine, m_Controls, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_MomentsFixedCenterOfRotationAffine, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale1, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale3, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale4, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale5, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale6, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale7, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale8, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale9, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ, and Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_UseOptimizerScalesFixedCenterOfRotationAffine.

{
  itk::Array<double> transformValues;
  transformValues.SetSize(15);
  transformValues.fill(0);
  transformValues[0] = m_Controls.m_UseOptimizerScalesFixedCenterOfRotationAffine->isChecked();
  transformValues[1] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale1->text().toDouble();
  transformValues[2] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale2->text().toDouble();
  transformValues[3] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale3->text().toDouble();
  transformValues[4] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale4->text().toDouble();
  transformValues[5] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale5->text().toDouble();
  transformValues[6] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale6->text().toDouble();
  transformValues[7] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale7->text().toDouble();
  transformValues[8] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale8->text().toDouble();
  transformValues[9] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale9->text().toDouble();
  transformValues[10] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX->text().toDouble();
  transformValues[11] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY->text().toDouble();
  transformValues[12] = m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ->text().toDouble();
  transformValues[13] = m_Controls.m_CenterForInitializerFixedCenterOfRotationAffine->isChecked();
  transformValues[14] = m_Controls.m_MomentsFixedCenterOfRotationAffine->isChecked();
  return transformValues;
}
void QmitkFixedCenterOfRotationAffineTransformView::SetTransformParameters ( itk::Array< double >  transformValues ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 103 of file QmitkFixedCenterOfRotationAffineTransformView.cpp.

References Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_CenterForInitializerFixedCenterOfRotationAffine, m_Controls, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_GeometryFixedCenterOfRotationAffine, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_MomentsFixedCenterOfRotationAffine, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale1, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale3, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale4, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale5, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale6, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale7, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale8, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale9, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ, and Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_UseOptimizerScalesFixedCenterOfRotationAffine.

{
  m_Controls.m_UseOptimizerScalesFixedCenterOfRotationAffine->setChecked(transformValues[0]);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale1->setText(QString::number(transformValues[1]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale2->setText(QString::number(transformValues[2]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale3->setText(QString::number(transformValues[3]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale4->setText(QString::number(transformValues[4]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale5->setText(QString::number(transformValues[5]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale6->setText(QString::number(transformValues[6]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale7->setText(QString::number(transformValues[7]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale8->setText(QString::number(transformValues[8]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale9->setText(QString::number(transformValues[9]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX->setText(QString::number(transformValues[10]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY->setText(QString::number(transformValues[11]));
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ->setText(QString::number(transformValues[12]));
  m_Controls.m_CenterForInitializerFixedCenterOfRotationAffine->setChecked(transformValues[13]);
  m_Controls.m_MomentsFixedCenterOfRotationAffine->setChecked(transformValues[14]);
  m_Controls.m_GeometryFixedCenterOfRotationAffine->setChecked(!transformValues[14]);
}
void QmitkFixedCenterOfRotationAffineTransformView::SetupUI ( QWidget *  parent ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 128 of file QmitkFixedCenterOfRotationAffineTransformView.cpp.

References m_Controls, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale1, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale2, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale3, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale4, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale5, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale6, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale7, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale8, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScale9, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY, Ui_QmitkFixedCenterOfRotationAffineTransformControls::m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ, and Ui_QmitkFixedCenterOfRotationAffineTransformControls::setupUi().

{
  m_Controls.setupUi(parent);
  QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale1->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale2->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale3->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale4->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale5->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale6->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale7->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale8->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScale9->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationX->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationY->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesFixedCenterOfRotationAffineTransformScaleTranslationZ->setValidator(validatorLineEditInputFloat);
}
vtkTransform * QmitkFixedCenterOfRotationAffineTransformView::Transform ( vtkMatrix4x4 *  vtkmatrix,
vtkTransform *  vtktransform,
itk::Array< double >  transformParams 
) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 169 of file QmitkFixedCenterOfRotationAffineTransformView.cpp.

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

{
  if (m_MovingImage.IsNotNull())
  {
    int m = 0;
    for (unsigned int i = 0; i < m_FixedImage->GetDimension(); i++)
    {
      for (unsigned int j = 0; j < m_FixedImage->GetDimension(); 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);
    if (m_FixedImage->GetDimension() == 2)
    {
      vtkmatrix->SetElement(0, 3, -translation[0] + center[0] + transformParams[4]);
      vtkmatrix->SetElement(1, 3, -translation[1] + center[1] + transformParams[5]);
    }
    else if (m_FixedImage->GetDimension() == 3)
    {
      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 QmitkFixedCenterOfRotationAffineTransformView.h.

Referenced by Transform().

Definition at line 68 of file QmitkFixedCenterOfRotationAffineTransformView.h.

Referenced by Transform().

Definition at line 69 of file QmitkFixedCenterOfRotationAffineTransformView.h.

Referenced by Transform().

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