Improve testing paths.
This commit is contained in:
parent
3379fca082
commit
5a3669e42b
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<pattern>
|
<pattern>
|
||||||
<!--Pattern created with Valentina v0.6.2.0 (https://valentinaproject.bitbucket.io/).-->
|
<!--Pattern created with Valentina v0.7.52.0 (https://smart-pattern.com.ua/).-->
|
||||||
<version>0.7.12</version>
|
<version>0.9.2</version>
|
||||||
<unit>cm</unit>
|
<unit>cm</unit>
|
||||||
<description>Men's Trousers circa 1830-1870</description>
|
<description>Men's Trousers circa 1830-1870</description>
|
||||||
<notes/>
|
<notes/>
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
<line alignment="0" bold="false" italic="false" sfIncrement="0" text="%mFileName%.%mExt%"/>
|
<line alignment="0" bold="false" italic="false" sfIncrement="0" text="%mFileName%.%mExt%"/>
|
||||||
<line alignment="0" bold="false" italic="true" sfIncrement="0" text="%date%"/>
|
<line alignment="0" bold="false" italic="true" sfIncrement="0" text="%date%"/>
|
||||||
</patternLabel>
|
</patternLabel>
|
||||||
<measurements>marie_issue_#548.vit</measurements>
|
<measurements path="marie_issue_#548.vit"/>
|
||||||
<increments>
|
<increments>
|
||||||
<increment description="Original pattern outseam is 112. Use CM_HEIGHT for height formulas " formula="leg_waist_side_to_floor/112" name="#CM_HEIGHT"/>
|
<increment description="Original pattern outseam is 112. Use CM_HEIGHT for height formulas " formula="leg_waist_side_to_floor/112" name="#CM_HEIGHT"/>
|
||||||
<increment description="Original pattern's hip circumference is 102. Use CM_WIDTH for circumference, arc, or width formulas." formula="hip_circ/102" name="#CM_WIDTH"/>
|
<increment description="Original pattern's hip circumference is 102. Use CM_WIDTH for circumference, arc, or width formulas." formula="hip_circ/102" name="#CM_WIDTH"/>
|
||||||
|
@ -207,21 +207,21 @@
|
||||||
<point id="201" idObject="95" inUse="false" mx="0.987301" my="-2.53475" type="modeling"/>
|
<point id="201" idObject="95" inUse="false" mx="0.987301" my="-2.53475" type="modeling"/>
|
||||||
<point id="202" idObject="81" inUse="false" mx="0.655497" my="-0.983501" type="modeling"/>
|
<point id="202" idObject="81" inUse="false" mx="0.655497" my="-0.983501" type="modeling"/>
|
||||||
<point id="212" idObject="3" inUse="false" mx="-1.64399" my="-1.11279" type="modeling"/>
|
<point id="212" idObject="3" inUse="false" mx="-1.64399" my="-1.11279" type="modeling"/>
|
||||||
<point id="214" idObject="80" inUse="true" mx="-1.57043" my="-1.46574" showLabel="true" type="modeling"/>
|
<point id="214" idObject="80" inUse="false" mx="-1.57043" my="-1.46574" showLabel="true" type="modeling"/>
|
||||||
<point id="215" idObject="94" inUse="true" mx="-0.954275" my="-0.880717" showLabel="true" type="modeling"/>
|
<point id="215" idObject="94" inUse="false" mx="-0.954275" my="-0.880717" showLabel="true" type="modeling"/>
|
||||||
<point id="216" idObject="90" inUse="true" mx="-0.675292" my="0.147116" showLabel="true" type="modeling"/>
|
<point id="216" idObject="90" inUse="false" mx="-0.675292" my="0.147116" showLabel="true" type="modeling"/>
|
||||||
<point id="217" idObject="95" inUse="true" mx="0.279125" my="-0.543001" showLabel="true" type="modeling"/>
|
<point id="217" idObject="95" inUse="false" mx="0.279125" my="-0.543001" showLabel="true" type="modeling"/>
|
||||||
<point id="218" idObject="81" inUse="true" mx="0.655497" my="-0.983501" showLabel="true" type="modeling"/>
|
<point id="218" idObject="81" inUse="false" mx="0.655497" my="-0.983501" showLabel="true" type="modeling"/>
|
||||||
<point id="219" idObject="3" inUse="true" mx="-1.64399" my="-1.11279" showLabel="true" type="modeling"/>
|
<point id="219" idObject="3" inUse="false" mx="-1.64399" my="-1.11279" showLabel="true" type="modeling"/>
|
||||||
<point id="221" idObject="80" inUse="true" mx="-1.57043" my="-1.46574" showLabel="true" type="modeling"/>
|
<point id="221" idObject="80" inUse="false" mx="-1.57043" my="-1.46574" showLabel="true" type="modeling"/>
|
||||||
<point id="222" idObject="94" inUse="true" mx="-0.954275" my="-0.880717" showLabel="true" type="modeling"/>
|
<point id="222" idObject="94" inUse="false" mx="-0.954275" my="-0.880717" showLabel="true" type="modeling"/>
|
||||||
<point id="223" idObject="90" inUse="true" mx="-0.675292" my="0.147116" showLabel="true" type="modeling"/>
|
<point id="223" idObject="90" inUse="false" mx="-0.675292" my="0.147116" showLabel="true" type="modeling"/>
|
||||||
<point id="224" idObject="95" inUse="true" mx="0.279125" my="-0.543001" showLabel="true" type="modeling"/>
|
<point id="224" idObject="95" inUse="false" mx="0.279125" my="-0.543001" showLabel="true" type="modeling"/>
|
||||||
<point id="225" idObject="81" inUse="true" mx="0.655497" my="-0.983501" showLabel="true" type="modeling"/>
|
<point id="225" idObject="81" inUse="false" mx="0.655497" my="-0.983501" showLabel="true" type="modeling"/>
|
||||||
<point id="226" idObject="3" inUse="true" mx="-1.64399" my="-1.11279" showLabel="true" type="modeling"/>
|
<point id="226" idObject="3" inUse="false" mx="-1.64399" my="-1.11279" showLabel="true" type="modeling"/>
|
||||||
</modeling>
|
</modeling>
|
||||||
<details>
|
<details>
|
||||||
<detail closed="1" forbidFlipping="true" forceFlipping="false" hideMainPath="false" id="213" inLayout="true" mx="0" my="0" name="Back" seamAllowance="true" united="false" version="2" width="0.3">
|
<detail closed="1" forbidFlipping="true" forceFlipping="false" hideMainPath="false" id="213" mx="0" my="0" name="Back case 1" seamAllowance="true" sewLineOnDrawing="false" uuid="{b9876b4f-4064-4583-8d9e-510d3be19f51}" version="2" width="0.3">
|
||||||
<data annotation="" foldPosition="" fontSize="102" height="3.66776" letter="" mx="-20.0743" my="468.066" onFold="false" orientation="" quantity="1" rotation="0" rotationWay="" tilt="" visible="false" width="7.55684">
|
<data annotation="" foldPosition="" fontSize="102" height="3.66776" letter="" mx="-20.0743" my="468.066" onFold="false" orientation="" quantity="1" rotation="0" rotationWay="" tilt="" visible="false" width="7.55684">
|
||||||
<line alignment="4" bold="true" italic="false" sfIncrement="2" text="%pName%"/>
|
<line alignment="4" bold="true" italic="false" sfIncrement="2" text="%pName%"/>
|
||||||
</data>
|
</data>
|
||||||
|
@ -236,7 +236,7 @@
|
||||||
<node idObject="212" type="NodePoint"/>
|
<node idObject="212" type="NodePoint"/>
|
||||||
</nodes>
|
</nodes>
|
||||||
</detail>
|
</detail>
|
||||||
<detail forbidFlipping="true" forceFlipping="false" hideMainPath="false" id="220" inLayout="true" mx="21.7242" my="0.323277" name="Back" seamAllowance="true" united="false" version="2" width="1">
|
<detail forbidFlipping="true" forceFlipping="false" hideMainPath="false" id="220" mx="21.7242" my="0.323277" name="Back case 2" seamAllowance="true" sewLineOnDrawing="false" uuid="{55c8aff5-3bdc-4885-aeaf-b402f122e8b3}" version="2" width="1">
|
||||||
<data annotation="" foldPosition="" fontSize="102" height="3.66776" letter="" mx="-20.0743" my="468.066" onFold="false" orientation="" quantity="1" rotation="0" rotationWay="" tilt="" visible="false" width="7.55684">
|
<data annotation="" foldPosition="" fontSize="102" height="3.66776" letter="" mx="-20.0743" my="468.066" onFold="false" orientation="" quantity="1" rotation="0" rotationWay="" tilt="" visible="false" width="7.55684">
|
||||||
<line alignment="4" bold="true" italic="false" sfIncrement="2" text="%pName%"/>
|
<line alignment="4" bold="true" italic="false" sfIncrement="2" text="%pName%"/>
|
||||||
</data>
|
</data>
|
||||||
|
@ -251,7 +251,7 @@
|
||||||
<node idObject="219" type="NodePoint"/>
|
<node idObject="219" type="NodePoint"/>
|
||||||
</nodes>
|
</nodes>
|
||||||
</detail>
|
</detail>
|
||||||
<detail forbidFlipping="true" forceFlipping="false" hideMainPath="false" id="227" inLayout="true" mx="7.69399" my="15.0001" name="Back" seamAllowance="true" united="false" version="2" width="2">
|
<detail forbidFlipping="true" forceFlipping="false" hideMainPath="false" id="227" mx="7.69399" my="15.0001" name="Back case 3" seamAllowance="true" sewLineOnDrawing="false" uuid="{29977cac-1198-46e5-b723-72b060c9ce35}" version="2" width="2">
|
||||||
<data annotation="" foldPosition="" fontSize="102" height="3.66776" letter="" mx="-20.0743" my="468.066" onFold="false" orientation="" quantity="1" rotation="0" rotationWay="" tilt="" visible="false" width="7.55684">
|
<data annotation="" foldPosition="" fontSize="102" height="3.66776" letter="" mx="-20.0743" my="468.066" onFold="false" orientation="" quantity="1" rotation="0" rotationWay="" tilt="" visible="false" width="7.55684">
|
||||||
<line alignment="4" bold="true" italic="false" sfIncrement="2" text="%pName%"/>
|
<line alignment="4" bold="true" italic="false" sfIncrement="2" text="%pName%"/>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -565,13 +565,13 @@ auto VGObject::IsPointOnLineSegment(const QPointF &t, const QPointF &p1, const Q
|
||||||
// Here we deal with more like cigar shape.
|
// Here we deal with more like cigar shape.
|
||||||
|
|
||||||
// Front and rear easy to check
|
// Front and rear easy to check
|
||||||
if (VFuzzyComparePoints(p1, t) || VFuzzyComparePoints(p2, t))
|
if (VFuzzyComparePoints(p1, t, accuracy) || VFuzzyComparePoints(p2, t, accuracy))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if we have a segment. On previous step we already confirmed that we don't have intersection
|
// Check if we have a segment. On previous step we already confirmed that we don't have intersection
|
||||||
if (VFuzzyComparePoints(p1, p2))
|
if (VFuzzyComparePoints(p1, p2, accuracy))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,42 @@
|
||||||
#include "../vpatterndb/vpiecenode.h"
|
#include "../vpatterndb/vpiecenode.h"
|
||||||
#include "../vpatterndb/vpassmark.h"
|
#include "../vpatterndb/vpassmark.h"
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
auto FillPath(const QVector<QPointF> &path, qreal accuracy) -> QVector<QPointF>
|
||||||
|
{
|
||||||
|
QVector<QPointF> pathFilled;
|
||||||
|
pathFilled.reserve(path.size());
|
||||||
|
|
||||||
|
for (int i=0; i < path.size()-1; ++i)
|
||||||
|
{
|
||||||
|
pathFilled.append(path.at(i));
|
||||||
|
|
||||||
|
QLineF line(path.at(i), path.at(i+1));
|
||||||
|
if (line.length() > accuracy)
|
||||||
|
{
|
||||||
|
qreal len = accuracy;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
QLineF l = line;
|
||||||
|
l.setLength(len);
|
||||||
|
pathFilled.append(l.p2());
|
||||||
|
len += accuracy;
|
||||||
|
}
|
||||||
|
while(line.length() > len);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int a = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pathFilled.append(ConstLast(path));
|
||||||
|
|
||||||
|
return pathFilled;
|
||||||
|
}
|
||||||
|
} // namespace
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
AbstractTest::AbstractTest(QObject *parent) :
|
AbstractTest::AbstractTest(QObject *parent) :
|
||||||
QObject(parent)
|
QObject(parent)
|
||||||
|
@ -212,6 +248,38 @@ void AbstractTest::PassmarkShapeFromJson(const QString &json, QVector<QLineF> &s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void AbstractTest::ComparePaths(const QVector<QPointF> &actual, const QVector<QPointF> &expected)
|
||||||
|
{
|
||||||
|
QVERIFY2(actual.size() >= 2, "Not enough points");
|
||||||
|
QVERIFY2(expected.size() >= 2, "Not enough points");
|
||||||
|
|
||||||
|
const qreal accuracy = accuracyPointOnLine*2;
|
||||||
|
QVector<QPointF> actualFilled = FillPath(actual, accuracy);
|
||||||
|
|
||||||
|
bool onLine = false;
|
||||||
|
QSet<int> usedEdges;
|
||||||
|
for (auto p : actualFilled)
|
||||||
|
{
|
||||||
|
for(int i = 0; i < expected.size()-1; ++i)
|
||||||
|
{
|
||||||
|
if (VGObject::IsPointOnLineSegment(p, expected.at(i), expected.at(i+1)))
|
||||||
|
{
|
||||||
|
usedEdges.insert(i+1);
|
||||||
|
onLine = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (not onLine)
|
||||||
|
{
|
||||||
|
QFAIL("Paths are not the same. Point is not on edge.");
|
||||||
|
}
|
||||||
|
onLine = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVERIFY2(expected.size() - 1 == usedEdges.size(), "Paths are not the same. Not all edges were used.");
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void AbstractTest::ComparePathsDistance(const QVector<QPointF> &ekv, const QVector<QPointF> &ekvOrig) const
|
void AbstractTest::ComparePathsDistance(const QVector<QPointF> &ekv, const QVector<QPointF> &ekvOrig) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -86,6 +86,7 @@ public:
|
||||||
void PassmarkShapeFromJson(const QString &json, QVector<QLineF> &shape);
|
void PassmarkShapeFromJson(const QString &json, QVector<QLineF> &shape);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
static void ComparePaths(const QVector<QPointF> &actual, const QVector<QPointF> &expected);
|
||||||
void ComparePathsDistance(const QVector<QPointF> &ekv, const QVector<QPointF> &ekvOrig) const;
|
void ComparePathsDistance(const QVector<QPointF> &ekv, const QVector<QPointF> &ekvOrig) const;
|
||||||
void ComparePointsDistance(const QPointF &result, const QPointF &expected, qreal testAccuracy) const;
|
void ComparePointsDistance(const QPointF &result, const QPointF &expected, qreal testAccuracy) const;
|
||||||
void CompareLinesDistance(const QVector<QLineF> &result, const QVector<QLineF> &expected) const;
|
void CompareLinesDistance(const QVector<QLineF> &result, const QVector<QLineF> &expected) const;
|
||||||
|
|
|
@ -112,8 +112,18 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": -69.2871712942862,
|
"x": -71.33016037970899,
|
||||||
"y": 156.06512913942984
|
"y": 144.14769280779646
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "QPointF",
|
||||||
|
"x": 234.13513056084665,
|
||||||
|
"y": 91.78221436084601
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "QPointF",
|
||||||
|
"x": 234.13513056084665,
|
||||||
|
"y": 91.7822143608459
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
|
|
|
@ -1,489 +1,583 @@
|
||||||
{
|
{
|
||||||
"vector": [
|
"vector": [
|
||||||
{
|
{
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 247.3228346456693,
|
"x": 247.3228346456693,
|
||||||
"y": 1797.4790551181104
|
"y": 1797.4790551181104
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 294.56692913385825,
|
"x": 294.56692913385825,
|
||||||
"y": 1526.744484718234
|
"y": 1526.744484718234
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 294.56692913385825,
|
"x": 294.56692913385825,
|
||||||
"y": 1526.744484718234
|
"y": 1526.744484718234
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 297.78826667615306,
|
"x": 297.78826667615306,
|
||||||
"y": 1526.2556756427075
|
"y": 1526.2556756427075
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 318.5060975402612,
|
"x": 318.5060975402612,
|
||||||
"y": 1521.9403017050831
|
"y": 1521.9403017050831
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 338.4399491985108,
|
"x": 338.4399491985108,
|
||||||
"y": 1516.5913193530896
|
"y": 1516.5913193530896
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 357.5961791656124,
|
"x": 357.5961791656124,
|
||||||
"y": 1510.2268226147403
|
"y": 1510.2268226147403
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 375.98114495627635,
|
"x": 375.98114495627635,
|
||||||
"y": 1502.86490551805
|
"y": 1502.86490551805
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 393.6012040852129,
|
"x": 393.6012040852129,
|
||||||
"y": 1494.5236620910327
|
"y": 1494.5236620910327
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 410.4627140671324,
|
"x": 410.4627140671324,
|
||||||
"y": 1485.221186361704
|
"y": 1485.221186361704
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 426.5720324167454,
|
"x": 426.5720324167454,
|
||||||
"y": 1474.975572358077
|
"y": 1474.975572358077
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 441.9355166487622,
|
"x": 441.9355166487622,
|
||||||
"y": 1463.804914108167
|
"y": 1463.804914108167
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 456.5595242778931,
|
"x": 456.5595242778931,
|
||||||
"y": 1451.7273056399881
|
"y": 1451.7273056399881
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 470.4504128188486,
|
"x": 470.4504128188486,
|
||||||
"y": 1438.7608409815548
|
"y": 1438.7608409815548
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 483.6145397863388,
|
"x": 483.6145397863388,
|
||||||
"y": 1424.9236141608817
|
"y": 1424.9236141608817
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 496.05826269507435,
|
"x": 496.05826269507435,
|
||||||
"y": 1410.2337192059833
|
"y": 1410.2337192059833
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 507.78793905976556,
|
"x": 507.78793905976556,
|
||||||
"y": 1394.7092501448735
|
"y": 1394.7092501448735
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 518.8099263951228,
|
"x": 518.8099263951228,
|
||||||
"y": 1378.3683010055674
|
"y": 1378.3683010055674
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 529.1305822158562,
|
"x": 529.1305822158562,
|
||||||
"y": 1361.2289658160792
|
"y": 1361.2289658160792
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 538.7562640366766,
|
"x": 538.7562640366766,
|
||||||
"y": 1343.309338604423
|
"y": 1343.309338604423
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 547.6933293722939,
|
"x": 547.6933293722939,
|
||||||
"y": 1324.6275133986137
|
"y": 1324.6275133986137
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 555.9481357374189,
|
"x": 555.9481357374189,
|
||||||
"y": 1305.2015842266655
|
"y": 1305.2015842266655
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 563.5270406467614,
|
"x": 563.5270406467614,
|
||||||
"y": 1285.0496451165927
|
"y": 1285.0496451165927
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 570.4364016150325,
|
"x": 570.4364016150325,
|
||||||
"y": 1264.1897900964104
|
"y": 1264.1897900964104
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 574.1606905548133,
|
"x": 574.1606905548133,
|
||||||
"y": 1251.340769819358
|
"y": 1251.340769819358
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 574.1606905548133,
|
"x": 574.1606905548133,
|
||||||
"y": 1251.340769819358
|
"y": 1251.340769819358
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1043.6462437609543,
|
"x": 1043.6462437609543,
|
||||||
"y": 1420.9221966584219
|
"y": 1420.9221966584219
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1043.6462437609543,
|
"x": 1043.6462437609543,
|
||||||
"y": 1420.9221966584219
|
"y": 1420.9221966584219
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1035.2312855037069,
|
"x": 1035.2312855037069,
|
||||||
"y": 1459.225877577704
|
"y": 1459.225877577704
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1027.0331905074174,
|
"x": 1027.0331905074174,
|
||||||
"y": 1504.129744460739
|
"y": 1504.129744460739
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1020.7375941575093,
|
"x": 1020.7375941575093,
|
||||||
"y": 1547.6425282999794
|
"y": 1547.6425282999794
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1016.2716040932994,
|
"x": 1016.2716040932994,
|
||||||
"y": 1589.777525721534
|
"y": 1589.777525721534
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1013.5623279541039,
|
"x": 1013.5623279541039,
|
||||||
"y": 1630.5480333515106
|
"y": 1630.5480333515106
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1012.5368733792393,
|
"x": 1012.5368733792393,
|
||||||
"y": 1669.9673478160166
|
"y": 1669.9673478160166
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1013.1223480080217,
|
"x": 1013.1223480080217,
|
||||||
"y": 1708.0487657411604
|
"y": 1708.0487657411604
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1015.2458594797675,
|
"x": 1015.2458594797675,
|
||||||
"y": 1744.80558375305
|
"y": 1744.80558375305
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1018.8345154337933,
|
"x": 1018.8345154337933,
|
||||||
"y": 1780.2510984777941
|
"y": 1780.2510984777941
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1023.815423509415,
|
"x": 1023.815423509415,
|
||||||
"y": 1814.3986065414997
|
"y": 1814.3986065414997
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1030.1156913459495,
|
"x": 1030.1156913459495,
|
||||||
"y": 1847.2614045702749
|
"y": 1847.2614045702749
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1037.6624265827127,
|
"x": 1037.6624265827127,
|
||||||
"y": 1878.8527891902281
|
"y": 1878.8527891902281
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1046.382736859021,
|
"x": 1046.382736859021,
|
||||||
"y": 1909.1860570274675
|
"y": 1909.1860570274675
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1056.2037298141906,
|
"x": 1056.2037298141906,
|
||||||
"y": 1938.2745047081007
|
"y": 1938.2745047081007
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1060.8693996697996,
|
"x": 1060.78342188316,
|
||||||
"y": 1950.5615890831032
|
"y": 1950.3388175409807
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1060.8693996697996,
|
"x": 1060.78342188316,
|
||||||
"y": 1950.5615890831032
|
"y": 1950.3388175409807
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1060.8693996697996,
|
"x": 1060.78342188316,
|
||||||
"y": 1950.5615890831032
|
"y": 1950.3388175409807
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1067.0525130875385,
|
"x": 1067.0525130875385,
|
||||||
"y": 1966.131428858236
|
"y": 1966.131428858236
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1078.8561943183804,
|
"x": 1078.8561943183804,
|
||||||
"y": 1992.7701261039808
|
"y": 1992.7701261039808
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1091.5418811460327,
|
"x": 1091.5418811460327,
|
||||||
"y": 2018.2038930714439
|
"y": 2018.2038930714439
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1105.0366812098123,
|
"x": 1105.0366812098123,
|
||||||
"y": 2042.4460263867327
|
"y": 2042.4460263867327
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1119.267702149035,
|
"x": 1119.267702149035,
|
||||||
"y": 2065.5098226759555
|
"y": 2065.5098226759555
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1134.1620516030175,
|
"x": 1134.1620516030175,
|
||||||
"y": 2087.4085785652205
|
"y": 2087.4085785652205
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1149.6468372110758,
|
"x": 1149.6468372110758,
|
||||||
"y": 2108.155590680636
|
"y": 2108.155590680636
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1165.6491666125266,
|
"x": 1165.6491666125266,
|
||||||
"y": 2127.7641556483086
|
"y": 2127.7641556483086
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1182.0961474466858,
|
"x": 1182.0961474466858,
|
||||||
"y": 2146.247570094348
|
"y": 2146.247570094348
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1198.9148873528698,
|
"x": 1198.9148873528698,
|
||||||
"y": 2163.619130644861
|
"y": 2163.619130644861
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1216.0324939703955,
|
"x": 1216.0324939703955,
|
||||||
"y": 2179.892133925956
|
"y": 2179.892133925956
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1233.3760749385788,
|
"x": 1233.3760749385788,
|
||||||
"y": 2195.0798765637414
|
"y": 2195.0798765637414
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1250.872737896736,
|
"x": 1250.872737896736,
|
||||||
"y": 2209.195655184325
|
"y": 2209.195655184325
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1268.4495904841838,
|
"x": 1268.4495904841838,
|
||||||
"y": 2222.2527664138142
|
"y": 2222.2527664138142
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1277.244094488189,
|
"x": 1277.244094488189,
|
||||||
"y": 2228.3451968503937
|
"y": 2228.3451968503937
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1277.244094488189,
|
"x": 1277.244094488189,
|
||||||
"y": 2228.3451968503937
|
"y": 2228.3451968503937
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1277.244094488189,
|
"x": 1277.244094488189,
|
||||||
"y": 2228.3451968503937
|
"y": 2228.3451968503937
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1271.9588830384628,
|
"x": 1271.9588830384628,
|
||||||
"y": 2262.447990091445
|
"y": 2262.447990091445
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1261.101448249924,
|
"x": 1261.101448249924,
|
||||||
"y": 2345.9028330125902
|
"y": 2345.9028330125902
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1250.4163709563645,
|
"x": 1250.4163709563645,
|
||||||
"y": 2443.039988555569
|
"y": 2443.039988555569
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1240.4778420043203,
|
"x": 1240.4778420043203,
|
||||||
"y": 2548.729684381468
|
"y": 2548.729684381468
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1231.860052240328,
|
"x": 1231.860052240328,
|
||||||
"y": 2657.842148151375
|
"y": 2657.842148151375
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1225.1371925109243,
|
"x": 1225.1371925109243,
|
||||||
"y": 2765.2476075263785
|
"y": 2765.2476075263785
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1220.8834536626455,
|
"x": 1220.8834536626455,
|
||||||
"y": 2865.816290167567
|
"y": 2865.816290167567
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1219.767482875249,
|
"x": 1219.767482875249,
|
||||||
"y": 2933.1761050465484
|
"y": 2933.1761050465484
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1220.030758030581,
|
"x": 1220.030758030581,
|
||||||
"y": 2973.52370224905
|
"y": 2973.52370224905
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1220.551181102362,
|
"x": 1220.551181102362,
|
||||||
"y": 2991.8097637795277
|
"y": 2991.8097637795277
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1220.551181102362,
|
"x": 1220.551181102362,
|
||||||
"y": 2991.8097637795277
|
"y": 2991.8097637795277
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1220.551181102362,
|
"x": 1220.551181102362,
|
||||||
"y": 2991.8097637795277
|
"y": 2991.8097637795277
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1222.491963893705,
|
"x": 1222.491963893705,
|
||||||
"y": 3041.378156244142
|
"y": 3041.378156244142
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1228.9297849855586,
|
"x": 1228.9297849855586,
|
||||||
"y": 3149.325295405348
|
"y": 3149.325295405348
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1242.2166449681567,
|
"x": 1242.2166449681567,
|
||||||
"y": 3324.7922499621873
|
"y": 3324.7922499621873
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1257.0381248037838,
|
"x": 1257.0381248037838,
|
||||||
"y": 3509.2002740192374
|
"y": 3509.2002740192374
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1265.9313376604825,
|
"x": 1265.9313376604825,
|
||||||
"y": 3631.4531243807824
|
"y": 3631.4531243807824
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1272.8825040106944,
|
"x": 1272.8825040106944,
|
||||||
"y": 3749.9949053775285
|
"y": 3749.9949053775285
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1276.089799507623,
|
"x": 1276.089799507623,
|
||||||
"y": 3834.436912931008
|
"y": 3834.436912931008
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"angle": 6,
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1277.1503873849765,
|
"x": 1277.1503873849765,
|
||||||
"y": 3888.191689968952
|
"y": 3888.191689968952
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"curvePoint": true,
|
||||||
"saAfter": 90.70866141732284,
|
"saAfter": 90.70866141732284,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1277.244094488189,
|
"x": 1277.244094488189,
|
||||||
"y": 3914.0144881889764
|
"y": 3914.0144881889764
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"saAfter": 90.70866141732284,
|
"saAfter": 90.70866141732284,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 1277.244094488189,
|
"x": 1277.244094488189,
|
||||||
"y": 3914.0144881889764
|
"y": 3914.0144881889764
|
||||||
|
@ -491,12 +585,14 @@
|
||||||
{
|
{
|
||||||
"saAfter": 0,
|
"saAfter": 0,
|
||||||
"saBefore": 90.70866141732284,
|
"saBefore": 90.70866141732284,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 218.9763779527559,
|
"x": 218.9763779527559,
|
||||||
"y": 3914.0144881889764
|
"y": 3914.0144881889764
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"saBefore": 0,
|
"saBefore": 0,
|
||||||
|
"turnPoint": true,
|
||||||
"type": "VSAPoint",
|
"type": "VSAPoint",
|
||||||
"x": 218.9763779527559,
|
"x": 218.9763779527559,
|
||||||
"y": 1797.4790551181104
|
"y": 1797.4790551181104
|
||||||
|
|
|
@ -67,23 +67,23 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": 469.54733984197816,
|
"x": 469.7108255124939,
|
||||||
"y": 1412.2930283139299
|
"y": 1412.1211833970249
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": 481.41282344527315,
|
"x": 481.5023818549732,
|
||||||
"y": 1398.2857485794134
|
"y": 1398.889071550954
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": 492.5547151481526,
|
"x": 491.68673124443325,
|
||||||
"y": 1383.8143086488699
|
"y": 1383.8140348486497
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": 502.7806762003831,
|
"x": 503.00597472305526,
|
||||||
"y": 1368.354315381568
|
"y": 1367.980166009198
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
|
@ -302,8 +302,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": 1239.7744748167386,
|
"x": 1239.7642099434847,
|
||||||
"y": 2866.372200302109
|
"y": 2866.614886752182
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
|
@ -312,8 +312,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": 1238.9261603693603,
|
"x": 1238.9279935276843,
|
||||||
"y": 2973.119458224285
|
"y": 2973.4003944697574
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
|
@ -362,12 +362,12 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": 218.40944881889754,
|
"x": 218.09480314960638,
|
||||||
"y": 4004.723149606299
|
"y": 4004.723149606299
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "QPointF",
|
"type": "QPointF",
|
||||||
"x": 218.40944881889763,
|
"x": 218.0948031496063,
|
||||||
"y": 1778.581417322835
|
"y": 1778.581417322835
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -314,7 +314,7 @@ void TST_VAbstractPiece::EquidistantRemoveLoop() const
|
||||||
CastTo(VAbstractPiece::Equidistant(points, width, QString()), ekv);
|
CastTo(VAbstractPiece::Equidistant(points, width, QString()), ekv);
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
ComparePathsDistance(ekv, ekvOrig);
|
ComparePaths(ekv, ekvOrig);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -331,7 +331,7 @@ void TST_VAbstractPiece::LayoutAllowanceRemoveLoop_data()
|
||||||
QTest::newRow(title) << inputPoints << width << outputPoints;
|
QTest::newRow(title) << inputPoints << width << outputPoints;
|
||||||
};
|
};
|
||||||
|
|
||||||
// See file src/app/share/collection/test/smart_pattern_#58.val (private collection)
|
// See file valentina_private_collection/bugs/smart_pattern_#58/smart_pattern_#58.val
|
||||||
ASSERT_TEST_CASE("Loop in layout allowance",
|
ASSERT_TEST_CASE("Loop in layout allowance",
|
||||||
QStringLiteral("://smart_pattern_#58/input.json"),
|
QStringLiteral("://smart_pattern_#58/input.json"),
|
||||||
QStringLiteral("://smart_pattern_#58/output.json"),
|
QStringLiteral("://smart_pattern_#58/output.json"),
|
||||||
|
@ -367,7 +367,7 @@ void TST_VAbstractPiece::LayoutAllowanceRemoveLoop() const
|
||||||
CastTo(VAbstractPiece::Equidistant(points, width, QString()), ekv);
|
CastTo(VAbstractPiece::Equidistant(points, width, QString()), ekv);
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
ComparePathsDistance(ekv, ekvOrig);
|
ComparePaths(ekv, ekvOrig);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -459,7 +459,7 @@ void TST_VAbstractPiece::RawPathRemoveLoop() const
|
||||||
|
|
||||||
QVector<QPointF> res;
|
QVector<QPointF> res;
|
||||||
CastTo(VAbstractPiece::CheckLoops(path), res);
|
CastTo(VAbstractPiece::CheckLoops(path), res);
|
||||||
ComparePathsDistance(res, expect);
|
ComparePaths(res, expect);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -732,7 +732,7 @@ void TST_VAbstractPiece::PathRemoveLoop() const
|
||||||
QFETCH(QVector<QPointF>, expect);
|
QFETCH(QVector<QPointF>, expect);
|
||||||
|
|
||||||
QVector<QPointF> res = VAbstractPiece::CheckLoops(path);
|
QVector<QPointF> res = VAbstractPiece::CheckLoops(path);
|
||||||
ComparePathsDistance(res, expect);
|
ComparePaths(res, expect);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -918,7 +918,7 @@ void TST_VAbstractPiece::PathLoopsCase() const
|
||||||
QFETCH(QVector<QPointF>, expect);
|
QFETCH(QVector<QPointF>, expect);
|
||||||
|
|
||||||
const QVector<QPointF> res = VAbstractPiece::CheckLoops(path);
|
const QVector<QPointF> res = VAbstractPiece::CheckLoops(path);
|
||||||
ComparePathsDistance(res, expect);
|
ComparePaths(res, expect);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1034,7 +1034,7 @@ void TST_VAbstractPiece::BrokenDetailEquidistant() const
|
||||||
CastTo(VAbstractPiece::Equidistant(points, width, QString()), ekv);// Take result
|
CastTo(VAbstractPiece::Equidistant(points, width, QString()), ekv);// Take result
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
ComparePathsDistance(ekv, ekvOrig);
|
ComparePaths(ekv, ekvOrig);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1147,7 +1147,7 @@ void TST_VAbstractPiece::EquidistantAngleType() const
|
||||||
CastTo(VAbstractPiece::Equidistant(points, width, QString()), ekv);// Take result
|
CastTo(VAbstractPiece::Equidistant(points, width, QString()), ekv);// Take result
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
ComparePathsDistance(ekv, ekvOrig);
|
ComparePaths(ekv, ekvOrig);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1184,7 +1184,7 @@ void TST_VAbstractPiece::CorrectEquidistantPoints() const
|
||||||
const QVector<QPointF> res = VAbstractPiece::CorrectEquidistantPoints(points, removeFirstAndLast);
|
const QVector<QPointF> res = VAbstractPiece::CorrectEquidistantPoints(points, removeFirstAndLast);
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
ComparePathsDistance(res, expect);
|
ComparePaths(res, expect);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1218,7 +1218,7 @@ void TST_VAbstractPiece::TestCorrectEquidistantPoints() const
|
||||||
QFETCH(QVector<QPointF>, expect);
|
QFETCH(QVector<QPointF>, expect);
|
||||||
|
|
||||||
QVector<QPointF> after = VAbstractPiece::CorrectEquidistantPoints(before);
|
QVector<QPointF> after = VAbstractPiece::CorrectEquidistantPoints(before);
|
||||||
ComparePathsDistance(after, expect);
|
ComparePaths(after, expect);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1335,7 +1335,7 @@ void TST_VAbstractPiece::PossibleInfiniteClearLoops() const
|
||||||
QFETCH(QVector<QPointF>, expect);
|
QFETCH(QVector<QPointF>, expect);
|
||||||
|
|
||||||
QVector<QPointF> res = VAbstractPiece::CheckLoops(path);
|
QVector<QPointF> res = VAbstractPiece::CheckLoops(path);
|
||||||
ComparePathsDistance(res, expect);
|
ComparePaths(res, expect);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -64,7 +64,7 @@ void TST_VLayoutDetail::Case1() const
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
QVector<QPointF> contourPoints;
|
QVector<QPointF> contourPoints;
|
||||||
CastTo(det.GetMappedContourPoints(), contourPoints);
|
CastTo(det.GetMappedContourPoints(), contourPoints);
|
||||||
ComparePathsDistance(contourPoints, OutputPointsCase1());
|
ComparePaths(contourPoints, OutputPointsCase1());
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -130,7 +130,7 @@ void TST_VLayoutDetail::Case2() const
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
QVector<QPointF> contourPoints;
|
QVector<QPointF> contourPoints;
|
||||||
CastTo(det.GetMappedContourPoints(), contourPoints);
|
CastTo(det.GetMappedContourPoints(), contourPoints);
|
||||||
ComparePathsDistance(contourPoints, OutputPointsCase2());
|
ComparePaths(contourPoints, OutputPointsCase2());
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -60,7 +60,7 @@ void TST_VPiece::Issue620()
|
||||||
QVector<QPointF> origPoints = AbstractTest::VectorFromJson<QPointF>(QStringLiteral("://Issue_620/output.json"));
|
QVector<QPointF> origPoints = AbstractTest::VectorFromJson<QPointF>(QStringLiteral("://Issue_620/output.json"));
|
||||||
|
|
||||||
// Begin comparison
|
// Begin comparison
|
||||||
ComparePathsDistance(pointsEkv, origPoints);
|
ComparePaths(pointsEkv, origPoints);
|
||||||
}
|
}
|
||||||
catch (const VException &e)
|
catch (const VException &e)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user