|
@@ -362,16 +362,16 @@ const highlightPoint = (
|
|
|
point: Point,
|
|
|
context: CanvasRenderingContext2D,
|
|
|
appState: InteractiveCanvasAppState,
|
|
|
+ renderAsSquare = false,
|
|
|
) => {
|
|
|
context.fillStyle = "rgba(105, 101, 219, 0.4)";
|
|
|
+ const radius = LinearElementEditor.POINT_HANDLE_SIZE / appState.zoom.value;
|
|
|
|
|
|
- fillCircle(
|
|
|
- context,
|
|
|
- point[0],
|
|
|
- point[1],
|
|
|
- LinearElementEditor.POINT_HANDLE_SIZE / appState.zoom.value,
|
|
|
- false,
|
|
|
- );
|
|
|
+ if (renderAsSquare) {
|
|
|
+ fillSquare(context, point[0], point[1], radius * 2, false);
|
|
|
+ } else {
|
|
|
+ fillCircle(context, point[0], point[1], radius, false);
|
|
|
+ }
|
|
|
};
|
|
|
const renderLinearElementPointHighlight = (
|
|
|
context: CanvasRenderingContext2D,
|
|
@@ -393,10 +393,15 @@ const renderLinearElementPointHighlight = (
|
|
|
element,
|
|
|
hoverPointIndex,
|
|
|
);
|
|
|
+ const segmented = element.roundness
|
|
|
+ ? element.segmentSplitIndices
|
|
|
+ ? element.segmentSplitIndices.includes(hoverPointIndex)
|
|
|
+ : false
|
|
|
+ : false;
|
|
|
+
|
|
|
context.save();
|
|
|
context.translate(appState.scrollX, appState.scrollY);
|
|
|
-
|
|
|
- highlightPoint(point, context, appState);
|
|
|
+ highlightPoint(point, context, appState, segmented);
|
|
|
context.restore();
|
|
|
};
|
|
|
|