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 {