draw method
Implementation
@override
void draw(
Canvas canvas,
SpoilerContext context,
) {
if (particles.isEmpty) return;
final shape = shapePath;
final shapeMetrics = _shapeMetrics;
for (final particle in particles) {
final visual = buildParticleVisual(
particle,
context,
baseRadius: particle.size * 0.5,
);
if (visual == null) {
continue;
}
_particlePaint.color = visual.color;
final radius = particle.size * 0.5 * visual.scale;
if (shape == null) {
canvas.drawCircle(particle, radius, _particlePaint);
continue;
}
if (shapeMetrics == null || !shapeMetrics.isDrawable) {
continue;
}
drawFittedPath(
canvas,
shape,
center: particle,
targetDiameter: radius * 2.0,
paint: _particlePaint,
metrics: shapeMetrics,
);
}
}