Mercurial > hg > orthanc-stone
diff Framework/Radiography/RadiographyScene.cpp @ 553:92305ee35b1c dev
web-worker consequences: give access to lower level data
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Wed, 03 Apr 2019 17:38:43 +0200 |
parents | b336dfa71f12 |
children | a29f9628369e 848170ca4351 |
line wrap: on
line diff
--- a/Framework/Radiography/RadiographyScene.cpp Fri Mar 29 15:21:33 2019 +0100 +++ b/Framework/Radiography/RadiographyScene.cpp Wed Apr 03 17:38:43 2019 +0200 @@ -328,6 +328,29 @@ return RegisterLayer(alpha.release()); } + RadiographyLayer& RadiographyScene::LoadDicomImage(Orthanc::ImageAccessor* dicomImage, // takes ownership + const std::string& instance, + unsigned int frame, + DicomFrameConverter* converter, // takes ownership + PhotometricDisplayMode preferredPhotometricDisplayMode, + RadiographyLayer::Geometry* geometry) + { + RadiographyDicomLayer& layer = dynamic_cast<RadiographyDicomLayer&>(RegisterLayer(new RadiographyDicomLayer(IObservable::GetBroker(), *this))); + + layer.SetInstance(instance, frame); + + if (geometry != NULL) + { + layer.SetGeometry(*geometry); + } + + layer.SetDicomFrameConverter(converter); + layer.SetSourceImage(dicomImage); + layer.SetPreferredPhotomotricDisplayMode(preferredPhotometricDisplayMode); + + return layer; + } + RadiographyLayer& RadiographyScene::LoadDicomFrame(OrthancApiClient& orthanc, const std::string& instance, unsigned int frame, @@ -582,7 +605,7 @@ Render(layers, view, interpolation); std::auto_ptr<Orthanc::Image> rendered(new Orthanc::Image(Orthanc::PixelFormat_Grayscale16, - layers.GetWidth(), layers.GetHeight(), false)); + layers.GetWidth(), layers.GetHeight(), false)); Orthanc::ImageProcessing::Convert(*rendered, layers); if (invert)