Mercurial > hg > orthanc-stone
diff OrthancStone/Sources/Scene2D/GrayscaleWindowingSceneTracker.cpp @ 1639:5cdc5b98f14d
cppcheck
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 10 Nov 2020 16:41:11 +0100 |
parents | 874e178f34e9 |
children | d4a8e2b19a65 |
line wrap: on
line diff
--- a/OrthancStone/Sources/Scene2D/GrayscaleWindowingSceneTracker.cpp Tue Nov 10 16:26:47 2020 +0100 +++ b/OrthancStone/Sources/Scene2D/GrayscaleWindowingSceneTracker.cpp Tue Nov 10 16:41:11 2020 +0100 @@ -117,24 +117,28 @@ if (canvasWidth > 3 && canvasHeight > 3) { - boost::weak_ptr<IViewport> viewport = viewport_.lock(); - GrayscaleLayerAccessor accessor(viewport, layerIndex_); + boost::shared_ptr<IViewport> locked = viewport_.lock(); + + if (locked) + { + GrayscaleLayerAccessor accessor(locked, layerIndex_); - if (accessor.IsValid()) - { - FloatTextureSceneLayer& layer = accessor.GetLayer(); - - layer.GetWindowing(originalCenter_, originalWidth_); + if (accessor.IsValid()) + { + FloatTextureSceneLayer& layer = accessor.GetLayer(); - float minValue, maxValue; - layer.GetRange(minValue, maxValue); + layer.GetWindowing(originalCenter_, originalWidth_); + + float minValue, maxValue; + layer.GetRange(minValue, maxValue); - normalization_ = (maxValue - minValue) / static_cast<double>(std::min(canvasWidth, canvasHeight) - 1); - active_ = true; - } - else - { - LOG(INFO) << "Cannot create GrayscaleWindowingSceneTracker on a non-float texture"; + normalization_ = (maxValue - minValue) / static_cast<double>(std::min(canvasWidth, canvasHeight) - 1); + active_ = true; + } + else + { + LOG(INFO) << "Cannot create GrayscaleWindowingSceneTracker on a non-float texture"; + } } } }