From cdb7349111be7d828c7973017b4f06c5480aeede Mon Sep 17 00:00:00 2001 From: Mark Tolmacs Date: Fri, 2 May 2025 18:09:06 +0200 Subject: [PATCH] Remove commented out code and make it work for sharp rectanguloid --- .../excalidraw/renderer/interactiveScene.ts | 73 ++----------------- 1 file changed, 6 insertions(+), 67 deletions(-) diff --git a/packages/excalidraw/renderer/interactiveScene.ts b/packages/excalidraw/renderer/interactiveScene.ts index 2d5eb4fac0..36e93fd4c0 100644 --- a/packages/excalidraw/renderer/interactiveScene.ts +++ b/packages/excalidraw/renderer/interactiveScene.ts @@ -181,10 +181,13 @@ const drawHighlightForRectWithRotation = ( context.translate(x, y); context.rotate(element.angle); - const radius = getCornerRadius( + let radius = getCornerRadius( Math.min(element.width, element.height), element, ); + if (radius === 0) { + radius = 0.01; + } context.beginPath(); @@ -228,70 +231,6 @@ const drawHighlightForRectWithRotation = ( drawCatmullRomQuadraticApprox(context, topLeftApprox); } - // context.moveTo(-padding + radius, -padding); - // context.lineTo(element.width + padding - radius, -padding); - // context.quadraticCurveTo( - // element.width + padding, - // -padding, - // element.width + padding, - // -padding + radius, - // ); - // context.lineTo(element.width + padding, element.height + padding - radius); - // context.quadraticCurveTo( - // element.width + padding, - // element.height + padding, - // element.width + padding - radius, - // element.height + padding, - // ); - // context.lineTo(-padding + radius, element.height + padding); - // context.quadraticCurveTo( - // -padding, - // element.height + padding, - // -padding, - // element.height + padding - radius, - // ); - // context.lineTo(-padding, -padding + radius); - // context.quadraticCurveTo(-padding, -padding, -padding + radius, -padding); - - // context.moveTo(-FIXED_BINDING_DISTANCE + radius, -FIXED_BINDING_DISTANCE); - // context.quadraticCurveTo( - // -FIXED_BINDING_DISTANCE, - // -FIXED_BINDING_DISTANCE, - // -FIXED_BINDING_DISTANCE, - // -FIXED_BINDING_DISTANCE + radius, - // ); - // context.lineTo( - // -FIXED_BINDING_DISTANCE, - // element.height + FIXED_BINDING_DISTANCE - radius, - // ); - // context.quadraticCurveTo( - // -FIXED_BINDING_DISTANCE, - // element.height + FIXED_BINDING_DISTANCE, - // -FIXED_BINDING_DISTANCE + radius, - // element.height + FIXED_BINDING_DISTANCE, - // ); - // context.lineTo( - // element.width + FIXED_BINDING_DISTANCE - radius, - // element.height + FIXED_BINDING_DISTANCE, - // ); - // context.quadraticCurveTo( - // element.width + FIXED_BINDING_DISTANCE, - // element.height + FIXED_BINDING_DISTANCE, - // element.width + FIXED_BINDING_DISTANCE, - // element.height + FIXED_BINDING_DISTANCE - radius, - // ); - // context.lineTo( - // element.width + FIXED_BINDING_DISTANCE, - // -FIXED_BINDING_DISTANCE + radius, - // ); - // context.quadraticCurveTo( - // element.width + FIXED_BINDING_DISTANCE, - // -FIXED_BINDING_DISTANCE, - // element.width + FIXED_BINDING_DISTANCE - radius, - // -FIXED_BINDING_DISTANCE, - // ); - // context.lineTo(-FIXED_BINDING_DISTANCE + radius, -FIXED_BINDING_DISTANCE); - { const topLeftApprox = offsetQuadraticBezier( pointFrom(0 + radius, 0), @@ -368,7 +307,7 @@ const strokeRectWithRotation = ( context.restore(); }; -const strokeDiamondWithRotation = ( +const drawHighlightForDiamondWithRotation = ( context: CanvasRenderingContext2D, padding: number, element: ExcalidrawDiamondElement, @@ -567,7 +506,7 @@ const renderBindingHighlightForBindableElement = ( drawHighlightForRectWithRotation(context, element, padding); break; case "diamond": - strokeDiamondWithRotation(context, padding, element); + drawHighlightForDiamondWithRotation(context, padding, element); break; case "ellipse": strokeEllipseWithRotation(