Mercurial > hg > orthanc-stone
diff Framework/dev.h @ 247:3d523c9a8f0d am
trying to use boost::signals2 even more.
author | am@osimis.io |
---|---|
date | Mon, 02 Jul 2018 12:32:02 +0200 |
parents | c4ea26865975 |
children |
line wrap: on
line diff
--- a/Framework/dev.h Tue Jun 26 13:55:17 2018 +0200 +++ b/Framework/dev.h Mon Jul 02 12:32:02 2018 +0200 @@ -43,10 +43,10 @@ // TODO: Handle errors while loading class OrthancVolumeImage : public SlicedVolumeBase, - private OrthancSlicesLoader::ICallback + public OrthancSlicesLoader::IObserver { private: - OrthancSlicesLoader loader_; + boost::shared_ptr<OrthancSlicesLoader> loader_; std::auto_ptr<ImageBuffer3D> image_; std::auto_ptr<DownloadStack> downloadStack_; bool computeRange_; @@ -59,7 +59,7 @@ unsigned int slice; if (downloadStack_->Pop(slice)) { - loader_.ScheduleLoadSliceImage(slice, SliceImageQuality_Jpeg90); + loader_->ScheduleLoadSliceImage(loader_, slice, SliceImageQuality_Jpeg90); } } @@ -217,36 +217,36 @@ public: OrthancVolumeImage(IWebService& orthanc, bool computeRange) : - loader_(*this, orthanc), computeRange_(computeRange), pendingSlices_(0) { + loader_.reset(new OrthancSlicesLoader(boost::shared_ptr<OrthancSlicesLoader::IObserver>(this), orthanc)); } void ScheduleLoadSeries(const std::string& seriesId) { - loader_.ScheduleLoadSeries(seriesId); + loader_->ScheduleLoadSeries(loader_, seriesId); } void ScheduleLoadInstance(const std::string& instanceId) { - loader_.ScheduleLoadInstance(instanceId); + loader_->ScheduleLoadInstance(loader_, instanceId); } void ScheduleLoadFrame(const std::string& instanceId, unsigned int frame) { - loader_.ScheduleLoadFrame(instanceId, frame); + loader_->ScheduleLoadFrame(loader_, instanceId, frame); } virtual size_t GetSliceCount() const { - return loader_.GetSliceCount(); + return loader_->GetSliceCount(); } virtual const Slice& GetSlice(size_t index) const { - return loader_.GetSlice(index); + return loader_->GetSlice(index); } ImageBuffer3D& GetImage() const @@ -629,8 +629,8 @@ } std::auto_ptr<Slice> slice(geometry.GetSlice(closest)); - LayerSourceBase::NotifyLayerReady( - FrameRenderer::CreateRenderer(frame.release(), *slice, isFullQuality), + LayerSourceBase::NotifyLayerReady(boost::shared_ptr<ILayerRenderer>( + FrameRenderer::CreateRenderer(frame.release(), *slice, isFullQuality)), //new SliceOutlineRenderer(slice), slice->GetGeometry(), false); return; @@ -855,7 +855,7 @@ extent.GetX1(), extent.GetY1(), extent.GetX2(), extent.GetY2())) { - NotifyLayerReady(new LineLayerRenderer(x1, y1, x2, y2, slice), reference.GetGeometry(), false); + NotifyLayerReady(boost::shared_ptr<ILayerRenderer>(new LineLayerRenderer(x1, y1, x2, y2, slice)), reference.GetGeometry(), false); } else {