|
@@ -64,8 +64,9 @@ class Spline extends AreaItemAbstract with AutoSnapMixin {
|
|
|
f.innerPoints.last = args;
|
|
|
}
|
|
|
doCalculate();
|
|
|
-
|
|
|
- f.isSnapped = checkAutoSnap(args);
|
|
|
+ if (checkAutoSnap(args)) {
|
|
|
+ f.innerPoints.removeLast();
|
|
|
+ }
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
@@ -99,18 +100,20 @@ class SplineFeature extends AreaItemFeatureAbstract {
|
|
|
void paint(Canvas canvas, Size size) {
|
|
|
if (innerPoints.isEmpty) return;
|
|
|
final paintPoints = innerPoints;
|
|
|
- if (isSnapped) {
|
|
|
- paintPoints.removeLast();
|
|
|
- }
|
|
|
+
|
|
|
drawId(canvas, size);
|
|
|
|
|
|
final startOffset = convert2ViewPoint(size, startPoint).toOffset();
|
|
|
|
|
|
- if (innerPoints.length == 1) {
|
|
|
+ if (paintPoints.length == 1) {
|
|
|
+ drawVertex(canvas, startOffset, true);
|
|
|
+ return;
|
|
|
+ } else if (paintPoints.length == 2) {
|
|
|
+ final endOffset = convert2ViewPoint(size, endPoint).toOffset();
|
|
|
drawVertex(canvas, startOffset, true);
|
|
|
+ drawVertex(canvas, endOffset, true);
|
|
|
+ canvas.drawDashLine(startOffset, endOffset, 1, 10, paintPan);
|
|
|
return;
|
|
|
- } else {
|
|
|
- drawVertex(canvas, startOffset);
|
|
|
}
|
|
|
|
|
|
/// 全部innerPoints点集转为Offset集绘制
|