Mercurial > hg > orthanc
comparison OrthancFramework/Sources/Images/ImageProcessing.cpp @ 4873:d68dbe6590ce
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 17 Jan 2022 21:52:04 +0100 |
parents | b1556cefa5c6 |
children | bee6da5155dc |
comparison
equal
deleted
inserted
replaced
4872:b1556cefa5c6 | 4873:d68dbe6590ce |
---|---|
2093 { | 2093 { |
2094 rampEnd = activeEdges[0].GetUpperY() + 1; | 2094 rampEnd = activeEdges[0].GetUpperY() + 1; |
2095 | 2095 |
2096 for (size_t i = 1; i < activeEdges.size(); i++) | 2096 for (size_t i = 1; i < activeEdges.size(); i++) |
2097 { | 2097 { |
2098 rampEnd = std::max(rampEnd, activeEdges[0].GetUpperY() + 1); | 2098 rampEnd = std::max(rampEnd, activeEdges[i].GetUpperY() + 1); |
2099 } | 2099 } |
2100 } | 2100 } |
2101 else | 2101 else |
2102 { | 2102 { |
2103 rampEnd = next->first; | 2103 rampEnd = next->first; |
2119 | 2119 |
2120 activeEdges.swap(stillActive); | 2120 activeEdges.swap(stillActive); |
2121 std::sort(activeEdges.begin(), activeEdges.end()); | 2121 std::sort(activeEdges.begin(), activeEdges.end()); |
2122 | 2122 |
2123 // cf. "fillScan()" in textbook | 2123 // cf. "fillScan()" in textbook |
2124 if (y >= 0) | 2124 for (size_t k = 0; k + 1 < activeEdges.size(); k += 2) |
2125 { | 2125 { |
2126 for (size_t k = 0; k + 1 < activeEdges.size(); k += 2) | 2126 int a = activeEdges[k].GetExitX(); |
2127 { | 2127 int b = activeEdges[k + 1].GetEnterX(); |
2128 int a = activeEdges[k].GetExitX(); | 2128 filler.Fill(y, std::min(a, b), std::max(a, b)); |
2129 int b = activeEdges[k + 1].GetEnterX(); | |
2130 filler.Fill(y, std::min(a, b), std::max(a, b)); | |
2131 } | |
2132 } | 2129 } |
2133 | 2130 |
2134 // cf. "updateActiveList()" in textbook | 2131 // cf. "updateActiveList()" in textbook |
2135 for (size_t k = 0; k < activeEdges.size(); k++) | 2132 for (size_t k = 0; k < activeEdges.size(); k++) |
2136 { | 2133 { |