33 if(m_Rigid3DTransform.IsNull())
35 itkExceptionMacro(
"Invalid parameter: Transform was not set! Use SetRigid3DTransform() before updating the filter.");
40 this->CreateOutputsForAllInputs();
43 for (
unsigned int i = 0; i < this->GetNumberOfIndexedOutputs() ; ++i)
52 output->SetDataValid(
false);
61 TransformType::OutputVectorType pInD;
62 FillVector3D(pInD, pInF[0], pInF[1], pInF[2]);
63 TransformType::VersorType oInD;
64 oInD.Set(oInF.x(), oInF.y(), oInF.z(), oInF.r());
66 TransformType::Pointer composedTransform = TransformType::New();
69 composedTransform->SetRotation(oInD);
70 composedTransform->SetOffset(pInD);
73 composedTransform->Compose(m_Rigid3DTransform, m_Precompose);
76 const TransformType::OutputVectorType pOutD = composedTransform->GetOffset();
77 const TransformType::VersorType oOutD = composedTransform->GetVersor();
82 FillVector3D(pOutF, pOutD[0], pOutD[1], pOutD[2]);
84 output->SetOrientation(oOutF);
85 output->SetPosition(pOutF);
86 output->SetDataValid(
true);