Commit 0d3bbca6 authored by Davis King's avatar Davis King

Fixed a problem with draw_line where it didn't always redraw the line properly.

--HG--
extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%402694
parent ec9fb516
...@@ -107,15 +107,19 @@ namespace dlib ...@@ -107,15 +107,19 @@ namespace dlib
y = static_cast<long>(dy); y = static_cast<long>(dy);
x = static_cast<long>(dx); x = static_cast<long>(dx);
if (y < valid_area.top() || y+1 > valid_area.bottom() )
continue;
if (y >= valid_area.top() && y <= valid_area.bottom())
{
alpha_pixel.alpha = static_cast<unsigned char>((1.0-(dy-y))*max_alpha); alpha_pixel.alpha = static_cast<unsigned char>((1.0-(dy-y))*max_alpha);
assign_pixel(c[y-c.top()][x-c.left()], alpha_pixel); assign_pixel(c[y-c.top()][x-c.left()], alpha_pixel);
}
if (y+1 >= valid_area.top() && y+1 <= valid_area.bottom())
{
alpha_pixel.alpha = static_cast<unsigned char>((dy-y)*max_alpha); alpha_pixel.alpha = static_cast<unsigned char>((dy-y)*max_alpha);
assign_pixel(c[y+1-c.top()][x-c.left()], alpha_pixel); assign_pixel(c[y+1-c.top()][x-c.left()], alpha_pixel);
} }
} }
}
else else
{ {
const double slope = ((double)run)/rise; const double slope = ((double)run)/rise;
...@@ -145,16 +149,19 @@ namespace dlib ...@@ -145,16 +149,19 @@ namespace dlib
y = static_cast<long>(dy); y = static_cast<long>(dy);
x = static_cast<long>(dx); x = static_cast<long>(dx);
if (x < valid_area.left() || x+1 > valid_area.right() ) if (x >= valid_area.left() && x <= valid_area.right())
continue; {
alpha_pixel.alpha = static_cast<unsigned char>((1.0-(dx-x))*max_alpha); alpha_pixel.alpha = static_cast<unsigned char>((1.0-(dx-x))*max_alpha);
assign_pixel(c[y-c.top()][x-c.left()], alpha_pixel); assign_pixel(c[y-c.top()][x-c.left()], alpha_pixel);
}
if (x+1 >= valid_area.left() && x+1 <= valid_area.right())
{
alpha_pixel.alpha = static_cast<unsigned char>((dx-x)*max_alpha); alpha_pixel.alpha = static_cast<unsigned char>((dx-x)*max_alpha);
assign_pixel(c[y-c.top()][x+1-c.left()], alpha_pixel); assign_pixel(c[y-c.top()][x+1-c.left()], alpha_pixel);
} }
} }
} }
}
} }
inline void draw_line ( inline void draw_line (
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment