effectReach function

double effectReach(
  1. Effect effect, {
  2. double spread = 0,
})

How far past the silhouette effect can paint, grown by spread: a shadow as far as it's moved, grown and blurred, a layer blur as far as its blur.

Implementation

double effectReach(Effect effect, {double spread = 0}) => switch (effect) {
  ShadowEffect(:final position, :final blur) => position.x.abs() + position.y.abs() + spread.abs() + blur * 1.5,
  LayerBlur(:final maxBlur) => maxBlur * 1.5,
};