public double Area(int x1, int y1, int x2, int y2)
{
if (x2 < x1 || y2 < y1)
{
// TODO: throw?
return(0.0);
}
double area = m_image.Get(x2, y2);
if (x1 > 0)
{
area -= m_image.Get(x1 - 1, y2);
if (y1 > 0)
{
area += m_image.Get(x1 - 1, y1 - 1);
}
}
if (y1 > 0)
{
area -= m_image.Get(x2, y1 - 1);
}
//std::cout << "Area("<<x1<<","<<y1<<","<<x2<<","<<y2<<") = "<<area<<"\n";
return(area);
}