void FindIntersectionsWithY(double dx, double dy, Point[] triangle, int index, int k)
{
// find intersection with plane y = m_pivot.dY
double t = (pivot.Y - triangle[k].Y) / (dy);
if (t < (1 + EPS) && t > -EPS)
{
// we have an intersection
double xComponent = triangle[k].X + t * (dy);
if (xComponent > pivot.X)
{
if (xComponent <= bounds.Xmax)
{
AddToRegion(index, SE);
AddToRegion(index, NE);
}
}
else if (xComponent >= bounds.Xmin)
{
AddToRegion(index, SW);
AddToRegion(index, NW);
}
}
// find intersection with plane y = m_boundingBox[0].dY
t = (bounds.Ymin - triangle[k].Y) / dy;
if (t < (1 + EPS) && t > -EPS)
{
// we have an intersection
double xComponent = triangle[k].X + t * dx;
if (xComponent <= pivot.X && xComponent >= bounds.Xmin)
{
AddToRegion(index, SW);
}
else if (xComponent >= pivot.X && xComponent <= bounds.Xmax)
{
AddToRegion(index, SE);
}
}
// find intersection with plane y = m_boundingBox[1].dY
t = (bounds.Ymax - triangle[k].Y) / dy;
if (t < (1 + EPS) && t > -EPS)
{
// we have an intersection
double xComponent = triangle[k].X + t * dx;
if (xComponent <= pivot.X && xComponent >= bounds.Xmin)
{
AddToRegion(index, NW);
}
else if (xComponent >= pivot.X && xComponent <= bounds.Xmax)
{
AddToRegion(index, NE);
}
}
}