From d50b46bda2c1787b62adf252c235fc58203dfbe4 Mon Sep 17 00:00:00 2001 From: johan Date: Tue, 6 May 2014 22:02:40 +0200 Subject: [PATCH] Fix integration area = 0 for a led Former-commit-id: b365c4c9605a84ea6b7f88043f6f9c70b7122931 --- libsrc/hyperion/ImageToLedsMap.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libsrc/hyperion/ImageToLedsMap.cpp b/libsrc/hyperion/ImageToLedsMap.cpp index 202f22ff..aa309768 100644 --- a/libsrc/hyperion/ImageToLedsMap.cpp +++ b/libsrc/hyperion/ImageToLedsMap.cpp @@ -35,15 +35,16 @@ ImageToLedsMap::ImageToLedsMap( // skip leds without area if ((led.maxX_frac-led.minX_frac) < 1e-6 || (led.maxY_frac-led.minY_frac) < 1e-6) { + mColorsMap.emplace_back(); continue; } - + // Compute the index boundaries for this led unsigned minX_idx = xOffset + unsigned(std::round(actualWidth * led.minX_frac)); unsigned maxX_idx = xOffset + unsigned(std::round(actualWidth * led.maxX_frac)); unsigned minY_idx = yOffset + unsigned(std::round(actualHeight * led.minY_frac)); unsigned maxY_idx = yOffset + unsigned(std::round(actualHeight * led.maxY_frac)); - + // make sure that the area is at least a single led large minX_idx = std::min(minX_idx, xOffset + actualWidth - 1); if (minX_idx == maxX_idx)