From 0cd16d1f9b0448fbd9ff699220179342da47e138 Mon Sep 17 00:00:00 2001 From: TeChengHung Date: Fri, 26 Jul 2024 09:34:07 +0800 Subject: [PATCH] feat: add one point support for line mark. (#306) Co-authored-by: dan12411 --- lib/src/graffiti/element/polyline.dart | 2 +- lib/src/shape/line.dart | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/src/graffiti/element/polyline.dart b/lib/src/graffiti/element/polyline.dart index fb569e7..f0176ba 100644 --- a/lib/src/graffiti/element/polyline.dart +++ b/lib/src/graffiti/element/polyline.dart @@ -37,7 +37,7 @@ class PolylineElement extends PrimitiveElement { double? rotation, Offset? rotationAxis, String? tag, - }) : assert(points.length >= 2), + }) : assert(points.isNotEmpty), super( style: style, rotation: rotation, diff --git a/lib/src/shape/line.dart b/lib/src/shape/line.dart index 3a1f060..774e5be 100644 --- a/lib/src/shape/line.dart +++ b/lib/src/shape/line.dart @@ -105,11 +105,15 @@ class BasicLineShape extends LineShape { final primitives = []; final represent = group.first; - final style = getPaintStyle( - represent, true, represent.size ?? defaultSize, coord.region, dash); + final strokeWidth = represent.size ?? defaultSize; + final style = + getPaintStyle(represent, true, strokeWidth, coord.region, dash); for (var contour in contours) { - if (smooth) { + if (contour.length == 1) { + primitives.add(CircleElement( + center: contour[0], radius: strokeWidth / 2, style: style)); + } else if (smooth) { primitives.add(SplineElement( start: contour.first, cubics: getCubicControls(contour, false, true),