84 DataObjectPointerArray inputs = this->GetInputs();
85 for (
unsigned int index = 0; index < inputs.size(); index++)
97 output->SetDataValid(
false);
102 const std::vector<mitk::NavigationDataObjectVisualizationFilter::RepresentationPointer> data =
103 this->GetAllRepresentationObjects(index);
105 for (
unsigned int dataIdx = 0; dataIdx < data.size(); dataIdx++)
107 if (data.at(dataIdx) ==
nullptr)
109 MITK_WARN <<
"No BaseData associated with input " << index;
114 mitk::AffineTransform3D::Pointer affineTransform = data.at(dataIdx)->GetGeometry()->GetIndexToWorldTransform();
115 if (affineTransform.IsNull())
117 MITK_WARN <<
"AffineTransform IndexToWorldTransform not initialized!";
122 mitk::AffineTransform3D::Pointer offset = this->GetOffset(index);
125 mitk::Vector3D spacing = data.at(dataIdx)->GetGeometry()->GetSpacing();
127 ScalarType scale[] = {1.0, 1.0, 1.0};
128 data.at(dataIdx)->GetGeometry()->SetSpacing(scale);
131 affineTransform->SetIdentity();
133 if (this->GetTransformOrientation(index) ==
true)
139 static AffineTransform3D::MatrixType m;
142 if (m_RotationMode == RotationStandard)
145 static itk::QuaternionRigidTransform<double>::Pointer quatTransform =
146 itk::QuaternionRigidTransform<double>::New();
148 vnl_quaternion<double> doubleQuaternion(orientation.x(), orientation.y(), orientation.z(), orientation.r());
149 quatTransform->SetIdentity();
150 quatTransform->SetRotation(doubleQuaternion);
151 quatTransform->Modified();
152 mitk::TransferMatrix(quatTransform->GetMatrix(), m);
155 else if (m_RotationMode == RotationTransposed)
157 vnl_matrix_fixed<mitk::ScalarType, 3, 3> rot = orientation.rotation_matrix_transpose();
158 for (
int i = 0; i < 3; i++)
159 for (
int j = 0; j < 3; j++)
162 affineTransform->SetMatrix(m);
164 if (this->GetTransformPosition(index) ==
true)
168 pos.SetVnlVector(nd->GetPosition().GetVnlVector());
169 affineTransform->SetOffset(pos);
171 affineTransform->Modified();
174 if (offset.IsNotNull())
176 mitk::AffineTransform3D::Pointer overallTransform = mitk::AffineTransform3D::New();
177 overallTransform->SetIdentity();
178 overallTransform->Compose(offset);
179 overallTransform->Compose(affineTransform);
180 data.at(dataIdx)->GetGeometry()->SetIndexToWorldTransform(overallTransform);
184 data.at(dataIdx)->GetGeometry()->SetIndexToWorldTransform(affineTransform);
188 data.at(dataIdx)->GetGeometry()->SetSpacing(spacing);
189 data.at(dataIdx)->GetGeometry()->Modified();
190 data.at(dataIdx)->Modified();
191 output->SetDataValid(
true);