Mercurial > hg > orthanc-stone
diff Framework/Layers/OrthancFrameLayerSource.cpp @ 93:5945e81734a3 wasm
decoding of JPEG images
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 29 May 2017 17:28:31 +0200 |
parents | 64e60018943f |
children | f8bce1bebe01 |
line wrap: on
line diff
--- a/Framework/Layers/OrthancFrameLayerSource.cpp Mon May 29 11:42:53 2017 +0200 +++ b/Framework/Layers/OrthancFrameLayerSource.cpp Mon May 29 17:28:31 2017 +0200 @@ -29,29 +29,18 @@ #include <boost/lexical_cast.hpp> - -// TODO REMOVE THIS -#include "../Widgets/LayerWidget.h" - namespace OrthancStone { void OrthancFrameLayerSource::NotifyGeometryReady(const OrthancSlicesLoader& loader) { if (loader.GetSliceCount() > 0) { - // Make sure all the slices are parallel. TODO Alleviate this constraint - for (size_t i = 1; i < loader.GetSliceCount(); i++) - { - if (!GeometryToolbox::IsParallel(loader.GetSlice(i).GetGeometry().GetNormal(), - loader.GetSlice(0).GetGeometry().GetNormal())) - { - LayerSourceBase::NotifyGeometryError(); - return; - } - } + LayerSourceBase::NotifyGeometryReady(); } - - LayerSourceBase::NotifyGeometryReady(); + else + { + LayerSourceBase::NotifyGeometryError(); + } } void OrthancFrameLayerSource::NotifyGeometryError(const OrthancSlicesLoader& loader) @@ -62,14 +51,17 @@ void OrthancFrameLayerSource::NotifySliceImageReady(const OrthancSlicesLoader& loader, unsigned int sliceIndex, const Slice& slice, - Orthanc::ImageAccessor* image) + Orthanc::ImageAccessor* image, + SliceImageQuality quality) { - LayerSourceBase::NotifyLayerReady(FrameRenderer::CreateRenderer(image, slice, true), slice); + bool isFull = (quality == SliceImageQuality_Full); + LayerSourceBase::NotifyLayerReady(FrameRenderer::CreateRenderer(image, slice, isFull), slice); } void OrthancFrameLayerSource::NotifySliceImageError(const OrthancSlicesLoader& loader, unsigned int sliceIndex, - const Slice& slice) + const Slice& slice, + SliceImageQuality quality) { LayerSourceBase::NotifyLayerError(slice.GetGeometry()); } @@ -133,7 +125,8 @@ { if (loader_.LookupSlice(index, viewportSlice)) { - loader_.ScheduleLoadSliceImage(index); + //loader_.ScheduleLoadSliceImage(index, SliceImageQuality_Full); + loader_.ScheduleLoadSliceImage(index, SliceImageQuality_Jpeg50); } else {