43 if (this->GetIsFreezed()) {
return; }
48 m_UltrasoundDevice->Update();
49 mitk::Image::Pointer image = m_UltrasoundDevice->GetOutput(i);
50 if (image.IsNull() || !image->IsInitialized())
52 MITK_WARN <<
"Invalid image in TrackedUltrasound, aborting!";
58 mitk::Image::Pointer output = this->GetOutput(i);
59 if (!output->IsInitialized()) { output->Initialize(image); }
62 mitk::ImageReadAccessor inputReadAccessor(image, image->GetSliceData(0, 0, 0));
63 output->SetSlice(inputReadAccessor.GetData());
64 output->GetGeometry()->SetSpacing(image->GetGeometry()->GetSpacing());
67 std::string calibrationKey = this->GetIdentifierForCurrentCalibration();
68 if (!calibrationKey.empty())
70 std::map<std::string, mitk::AffineTransform3D::Pointer>::iterator calibrationIterator
71 = m_Calibrations.find(calibrationKey);
72 if (calibrationIterator != m_Calibrations.end())
76 m_DisplacementFilter->SetTransformation(calibrationIterator->second);
84 mitk::TrackingDeviceSource::Pointer trackingDeviceSource =
dynamic_cast<mitk::TrackingDeviceSource*
>(m_TrackingDeviceDataSource.GetPointer());
85 if (trackingDeviceSource.IsNull())
87 MITK_WARN(
"TrackedUltrasound")(
"USDevice") <<
"Cannot freeze tracking.";
91 if (freeze) { trackingDeviceSource->Freeze(); }
92 else { trackingDeviceSource->UnFreeze(); }
95 if (m_UltrasoundDevice.IsNull())
97 MITK_ERROR(
"TrackedUltrasound")(
"USDevice") <<
"UltrasoundDevice must not be null.";
98 mitkThrow() <<
"UltrasoundDevice must not be null.";
100 m_UltrasoundDevice->SetIsFreezed(freeze);