39 if (this->GetIsFreezed())
46 m_UltrasoundDevice->Update();
47 mitk::Image::Pointer image = m_UltrasoundDevice->GetOutput(0);
48 if (image.IsNull() || !image->IsInitialized())
50 MITK_WARN <<
"Invalid image in USCombinedModality, aborting!";
55 mitk::Image::Pointer output = this->GetOutput();
56 if (!output->IsInitialized())
58 output->Initialize(image);
62 mitk::ImageReadAccessor inputReadAccessor(image, image->GetSliceData(0, 0, 0));
63 output->SetSlice(inputReadAccessor.GetData());
66 std::string calibrationKey = this->GetIdentifierForCurrentCalibration();
67 if (!calibrationKey.empty())
69 std::map<std::string, mitk::AffineTransform3D::Pointer>::iterator calibrationIterator =
70 m_Calibrations.find(calibrationKey);
71 if (calibrationIterator != m_Calibrations.end())
75 this->GetOutput()->GetGeometry()->SetIndexToWorldTransform(calibrationIterator->second);
78 output->GetGeometry()->SetSpacing(image->GetGeometry()->GetSpacing());
83 mitk::TrackingDeviceSource::Pointer trackingDeviceSource =
dynamic_cast<mitk::TrackingDeviceSource*
>(m_TrackingDeviceDataSource.GetPointer());
84 if (trackingDeviceSource.IsNull())
86 MITK_WARN(
"USCombinedModality")(
"USDevice") <<
"Cannot freeze tracking.";
90 if (freeze) { trackingDeviceSource->Freeze(); }
91 else { trackingDeviceSource->UnFreeze(); }
94 if (m_UltrasoundDevice.IsNull())
96 MITK_ERROR(
"USCombinedModality")(
"USDevice") <<
"UltrasoundDevice must not be null.";
97 mitkThrow() <<
"UltrasoundDevice must not be null.";
99 m_UltrasoundDevice->SetIsFreezed(freeze);