Public Member Functions | Protected Attributes

QmitkScaleSkewVersor3DTransformView Class Reference

Widget for rigid registration. More...

#include <QmitkScaleSkewVersor3DTransformView.h>

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

List of all members.

Public Member Functions

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


Constructor & Destructor Documentation

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

Definition at line 29 of file QmitkScaleSkewVersor3DTransformView.cpp.

{
}

Member Function Documentation

QString QmitkScaleSkewVersor3DTransformView::GetName (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 132 of file QmitkScaleSkewVersor3DTransformView.cpp.

{
  return "ScaleSkewVersor3D";
}
int QmitkScaleSkewVersor3DTransformView::GetNumberOfTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 213 of file QmitkScaleSkewVersor3DTransformView.cpp.

References QmitkRigidRegistrationTransformsGUIBase::m_FixedImage.

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

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 158 of file QmitkScaleSkewVersor3DTransformView.cpp.

References m_Controls, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScaleScaleSkewVersorRigid3DTransformScaleTranslationY, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale1, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale10, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale11, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale12, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale13, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale14, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale15, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale2, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale3, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale7, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale8, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale9, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationX, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationZ, and Ui_QmitkScaleSkewVersor3DTransformControls::m_UseOptimizerScalesScaleSkewVersorRigid3DTransform.

{
  itk::Array<double> scales;
  scales.SetSize(15);
  scales.Fill(1.0);
  if (m_Controls.m_UseOptimizerScalesScaleSkewVersorRigid3DTransform->isChecked())
  {
    scales[0] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale1->text().toDouble();
    scales[1] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale2->text().toDouble();
    scales[2] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale3->text().toDouble();
    scales[3] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationX->text().toDouble();
    scales[4] = m_Controls.m_ScaleScaleSkewVersorRigid3DTransformScaleTranslationY->text().toDouble();
    scales[5] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationZ->text().toDouble();
    scales[6] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale7->text().toDouble();
    scales[7] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale8->text().toDouble();
    scales[8] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale9->text().toDouble();
    scales[9] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale10->text().toDouble();
    scales[10] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale11->text().toDouble();
    scales[11] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale12->text().toDouble();
    scales[12] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale13->text().toDouble();
    scales[13] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale14->text().toDouble();
    scales[14] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale15->text().toDouble();
  }
  return scales;
}
itk::Object::Pointer QmitkScaleSkewVersor3DTransformView::GetTransform (  ) [virtual]
itk::Array< double > QmitkScaleSkewVersor3DTransformView::GetTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 83 of file QmitkScaleSkewVersor3DTransformView.cpp.

References Ui_QmitkScaleSkewVersor3DTransformControls::m_CenterForInitializerScaleSkewVersorRigid3D, m_Controls, Ui_QmitkScaleSkewVersor3DTransformControls::m_MomentsScaleSkewVersorRigid3D, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScaleScaleSkewVersorRigid3DTransformScaleTranslationY, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale1, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale10, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale11, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale12, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale13, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale14, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale15, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale2, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale3, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale7, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale8, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale9, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationX, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationZ, and Ui_QmitkScaleSkewVersor3DTransformControls::m_UseOptimizerScalesScaleSkewVersorRigid3DTransform.

{
  itk::Array<double> transformValues;
  transformValues.SetSize(18);
  transformValues.fill(0);
  transformValues[0] = m_Controls.m_UseOptimizerScalesScaleSkewVersorRigid3DTransform->isChecked();
  transformValues[1] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale1->text().toDouble();
  transformValues[2] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale2->text().toDouble();
  transformValues[3] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale3->text().toDouble();
  transformValues[4] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationX->text().toDouble();
  transformValues[5] = m_Controls.m_ScaleScaleSkewVersorRigid3DTransformScaleTranslationY->text().toDouble();
  transformValues[6] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationZ->text().toDouble();
  transformValues[7] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale7->text().toDouble();
  transformValues[8] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale8->text().toDouble();
  transformValues[9] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale9->text().toDouble();
  transformValues[10] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale10->text().toDouble();
  transformValues[11] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale11->text().toDouble();
  transformValues[12] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale12->text().toDouble();
  transformValues[13] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale13->text().toDouble();
  transformValues[14] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale14->text().toDouble();
  transformValues[15] = m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale15->text().toDouble();
  transformValues[16] = m_Controls.m_CenterForInitializerScaleSkewVersorRigid3D->isChecked();
  transformValues[17] = m_Controls.m_MomentsScaleSkewVersorRigid3D->isChecked();
  return transformValues;
}
void QmitkScaleSkewVersor3DTransformView::SetTransformParameters ( itk::Array< double >  transformValues ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 109 of file QmitkScaleSkewVersor3DTransformView.cpp.

References Ui_QmitkScaleSkewVersor3DTransformControls::m_CenterForInitializerScaleSkewVersorRigid3D, m_Controls, Ui_QmitkScaleSkewVersor3DTransformControls::m_GeometryScaleSkewVersorRigid3D, Ui_QmitkScaleSkewVersor3DTransformControls::m_MomentsScaleSkewVersorRigid3D, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScaleScaleSkewVersorRigid3DTransformScaleTranslationY, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale1, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale10, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale11, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale12, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale13, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale14, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale15, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale2, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale3, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale7, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale8, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale9, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationX, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationZ, and Ui_QmitkScaleSkewVersor3DTransformControls::m_UseOptimizerScalesScaleSkewVersorRigid3DTransform.

{
  m_Controls.m_UseOptimizerScalesScaleSkewVersorRigid3DTransform->setChecked(transformValues[0]);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale1->setText(QString::number(transformValues[1]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale2->setText(QString::number(transformValues[2]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale3->setText(QString::number(transformValues[3]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationX->setText(QString::number(transformValues[4]));
  m_Controls.m_ScaleScaleSkewVersorRigid3DTransformScaleTranslationY->setText(QString::number(transformValues[5]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationZ->setText(QString::number(transformValues[6]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale7->setText(QString::number(transformValues[7]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale8->setText(QString::number(transformValues[8]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale9->setText(QString::number(transformValues[9]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale10->setText(QString::number(transformValues[10]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale11->setText(QString::number(transformValues[11]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale12->setText(QString::number(transformValues[12]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale13->setText(QString::number(transformValues[13]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale14->setText(QString::number(transformValues[14]));
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale15->setText(QString::number(transformValues[15]));
  m_Controls.m_CenterForInitializerScaleSkewVersorRigid3D->setChecked(transformValues[16]);
  m_Controls.m_MomentsScaleSkewVersorRigid3D->setChecked(transformValues[17]);
  m_Controls.m_GeometryScaleSkewVersorRigid3D->setChecked(!transformValues[17]);
}
void QmitkScaleSkewVersor3DTransformView::SetupUI ( QWidget *  parent ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 137 of file QmitkScaleSkewVersor3DTransformView.cpp.

References m_Controls, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScaleScaleSkewVersorRigid3DTransformScaleTranslationY, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale1, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale10, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale11, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale12, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale13, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale14, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale15, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale2, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale3, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale7, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale8, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScale9, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationX, Ui_QmitkScaleSkewVersor3DTransformControls::m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationZ, and Ui_QmitkScaleSkewVersor3DTransformControls::setupUi().

{
  m_Controls.setupUi(parent);
  QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale1->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale2->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale3->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationX->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScaleScaleSkewVersorRigid3DTransformScaleTranslationY->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScaleTranslationZ->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale7->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale8->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale9->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale10->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale11->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale12->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale13->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale14->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesScaleSkewVersorRigid3DTransformScale15->setValidator(validatorLineEditInputFloat);
}
vtkTransform * QmitkScaleSkewVersor3DTransformView::Transform ( vtkMatrix4x4 *  vtkmatrix,
vtkTransform *  vtktransform,
itk::Array< double >  transformParams 
) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 184 of file QmitkScaleSkewVersor3DTransformView.cpp.

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

{
  if (m_MovingImage.IsNotNull())
  {
    itk::ScaleSkewVersor3DTransform<double>::Pointer versorTransform = itk::ScaleSkewVersor3DTransform<double>::New();
    versorTransform->SetParameters(transformParams);
    itk::Matrix<double, 3, 3> Matrix = versorTransform->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[3]);
    vtkmatrix->SetElement(1, 3, -translation[1] + center[1] + transformParams[4]);
    vtkmatrix->SetElement(2, 3, -translation[2] + center[2] + transformParams[5]);
    vtktransform->SetMatrix(vtkmatrix);
  }
  return vtktransform;
}

Member Data Documentation

Definition at line 67 of file QmitkScaleSkewVersor3DTransformView.h.

Referenced by Transform().

Definition at line 68 of file QmitkScaleSkewVersor3DTransformView.h.

Referenced by Transform().

Definition at line 69 of file QmitkScaleSkewVersor3DTransformView.h.

Referenced by Transform().

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