drawPaths method
void
drawPaths({})
Implementation
void drawPaths({
required final TouchyCanvas touchyCanvas,
required final Canvas plainCanvas,
required final Size size,
required final bool showIndex,
required final Iterable<Drawable> drawables,
required final Matrix4 fittingMatrix,
final double? textPaddingLeft,
final double? textPaddingTop,
}) {
for (final element in drawables) {
final id = element.id;
if (id == null) {
continue;
}
final path = (element as DrawableShape).path;
final Paint paint = Paint();
final isExistInList = models.any((final e) => e.id == id);
if (isExistInList) {
paint.color =
models.firstWhereOrNull((final e) => e.id == id)?.selectedColor ??
selectedColor;
} else {
paint.color =
models.firstWhereOrNull((final e) => e.id == id)?.unSelectedColor ??
unSelectedColor;
}
touchyCanvas.drawPath(
element.path.transform(fittingMatrix.storage),
paint,
onTapDown: (final _) {
if (isExistInList) {
onTap.call(id, false);
} else {
onTap.call(id, true);
}
},
);
plainCanvas.drawPath(
element.path.transform(fittingMatrix.storage),
Paint()
..color = borderColor
..strokeWidth = borderWith
..style = PaintingStyle.stroke,
);
if (showIndex) {
drawTextOnPath(
plainCanvas,
models.firstWhereOrNull((final e) => e.id == id)?.char ?? id,
size,
path,
textPaddingLeft,
textPaddingTop,
textStyle: style,
fittingMatrix: fittingMatrix,
);
}
}
}