public StarNode(int x, int y, int width, int height)
{
X = x;
Y = y;
Width = width;
Height = height;
if (width == 1 && height == 1)
{
//End of branch
return;
}
else
{
nodes = new List<StarNode>();
if (width > 1 && height == 1)
{
nodes.Add(new StarNode(x, y, width / 2, height));
nodes.Add(new StarNode(x + (width / 2), y, width - (width / 2), height));
}
else if (height > 1 && width == 1)
{
nodes.Add(new StarNode(x, y, width, height / 2));
nodes.Add(new StarNode(x, y + (height / 2), width, height - (height / 2)));
}
else
{
nodes.Add(new StarNode(x, y, width / 2, height / 2));
nodes.Add(new StarNode(x + (width / 2), y, width - (width / 2), height / 2));
nodes.Add(new StarNode(x, y + (height / 2), width / 2, height - (height / 2)));
nodes.Add(new StarNode(x + (width / 2), y + (height / 2), width - (width / 2), height - (height / 2)));
}
}
}