Public Member Functions | Protected Attributes

QmitkVersorRigid3DTransformView Class Reference

Widget for rigid registration. More...

#include <QmitkVersorRigid3DTransformView.h>

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

List of all members.

Public Member Functions

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


Constructor & Destructor Documentation

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

Definition at line 29 of file QmitkVersorRigid3DTransformView.cpp.

{
}

Member Function Documentation

QString QmitkVersorRigid3DTransformView::GetName (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 129 of file QmitkVersorRigid3DTransformView.cpp.

{
  return "VersorRigid3D";
}
int QmitkVersorRigid3DTransformView::GetNumberOfTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 192 of file QmitkVersorRigid3DTransformView.cpp.

References QmitkRigidRegistrationTransformsGUIBase::m_FixedImage.

{
  if (m_FixedImage.IsNotNull())
  {
    if (m_FixedImage->GetDimension() == 2)
      return 0;
    else
      return 6;
  }
  else 
    return 0;
}
itk::Array< double > QmitkVersorRigid3DTransformView::GetScales (  ) [virtual]
itk::Object::Pointer QmitkVersorRigid3DTransformView::GetTransform (  ) [virtual]
itk::Array< double > QmitkVersorRigid3DTransformView::GetTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 98 of file QmitkVersorRigid3DTransformView.cpp.

References Ui_QmitkVersorRigid3DTransformControls::m_CenterForInitializerVersorRigid3D, m_Controls, Ui_QmitkVersorRigid3DTransformControls::m_MomentsVersorRigid3D, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScale1, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScale2, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScale3, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScaleTranslationX, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScaleTranslationY, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScaleTranslationZ, and Ui_QmitkVersorRigid3DTransformControls::m_UseOptimizerScalesVersorRigid3D.

{
  itk::Array<double> transformValues;
  transformValues.SetSize(9);
  transformValues.fill(0);
  transformValues[0] = m_Controls.m_UseOptimizerScalesVersorRigid3D->isChecked();
  transformValues[1] = m_Controls.m_ScalesVersorRigid3DTransformScale1->text().toDouble();
  transformValues[2] = m_Controls.m_ScalesVersorRigid3DTransformScale2->text().toDouble();
  transformValues[3] = m_Controls.m_ScalesVersorRigid3DTransformScale3->text().toDouble();
  transformValues[4] = m_Controls.m_ScalesVersorRigid3DTransformScaleTranslationX->text().toDouble();
  transformValues[5] = m_Controls.m_ScalesVersorRigid3DTransformScaleTranslationY->text().toDouble();
  transformValues[6] = m_Controls.m_ScalesVersorRigid3DTransformScaleTranslationZ->text().toDouble();
  transformValues[7] = m_Controls.m_CenterForInitializerVersorRigid3D->isChecked();
  transformValues[8] = m_Controls.m_MomentsVersorRigid3D->isChecked();
  return transformValues;
}
void QmitkVersorRigid3DTransformView::SetTransformParameters ( itk::Array< double >  transformValues ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 115 of file QmitkVersorRigid3DTransformView.cpp.

References Ui_QmitkVersorRigid3DTransformControls::m_CenterForInitializerVersorRigid3D, m_Controls, Ui_QmitkVersorRigid3DTransformControls::m_GeometryVersorRigid3D, Ui_QmitkVersorRigid3DTransformControls::m_MomentsVersorRigid3D, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScale1, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScale2, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScale3, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScaleTranslationX, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScaleTranslationY, Ui_QmitkVersorRigid3DTransformControls::m_ScalesVersorRigid3DTransformScaleTranslationZ, and Ui_QmitkVersorRigid3DTransformControls::m_UseOptimizerScalesVersorRigid3D.

{
  m_Controls.m_UseOptimizerScalesVersorRigid3D->setChecked(transformValues[0]);
  m_Controls.m_ScalesVersorRigid3DTransformScale1->setText(QString::number(transformValues[1]));
  m_Controls.m_ScalesVersorRigid3DTransformScale2->setText(QString::number(transformValues[2]));
  m_Controls.m_ScalesVersorRigid3DTransformScale3->setText(QString::number(transformValues[3]));
  m_Controls.m_ScalesVersorRigid3DTransformScaleTranslationX->setText(QString::number(transformValues[4]));
  m_Controls.m_ScalesVersorRigid3DTransformScaleTranslationY->setText(QString::number(transformValues[5]));
  m_Controls.m_ScalesVersorRigid3DTransformScaleTranslationZ->setText(QString::number(transformValues[6]));
  m_Controls.m_CenterForInitializerVersorRigid3D->setChecked(transformValues[7]);
  m_Controls.m_MomentsVersorRigid3D->setChecked(transformValues[8]);
  m_Controls.m_GeometryVersorRigid3D->setChecked(!transformValues[8]);
}
void QmitkVersorRigid3DTransformView::SetupUI ( QWidget *  parent ) [virtual]
vtkTransform * QmitkVersorRigid3DTransformView::Transform ( vtkMatrix4x4 *  vtkmatrix,
vtkTransform *  vtktransform,
itk::Array< double >  transformParams 
) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 163 of file QmitkVersorRigid3DTransformView.cpp.

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

{
  if (m_MovingImage.IsNotNull())
  {
    itk::VersorRigid3DTransform<double>::Pointer versorTransform = itk::VersorRigid3DTransform<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 QmitkVersorRigid3DTransformView.h.

Referenced by Transform().

Definition at line 68 of file QmitkVersorRigid3DTransformView.h.

Referenced by Transform().

Definition at line 69 of file QmitkVersorRigid3DTransformView.h.

Referenced by Transform().

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

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