From 7f9906bbccf378d922f2e4b57894256d9962e149 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Wed, 23 Oct 2019 11:24:59 +0300 Subject: [PATCH] Fix for seam aloowance angle type By first edge symmetry. --HG-- branch : develop --- src/app/share/collection/bugs/Issue_#937a.val | 221 +++++++++ src/app/share/collection/bugs/Issue_#937a.vit | 38 ++ src/libs/vlayout/vabstractpiece.cpp | 1 + .../share/Issue_923_test3_3/output.json | 4 +- .../share/Issue_937_case_1/output.json | 4 +- .../share/Issue_937_case_1a/input.json | 437 ++++++++++++++++++ .../share/Issue_937_case_1a/output.json | 289 ++++++++++++ src/test/ValentinaTest/share/test_data.qrc | 2 + src/test/ValentinaTest/tst_vabstractpiece.cpp | 6 + 9 files changed, 998 insertions(+), 4 deletions(-) create mode 100644 src/app/share/collection/bugs/Issue_#937a.val create mode 100644 src/app/share/collection/bugs/Issue_#937a.vit create mode 100644 src/test/ValentinaTest/share/Issue_937_case_1a/input.json create mode 100644 src/test/ValentinaTest/share/Issue_937_case_1a/output.json diff --git a/src/app/share/collection/bugs/Issue_#937a.val b/src/app/share/collection/bugs/Issue_#937a.val new file mode 100644 index 000000000..d9a24ca69 --- /dev/null +++ b/src/app/share/collection/bugs/Issue_#937a.val @@ -0,0 +1,221 @@ + + + + 0.8.5 + cm + + + Issue_#937a.vit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
diff --git a/src/app/share/collection/bugs/Issue_#937a.vit b/src/app/share/collection/bugs/Issue_#937a.vit new file mode 100644 index 000000000..4160623cf --- /dev/null +++ b/src/app/share/collection/bugs/Issue_#937a.vit @@ -0,0 +1,38 @@ + + + + 0.5.0 + false + + cm + 998 + + + 1800-01-01 + unknown + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/libs/vlayout/vabstractpiece.cpp b/src/libs/vlayout/vabstractpiece.cpp index 3b84a24c5..a05576686 100644 --- a/src/libs/vlayout/vabstractpiece.cpp +++ b/src/libs/vlayout/vabstractpiece.cpp @@ -351,6 +351,7 @@ QVector AngleByFirstSymmetry(const QVector &points, QPointF p1 { QLineF allowance(px2, p2); allowance.setAngle(allowance.angle() + 90); + pointsIntr.append(px2); pointsIntr.append(allowance.p2()); pointsIntr.append(bigLine2.p1()); } diff --git a/src/test/ValentinaTest/share/Issue_923_test3_3/output.json b/src/test/ValentinaTest/share/Issue_923_test3_3/output.json index fc70eac82..bcc40177b 100644 --- a/src/test/ValentinaTest/share/Issue_923_test3_3/output.json +++ b/src/test/ValentinaTest/share/Issue_923_test3_3/output.json @@ -7,8 +7,8 @@ }, { "type": "QPointF", - "x": -915.0435068700746, - "y": 216.89494557577805 + "x": -925.4690854411813, + "y": 240.35249736076804 }, { "type": "QPointF", diff --git a/src/test/ValentinaTest/share/Issue_937_case_1/output.json b/src/test/ValentinaTest/share/Issue_937_case_1/output.json index 68342b2f0..d9ba925a0 100644 --- a/src/test/ValentinaTest/share/Issue_937_case_1/output.json +++ b/src/test/ValentinaTest/share/Issue_937_case_1/output.json @@ -27,8 +27,8 @@ }, { "type": "QPointF", - "x": 107.07002512164966, - "y": 604.2565206153395 + "x": 110.60240069942009, + "y": 621.4908395398686 }, { "type": "QPointF", diff --git a/src/test/ValentinaTest/share/Issue_937_case_1a/input.json b/src/test/ValentinaTest/share/Issue_937_case_1a/input.json new file mode 100644 index 000000000..fea790632 --- /dev/null +++ b/src/test/ValentinaTest/share/Issue_937_case_1a/input.json @@ -0,0 +1,437 @@ +{ + "vector": [ + { + "angle": 2, + "saBefore": 75.59055118110237, + "type": "VSAPoint", + "x": 1848.01082181109, + "y": 1030.8393070866143 + }, + { + "type": "VSAPoint", + "x": 1671.2893035827765, + "y": 327.84718110236224 + }, + { + "type": "VSAPoint", + "x": 1671.2893035827765, + "y": 327.84718110236224 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1688.372140240957, + "y": 322.94413905734257 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1716.5354846574178, + "y": 313.5103413076031 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1738.904789013785, + "y": 304.43175735278106 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1757.0453362209319, + "y": 295.60668740016325 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1764.9406087705745, + "y": 291.26164583583846 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1774.5053457725976, + "y": 285.8153073866176 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1796.6724196528355, + "y": 272.2726178840532 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1819.5866284327656, + "y": 257.02170154184256 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1840.0279888326772, + "y": 241.6978786769865 + }, + { + "type": "VSAPoint", + "x": 1848.0108218110677, + "y": 234.6188346456649 + }, + { + "type": "VSAPoint", + "x": 1848.0108218110677, + "y": 234.6188346456649 + }, + { + "type": "VSAPoint", + "x": 1848.0108218110677, + "y": 234.6188346456649 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1858.8534932235239, + "y": 222.25357797315382 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1880.2477175428162, + "y": 195.58641618946143 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1901.1990774093565, + "y": 166.87732721497812 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1921.6036592164696, + "y": 136.43970097816313 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1941.35754935748, + "y": 104.58692740747574 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1960.3568342257124, + "y": 71.63239643137523 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1978.4976002144917, + "y": 37.88949797832085 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 1995.6759337171432, + "y": 3.67162197677189 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2011.787921126991, + "y": -30.70784164481238 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2026.72964883736, + "y": -64.93550295797269 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2040.3972032415754, + "y": -98.69797203424977 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2052.686670732962, + "y": -131.68185894518436 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2063.494137704844, + "y": -163.57377376231716 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2072.7156905505462, + "y": -194.06032655718894 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2080.2474156633934, + "y": -222.8281274013404 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2085.9853994367118, + "y": -249.56378636631226 + }, + { + "angle": 1, + "type": "VSAPoint", + "x": 2088.068031496063, + "y": -261.96736884263447 + }, + { + "angle": 1, + "type": "VSAPoint", + "x": 2088.068031496063, + "y": -261.96736884263447 + }, + { + "angle": 1, + "type": "VSAPoint", + "x": 2088.068031496063, + "y": -261.96736884263447 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2093.657483084508, + "y": -256.8491686428997 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2105.334884759815, + "y": -247.02463595594847 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2123.8220925948735, + "y": -233.17242929563906 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2150.2581713810423, + "y": -216.62071732342656 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2178.3028954110514, + "y": -202.24961452388237 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2207.5998339810094, + "y": -190.15168642090634 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2237.792556387023, + "y": -180.41949853839853 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2268.524631925203, + "y": -173.1456164002589 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2299.4396298916563, + "y": -168.42260553038736 + }, + { + "type": "VSAPoint", + "x": 2314.8396850393706, + "y": -167.15867519535914 + }, + { + "type": "VSAPoint", + "x": 2314.8396850393706, + "y": -167.15867519535914 + }, + { + "type": "VSAPoint", + "x": 2314.8396850393706, + "y": -167.15867519535914 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2322.010028575929, + "y": -145.61308955377496 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2339.637410969939, + "y": -99.13974168385101 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2361.267739991481, + "y": -49.51427139590451 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2380.2854694075286, + "y": -10.789066434490545 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2394.1642108081796, + "y": 15.443500641661887 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2409.0805090172516, + "y": 41.89754239351732 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2425.042546290644, + "y": 68.44715750356406 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2442.058504884252, + "y": 94.9664446542904 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2460.1365670539744, + "y": 121.32950252818465 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2479.2849150557076, + "y": 147.4104298077351 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2499.5117311453505, + "y": 173.0833251754301 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2520.8251975787994, + "y": 198.22228731375787 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2543.2334966119515, + "y": 222.70141490520683 + }, + { + "type": "VSAPoint", + "x": 2554.896894724366, + "y": 234.6188346456649 + }, + { + "type": "VSAPoint", + "x": 2554.896894724366, + "y": 234.6188346456649 + }, + { + "type": "VSAPoint", + "x": 2554.896894724366, + "y": 234.6188346456649 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2562.8797277027566, + "y": 241.69787867698648 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2583.321088102669, + "y": 257.0217015418425 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2606.235296882598, + "y": 272.27261788405315 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2628.402370762836, + "y": 285.8153073866176 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2637.967107764859, + "y": 291.26164583583846 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2645.862380314502, + "y": 295.60668740016314 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2664.002927521649, + "y": 304.431757352781 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2686.372231878016, + "y": 313.51034130760297 + }, + { + "angle": 6, + "type": "VSAPoint", + "x": 2714.535576294477, + "y": 322.94413905734257 + }, + { + "type": "VSAPoint", + "x": 2731.6184129526573, + "y": 327.84718110236224 + }, + { + "type": "VSAPoint", + "x": 2731.6184129526573, + "y": 327.84718110236224 + }, + { + "angle": 3, + "saAfter": 75.59055118110237, + "type": "VSAPoint", + "x": 2554.896894724344, + "y": 1030.8393070866143 + } + ] +} diff --git a/src/test/ValentinaTest/share/Issue_937_case_1a/output.json b/src/test/ValentinaTest/share/Issue_937_case_1a/output.json new file mode 100644 index 000000000..6f7cf7ef8 --- /dev/null +++ b/src/test/ValentinaTest/share/Issue_937_case_1a/output.json @@ -0,0 +1,289 @@ +{ + "vector": [ + { + "type": "QPointF", + "x": 1790.0373027647304, + "y": 1106.4298582677168 + }, + { + "type": "QPointF", + "x": 1809.039616552721, + "y": 1030.8393070866143 + }, + { + "type": "QPointF", + "x": 1625.7211470605166, + "y": 301.6047356972375 + }, + { + "type": "QPointF", + "x": 1677.1510463933573, + "y": 286.8435479714687 + }, + { + "type": "QPointF", + "x": 1703.4138212480711, + "y": 278.04637876234926 + }, + { + "type": "QPointF", + "x": 1723.5137525631783, + "y": 269.88882003708585 + }, + { + "type": "QPointF", + "x": 1755.2977021921959, + "y": 253.25938675287418 + }, + { + "type": "QPointF", + "x": 1776.3420993297266, + "y": 240.4025822083505 + }, + { + "type": "QPointF", + "x": 1797.7637952365174, + "y": 226.14503156279258 + }, + { + "type": "QPointF", + "x": 1821.1582741564016, + "y": 207.9156854487886 + }, + { + "type": "QPointF", + "x": 1850.2268389063556, + "y": 172.6087009553809 + }, + { + "type": "QPointF", + "x": 1870.2249267950706, + "y": 145.2058551175055 + }, + { + "type": "QPointF", + "x": 1889.836815745804, + "y": 115.95069314833182 + }, + { + "type": "QPointF", + "x": 1908.9175481929235, + "y": 85.18337360456252 + }, + { + "type": "QPointF", + "x": 1927.3332233514307, + "y": 53.24112200584291 + }, + { + "type": "QPointF", + "x": 1944.9574938924545, + "y": 20.458935655897122 + }, + { + "type": "QPointF", + "x": 1961.6692094416467, + "y": -12.829474442041569 + }, + { + "type": "QPointF", + "x": 1977.3508112727925, + "y": -46.290589198904264 + }, + { + "type": "QPointF", + "x": 1991.8872271781745, + "y": -79.58978524645178 + }, + { + "type": "QPointF", + "x": 2005.1651187141283, + "y": -112.38968412540115 + }, + { + "type": "QPointF", + "x": 2017.0724182445153, + "y": -144.34786468940496 + }, + { + "type": "QPointF", + "x": 2027.498193269143, + "y": -175.1134390698845 + }, + { + "type": "QPointF", + "x": 2036.333053260422, + "y": -204.3215811329599 + }, + { + "type": "QPointF", + "x": 2043.7098515215694, + "y": -231.38670020515815 + }, + { + "type": "QPointF", + "x": 2055.2130708651216, + "y": -292.0522999673984 + }, + { + "type": "QPointF", + "x": 2096.2010430479354, + "y": -305.76697662558325 + }, + { + "type": "QPointF", + "x": 2128.851320460309, + "y": -276.6320078120429 + }, + { + "type": "QPointF", + "x": 2145.2196056546336, + "y": -264.3674802960657 + }, + { + "type": "QPointF", + "x": 2168.939173657971, + "y": -249.51658425841455 + }, + { + "type": "QPointF", + "x": 2194.160515418841, + "y": -236.5922818192089 + }, + { + "type": "QPointF", + "x": 2220.6310461540475, + "y": -225.66149541920834 + }, + { + "type": "QPointF", + "x": 2247.958778313922, + "y": -216.85279575290144 + }, + { + "type": "QPointF", + "x": 2275.742934422003, + "y": -210.27664776098405 + }, + { + "type": "QPointF", + "x": 2303.844726101479, + "y": -205.98342193871318 + }, + { + "type": "QPointF", + "x": 2342.8166649803834, + "y": -202.7848739275897 + }, + { + "type": "QPointF", + "x": 2357.6252360158223, + "y": -158.28779594983365 + }, + { + "type": "QPointF", + "x": 2374.650855533189, + "y": -113.40095337470302 + }, + { + "type": "QPointF", + "x": 2395.5715630428886, + "y": -65.40353512500977 + }, + { + "type": "QPointF", + "x": 2413.959562148755, + "y": -27.960630211024366 + }, + { + "type": "QPointF", + "x": 2441.7439264606173, + "y": 22.874874343832474 + }, + { + "type": "QPointF", + "x": 2473.5562132949735, + "y": 74.06879277048931 + }, + { + "type": "QPointF", + "x": 2490.9627711658104, + "y": 99.45260261835737 + }, + { + "type": "QPointF", + "x": 2509.3705570487227, + "y": 124.52485036246065 + }, + { + "type": "QPointF", + "x": 2528.7795075947815, + "y": 149.15966952319275 + }, + { + "type": "QPointF", + "x": 2549.188990792927, + "y": 173.2323949516483 + }, + { + "type": "QPointF", + "x": 2580.973552524787, + "y": 207.2276391804366 + }, + { + "type": "QPointF", + "x": 2586.793533689666, + "y": 212.3887020561312 + }, + { + "type": "QPointF", + "x": 2605.1439212989176, + "y": 226.1450315627929 + }, + { + "type": "QPointF", + "x": 2626.565617205801, + "y": 240.40258220841326 + }, + { + "type": "QPointF", + "x": 2663.251788844662, + "y": 262.0359243630072 + }, + { + "type": "QPointF", + "x": 2679.3939639722553, + "y": 269.8888200370858 + }, + { + "type": "QPointF", + "x": 2699.4938952873626, + "y": 278.04637876234915 + }, + { + "type": "QPointF", + "x": 2725.756670142078, + "y": 286.8435479714692 + }, + { + "type": "QPointF", + "x": 2777.186569474925, + "y": 301.60473569723985 + }, + { + "type": "QPointF", + "x": 2593.868099982721, + "y": 1030.8393070866146 + }, + { + "type": "QPointF", + "x": 2612.870413770712, + "y": 1106.4298582677168 + }, + { + "type": "QPointF", + "x": 1790.0373027647304, + "y": 1106.4298582677168 + } + ] +} diff --git a/src/test/ValentinaTest/share/test_data.qrc b/src/test/ValentinaTest/share/test_data.qrc index 52f469294..435a49fac 100644 --- a/src/test/ValentinaTest/share/test_data.qrc +++ b/src/test/ValentinaTest/share/test_data.qrc @@ -109,5 +109,7 @@ Issue_923_test7_3/output.json doll/input.json doll/output.json + Issue_937_case_1a/input.json + Issue_937_case_1a/output.json diff --git a/src/test/ValentinaTest/tst_vabstractpiece.cpp b/src/test/ValentinaTest/tst_vabstractpiece.cpp index f8920164d..ded1d5452 100644 --- a/src/test/ValentinaTest/tst_vabstractpiece.cpp +++ b/src/test/ValentinaTest/tst_vabstractpiece.cpp @@ -1026,6 +1026,12 @@ void TST_VAbstractPiece::EquidistantAngleType_data() QStringLiteral("://Issue_937_case_1/output.json"), 37.795275590551185 /*seam allowance width*/); + // See file src/app/share/collection/bugs/Issue_#937a.val + ASSERT_TEST_CASE("Issue 937. Case1a", + QStringLiteral("://Issue_937_case_1a/input.json"), + QStringLiteral("://Issue_937_case_1a/output.json"), + 37.795275590551185 /*seam allowance width*/); + // See file src/app/share/collection/bugs/Issue_#937.val ASSERT_TEST_CASE("Issue 937. Case2", QStringLiteral("://Issue_937_case_2/input.json"),