randomPoint method
Returns a random point within the shape if within is true (default) and
otherwise a point along the edges of the shape.
Do note that within=true also includes the edges.
If isClosed is false, the within value does not make a difference.
Implementation
@override
Vector2 randomPoint({Random? random, bool within = true}) {
  final randomGenerator = random ?? randomFallback;
  if (within) {
    final result = Vector2.zero();
    final min = aabb.min;
    final max = aabb.max;
    while (true) {
      final randomX = min.x + randomGenerator.nextDouble() * (max.x - min.x);
      final randomY = min.y + randomGenerator.nextDouble() * (max.y - min.y);
      result.setValues(randomX, randomY);
      if (containsPoint(result)) {
        return result;
      }
    }
  } else {
    return Polygon.randomPointAlongEdges(_vertices, random: randomGenerator);
  }
}