Вы просто создаете несколько методов с разными аргументами.
Например:
public class MyGraphics
{
public bool Draw(Vector2 position, bool big = false)
{
}
public void Draw(Line2 line)
{
}
public void Draw(Triangle2 triangle)
{
}
public void Draw(Polygon2 polygon)
{
}
public void Draw(Line2[] edges)
{
}
}
для использования позже как
{
MyGraphics g = ...
Line2 line = ...
Triangle2 trig = ...
g.Draw(line); // calls `.Draw(Line2)`
g.Draw(trig); // calls `.Draw(Triangle2)`
}