bool Intersects (const Region ®ion) const { float xsum = Width() + region.Width(); float ysum = Height() + region.Height(); float xcenter = (region.minX+region.maxX) - (minX+maxX); float ycenter = (region.minY+region.maxY) - (minY+maxY); return std::abs((double)xcenter) < xsum && std::abs((double)ycenter) < ysum; }
void Image::remove(Region& reg) { int minX, minY, maxX, maxY; minX = reg.OffsetX(); minY = reg.OffsetY(); maxX = width < minX + reg.Width() ? width : minX + reg.Width(); maxY = height < minY + reg.Height() ? height : minY + reg.Height(); int i, j; for (j = minY; j < maxY; j++) { for (i = minX; i < maxX; i++) { if (reg(i - minX, j - minY) == 255) { this->operator ()(i, j) = 0; } } } }