sdfRadiusFor function

double sdfRadiusFor(
  1. GlassShape shape,
  2. Size size, {
  3. double concentric = 16,
})

The corner radius the shader should use for its SDF, given a resolved size.

Capsules and circles have no fixed radius, so they resolve against the shorter side at paint time.

Implementation

double sdfRadiusFor(GlassShape shape, Size size, {double concentric = 16}) {
  final map = shape.toMap();
  return switch (map['kind']) {
    'capsule' => size.shortestSide / 2,
    'circle' => size.shortestSide / 2,
    'concentric' => concentric,
    _ => (map['radius'] as num?)?.toDouble() ?? concentric,
  };
}