Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(): expose sendVectorToPlane #9479

Merged
merged 6 commits into from
Nov 6, 2023
Merged

chore(): expose sendVectorToPlane #9479

merged 6 commits into from
Nov 6, 2023

Conversation

ShaMan123
Copy link
Contributor

Motivation

send plane utils are proving to be valuble
send a vector is also very common and completes the util

Description

expose sendVectorToPlane
migrate send plane tests to jest, removing the sendPointToPlane old test that was unnecessary

Changes

Gist

In Action

Copy link
Contributor

github-actions bot commented Nov 4, 2023

Build Stats

file / KB (diff) bundled minified
fabric 909.670 (+0.055) 304.686 (+0.180)

Copy link
Contributor Author

@ShaMan123 ShaMan123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is also a v6 PR but can be merged after 6.0

Comment on lines +19 to +32
describe('Plane Change', () => {
test('calcPlaneChangeMatrix', () => {
const m1: TMat2D = [1, 2, 3, 4, 5, 6];
const s: TMat2D = [2, 0, 0, 0.5, 0, 0];
expect(calcPlaneChangeMatrix()).toEqual(iMatrix);
expect(calcPlaneChangeMatrix(undefined, m1)).toEqual(invertTransform(m1));
expect(calcPlaneChangeMatrix(iMatrix, m1)).toEqual(invertTransform(m1));
expect(calcPlaneChangeMatrix(m1, undefined)).toEqual(m1);
expect(calcPlaneChangeMatrix(m1, iMatrix)).toEqual(m1);
expect(calcPlaneChangeMatrix(m1, m1)).toEqual(iMatrix);
expect(calcPlaneChangeMatrix(m1, s)).toEqual(
multiplyTransformMatrices(invertTransform(s), m1)
);
});
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

migrate from qunit

Comment on lines +34 to +56
test('sendPointToPlane', () => {
const s: TMat2D = [2, 0, 0, 0.5, 50, 50];
const point = new Point(1, 1);
expect(sendPointToPlane(point, s)).toEqual({ x: 52, y: 50.5 });
expect(sendPointToPlane(point, undefined, s)).toEqual({ x: -24.5, y: -98 });
expect(
sendPointToPlane(point, createRotateMatrix({ angle: 90 }), s)
).toEqual({ x: -25.5, y: -98 });
expect(sendPointToPlane(point, s, s)).toEqual(point);
expect(sendPointToPlane(point)).toEqual(point);
});

test('sendVectorToPlane', () => {
const s: TMat2D = [2, 0, 0, 0.5, 50, 50];
const point = new Point(1, 1);
expect(sendVectorToPlane(point, s)).toEqual({ x: 2, y: 0.5 });
expect(sendVectorToPlane(point, undefined, s)).toEqual({ x: 0.5, y: 2 });
expect(
sendVectorToPlane(point, createRotateMatrix({ angle: 90 }), s)
).toEqual({ x: -0.5, y: 2 });
expect(sendVectorToPlane(point, s, s)).toEqual(point);
expect(sendVectorToPlane(point)).toEqual(point);
});
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new test

Comment on lines +58 to +91
test('sendObjectToPlane', () => {
const m: TMat2D = [6, Math.SQRT1_2, 0, 3, 2, 1];
const m1: TMat2D = [3, 0, 0, 2, 10, 4];
const m2: TMat2D = [1, Math.SQRT1_2, Math.SQRT1_2, 4, 5, 6];
const group = new Group();
const group2 = new Group();
const obj = new FabricObject();

jest.spyOn(group, 'isOnACache').mockReturnValue(false);

applyTransformToObject(obj, m);
applyTransformToObject(group, m1);
applyTransformToObject(group2, m2);

obj.group = group;
const actual = sendObjectToPlane(
obj,
group.calcTransformMatrix(),
group2.calcTransformMatrix()
);
expect(actual).toEqualRoundedMatrix(
multiplyTransformMatrices(
invertTransform(group2.calcTransformMatrix()),
group.calcTransformMatrix()
)
);
expect(obj.calcOwnMatrix()).toEqualRoundedMatrix(
multiplyTransformMatrices(actual, m)
);

obj.group = group2;
expect(obj.calcTransformMatrix()).toEqualRoundedMatrix(
multiplyTransformMatrices(
multiplyTransformMatrices(group2.calcTransformMatrix(), actual),
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

migrated from qunit

asturur
asturur previously approved these changes Nov 6, 2023
Copy link
Contributor

github-actions bot commented Nov 6, 2023

Coverage after merging sendVectorToPlane into master will be

82.80%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
index.node.ts7.69%100%0%14.29%17, 20, 23, 35, 38, 41
src
   ClassRegistry.ts100%100%100%100%
   Collection.ts94.71%94.64%86.67%97.09%101, 104, 207–208, 233–234
   CommonMethods.ts96.55%87.50%100%100%9
   Intersection.ts100%100%100%100%
   Observable.ts87.76%85.29%87.50%89.58%134–135, 160–161, 32–33, 41, 50, 78, 89
   Point.ts100%100%100%100%
   Shadow.ts98.36%95.65%100%100%178
   cache.ts97.06%90%100%100%57
   config.ts75%66.67%66.67%82.76%130, 138, 138, 138, 138, 138–140, 151–153
   constants.ts100%100%100%100%
src/Pattern
   Pattern.ts92.31%91.89%90%93.55%119, 130, 139, 32, 95
src/brushes
   BaseBrush.ts100%100%100%100%
   CircleBrush.ts0%0%0%0%108, 108, 108, 110, 112, 114–116, 118–121, 128–129, 13, 136, 138, 23–24, 32–36, 40–44, 51–54, 62–66, 68, 76, 76, 76, 76, 76–77, 79, 79, 79–82, 84, 92–93, 95, 97–99
   PatternBrush.ts97.06%87.50%100%100%21
   PencilBrush.ts91.06%82.35%100%93.81%122–123, 152, 152–154, 176, 176, 276, 280, 285–286, 68–69, 84–85
   SprayBrush.ts0%0%0%0%107, 107, 107, 107, 107–108, 110–111, 118–119, 121, 123–127, 136, 140–141, 141, 149, 149, 149–152, 154–157, 161–162, 164, 166–169, 17, 172, 179, 18, 180, 182, 184–185, 187, 194–195, 197–198, 20, 201, 201, 208, 208, 21, 212, 22, 22, 22–24, 28, 32, 39, 46, 53, 60, 67, 84–86, 94–96, 98–99
src/canvas
   Canvas.ts78.99%76.67%83.05%80.04%1007, 1007, 1007–1009, 1009, 1009, 1016–1017, 1025–1026, 1026, 1026–1027, 1033, 1035, 1063–1065, 1068–1069, 1073–1074, 1197–1199, 1202–1203, 1276, 1393, 1515, 159, 184, 291–292, 295–299, 304, 327–328, 333–338, 358, 358, 358–359, 359, 359–360, 368, 373–374, 374, 374–375, 377, 386, 392–393, 393, 393, 43, 436, 444, 448, 448, 448–449, 451, 47, 533–534, 534, 534–535, 541, 541, 541–543, 563, 565, 565, 565–566, 566, 566, 569, 569, 569–570, 573, 582–583, 585–586, 588, 588–589, 591–592, 604–605, 605, 605–606, 608–613, 619, 626, 663, 663, 663, 665, 667–672, 678, 684, 684, 684–685, 687, 690, 695, 708, 736, 736, 797–798, 798, 798, 798, 798, 798, 801–802, 805, 805–807, 810–811, 887, 899, 906, 906, 906, 919, 952, 973–974, 990–991, 991, 991–993, 996–997, 997, 997, 999
   CanvasOptions.ts100%100%100%100%
   SelectableCanvas.ts93.21%91.60%94.44%94.22%1013, 1021, 1140, 1142, 1144–1145, 302, 472–473, 475–476, 476, 476, 525–526, 587–588, 601, 641–643, 675, 680–681, 708–709, 769–770, 775–779, 781, 940, 940–941, 944, 964, 964
   StaticCanvas.ts96.78%93.09%100%98.53%1031, 1041, 1093–1094, 1097, 1132–1133, 1209, 1218, 1218, 1222, 1222, 1269–1270, 187–188, 204, 571, 583–584, 914–915, 915, 915–916
   StaticCanvasOptions.ts100%100%100%100%
   TextEditingManager.ts84.31%71.43%91.67%88%17–18, 18, 18–19, 19, 19
src/canvas/DOMManagers
   CanvasDOMManager.ts95.52%70%100%100%21–22, 29
   StaticCanvasDOMManager.ts97.50%88.89%100%100%33
   util.ts86.67%80.56%83.33%93.94%14, 26, 63–64, 67, 67, 74, 93–94
src/color
   Color.ts94.96%91.67%96.30%96.05%233, 258–259, 267–268, 48
   color_map.ts100%100%100%100%
   constants.ts100%100%100%100%
   util.ts85.71%76.92%100%89.74%55–56, 56, 58, 58, 58–59, 61–62, 89
src/controls
   Control.ts94.44%93.10%91.67%96.77%183, 249, 354
   changeWidth.ts100%100%100%100%
   commonControls.ts100%100%100%100%
   controlRendering.ts81.63%78%100%84.78%106, 111, 121, 121, 45, 50, 61, 61, 65–72, 81–82
   drag.ts100%100%100%100%
   fireEvent.ts88.89%75%100%100%13
   polyControl.ts7.25%0%0%13.51%103, 108, 120, 120, 120, 120, 120, 122–125, 125, 128, 135, 17, 25–29, 29, 29, 29, 29, 29, 29, 29, 50–56, 56, 56, 56, 56, 58, 63–64, 66, 76, 82–84, 84, 86, 89–90, 90, 90, 90, 90, 92, 97
   rotate.ts19.57%12.50%50%21.43%41, 45, 51, 51, 51–52, 55–57, 59, 59, 59, 59, 59–61, 61, 61–63, 65, 65, 65–67, 67, 67–68, 73, 73, 73–74, 76, 78, 80–81
   scale.ts93.57%92.94%100%93.67%129–130, 132–134, 148–149, 181–183, 42
   scaleSkew.ts78.79%64.29%100%85.71%27, 29, 29, 29, 31, 33, 35
   skew.ts91.03%79.31%100%97.67%131–132, 163–164, 171, 177, 179
   util.ts100%100%100%100%
   

@asturur asturur merged commit 0788094 into master Nov 6, 2023
22 checks passed
@asturur asturur deleted the sendVectorToPlane branch November 6, 2023 13:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants