diff --git a/packages/element/src/Shape.ts b/packages/element/src/Shape.ts index 16da46381a..f634fa5c3b 100644 --- a/packages/element/src/Shape.ts +++ b/packages/element/src/Shape.ts @@ -20,8 +20,6 @@ import { canChangeRoundness } from "./comparisons"; import { generateFreeDrawShape } from "./renderElement"; import { getArrowheadPoints, getDiamondPoints } from "./bounds"; -import { getFreedrawStroke } from "./freedraw"; - import type { ExcalidrawElement, NonDeletedExcalidrawElement, @@ -514,22 +512,21 @@ export const _generateElementShape = ( generateFreeDrawShape(element); if (isPathALoop(element.points)) { - let points; - if (element.pressureSensitivity === null) { - // legacy freedraw - points = simplify(element.points as LocalPoint[], 0.75); - } else { - // new freedraw - const stroke = getFreedrawStroke(element); - points = stroke - .slice(0, Math.floor(stroke.length / 2)) - .map((p) => pointFrom(p[0], p[1])); - } + const points = + element.pressureSensitivity === null + ? simplify(element.points as LocalPoint[], 0.75) + : simplify(element.points as LocalPoint[], 1.5); - shape = generator.curve(points, { - ...generateRoughOptions(element), - stroke: "none", - }); + shape = + element.pressureSensitivity === null + ? generator.curve(points, { + ...generateRoughOptions(element), + stroke: "none", + }) + : generator.polygon(points, { + ...generateRoughOptions(element), + stroke: "none", + }); } else { shape = null; } diff --git a/packages/excalidraw/tests/__snapshots__/history.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/history.test.tsx.snap index be6cc48a8c..dd02103fb9 100644 --- a/packages/excalidraw/tests/__snapshots__/history.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/history.test.tsx.snap @@ -8943,15 +8943,10 @@ exports[`history > multiplayer undo/redo > should not let remote changes to inte ], ], "pressureSensitivity": 1, - "pressures": [ - 0, - 0, - 0, - 0, - ], + "pressures": [], "roughness": 1, "roundness": null, - "simulatePressure": false, + "simulatePressure": true, "strokeColor": "#1e1e1e", "strokeStyle": "solid", "strokeWidth": 2, @@ -9052,15 +9047,10 @@ exports[`history > multiplayer undo/redo > should not let remote changes to inte ], ], "pressureSensitivity": 1, - "pressures": [ - 0, - 0, - 0, - 0, - ], + "pressures": [], "roughness": 1, "roundness": null, - "simulatePressure": false, + "simulatePressure": true, "strokeColor": "#1e1e1e", "strokeStyle": "solid", "strokeWidth": 2, @@ -12103,14 +12093,10 @@ exports[`history > singleplayer undo/redo > should create entry when selecting f ], ], "pressureSensitivity": 1, - "pressures": [ - 0, - 0, - 0, - ], + "pressures": [], "roughness": 1, "roundness": null, - "simulatePressure": false, + "simulatePressure": true, "strokeColor": "#1e1e1e", "strokeStyle": "solid", "strokeWidth": 2, @@ -12158,14 +12144,10 @@ exports[`history > singleplayer undo/redo > should create entry when selecting f ], ], "pressureSensitivity": 1, - "pressures": [ - 0, - 0, - 0, - ], + "pressures": [], "roughness": 1, "roundness": null, - "simulatePressure": false, + "simulatePressure": true, "strokeColor": "#e03131", "strokeStyle": "solid", "strokeWidth": 2, @@ -12302,14 +12284,10 @@ exports[`history > singleplayer undo/redo > should create entry when selecting f ], ], "pressureSensitivity": 1, - "pressures": [ - 0, - 0, - 0, - ], + "pressures": [], "roughness": 1, "roundness": null, - "simulatePressure": false, + "simulatePressure": true, "strokeColor": "#e03131", "strokeStyle": "solid", "strokeWidth": 2, diff --git a/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap b/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap index b179176fb5..3fbebddd7a 100644 --- a/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap +++ b/packages/excalidraw/tests/__snapshots__/regressionTests.test.tsx.snap @@ -6905,14 +6905,10 @@ exports[`regression tests > draw every type of shape > [end of test] undo stack ], ], "pressureSensitivity": 1, - "pressures": [ - 0, - 0, - 0, - ], + "pressures": [], "roughness": 1, "roundness": null, - "simulatePressure": false, + "simulatePressure": true, "strokeColor": "#1e1e1e", "strokeStyle": "solid", "strokeWidth": 2, @@ -9184,14 +9180,10 @@ exports[`regression tests > key 7 selects freedraw tool > [end of test] undo sta ], ], "pressureSensitivity": 1, - "pressures": [ - 0, - 0, - 0, - ], + "pressures": [], "roughness": 1, "roundness": null, - "simulatePressure": false, + "simulatePressure": true, "strokeColor": "#1e1e1e", "strokeStyle": "solid", "strokeWidth": 2, @@ -10192,14 +10184,10 @@ exports[`regression tests > key p selects freedraw tool > [end of test] undo sta ], ], "pressureSensitivity": 1, - "pressures": [ - 0, - 0, - 0, - ], + "pressures": [], "roughness": 1, "roundness": null, - "simulatePressure": false, + "simulatePressure": true, "strokeColor": "#1e1e1e", "strokeStyle": "solid", "strokeWidth": 2,