mirror of
https://gitlab.com/smart-pattern/valentina.git
synced 2024-09-19 15:24:03 +02:00
Compare commits
5 commits
5dc6c38dee
...
f1b2f6e03b
Author | SHA1 | Date | |
---|---|---|---|
f1b2f6e03b | |||
21c3043696 | |||
ded74a25e3 | |||
dc7f0fc74f | |||
d3d550ce70 |
|
@ -8,6 +8,8 @@
|
||||||
- Fix parsing SVG fonts.
|
- Fix parsing SVG fonts.
|
||||||
- Add "Twin Sans" single stroke font.
|
- Add "Twin Sans" single stroke font.
|
||||||
- Fixed generation of mirror side of piece based on fold line.
|
- Fixed generation of mirror side of piece based on fold line.
|
||||||
|
- Puzzle app. Piece rotation with step 15 degrees by holding Ctrl key.
|
||||||
|
- Fix export of turn points.
|
||||||
|
|
||||||
# Valentina 0.7.53 June 25, 2024
|
# Valentina 0.7.53 June 25, 2024
|
||||||
- Fix layout sheet export with empty name.
|
- Fix layout sheet export with empty name.
|
||||||
|
|
233
appveyor.yml
233
appveyor.yml
File diff suppressed because one or more lines are too long
|
@ -409,6 +409,7 @@ void VPGraphicsPieceControls::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||||
if (event->button() == Qt::LeftButton && event->type() != QEvent::GraphicsSceneMouseDoubleClick)
|
if (event->button() == Qt::LeftButton && event->type() != QEvent::GraphicsSceneMouseDoubleClick)
|
||||||
{
|
{
|
||||||
m_rotationStartPoint = event->scenePos();
|
m_rotationStartPoint = event->scenePos();
|
||||||
|
m_rotationSum = 0;
|
||||||
m_controlsVisible = false;
|
m_controlsVisible = false;
|
||||||
m_handleCorner = SelectedHandleCorner(event->pos());
|
m_handleCorner = SelectedHandleCorner(event->pos());
|
||||||
m_ignorePieceTransformation = true;
|
m_ignorePieceTransformation = true;
|
||||||
|
@ -453,6 +454,16 @@ void VPGraphicsPieceControls::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||||
rotateOn = rotateOn - 360.;
|
rotateOn = rotateOn - 360.;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_rotationSum += rotateOn;
|
||||||
|
|
||||||
|
if (event->modifiers() & Qt::ControlModifier)
|
||||||
|
{
|
||||||
|
const qreal sign = std::copysign(1.0, m_rotationSum);
|
||||||
|
const int steps = qFloor(qAbs(m_rotationSum / 15));
|
||||||
|
rotateOn = 15 * steps * sign;
|
||||||
|
m_rotationSum -= rotateOn;
|
||||||
|
}
|
||||||
|
|
||||||
if (not qFuzzyIsNull(rotateOn))
|
if (not qFuzzyIsNull(rotateOn))
|
||||||
{
|
{
|
||||||
if (VPLayoutPtr const layout = m_layout.toStrongRef(); not layout.isNull())
|
if (VPLayoutPtr const layout = m_layout.toStrongRef(); not layout.isNull())
|
||||||
|
|
|
@ -151,6 +151,7 @@ private:
|
||||||
bool allowChangeMerge{false};
|
bool allowChangeMerge{false};
|
||||||
QList<VPPiecePtr> m_selectedPieces{};
|
QList<VPPiecePtr> m_selectedPieces{};
|
||||||
bool m_ignorePieceTransformation{false};
|
bool m_ignorePieceTransformation{false};
|
||||||
|
qreal m_rotationSum{0};
|
||||||
|
|
||||||
QMap<VPHandleCornerType, QPixmap> m_handlePixmaps{};
|
QMap<VPHandleCornerType, QPixmap> m_handlePixmaps{};
|
||||||
QMap<VPHandleCornerType, QPixmap> m_handleHoverPixmaps{};
|
QMap<VPHandleCornerType, QPixmap> m_handleHoverPixmaps{};
|
||||||
|
|
|
@ -1153,6 +1153,8 @@ auto VAbstractPiece::Equidistant(QVector<VSAPoint> points, qreal width, const QS
|
||||||
cleaned = CorrectEquidistantPoints(cleaned, removeFirstAndLast);
|
cleaned = CorrectEquidistantPoints(cleaned, removeFirstAndLast);
|
||||||
cleaned = CorrectPathDistortion(cleaned);
|
cleaned = CorrectPathDistortion(cleaned);
|
||||||
|
|
||||||
|
// DumpVector(TurnPointList(cleaned), QStringLiteral("output.json.XXXXXX")); // Uncomment for dumping test data
|
||||||
|
|
||||||
// QVector<QPointF> dump;
|
// QVector<QPointF> dump;
|
||||||
// CastTo(cleaned, dump);
|
// CastTo(cleaned, dump);
|
||||||
// DumpVector(dump, QStringLiteral("output.json.XXXXXX")); // Uncomment for dumping test data
|
// DumpVector(dump, QStringLiteral("output.json.XXXXXX")); // Uncomment for dumping test data
|
||||||
|
|
|
@ -234,23 +234,14 @@ template <class T>
|
||||||
inline auto VAbstractPiece::CheckPointOnLine(QVector<T> &points, const T &iPoint, const T &prevPoint,
|
inline auto VAbstractPiece::CheckPointOnLine(QVector<T> &points, const T &iPoint, const T &prevPoint,
|
||||||
const T &nextPoint) -> bool
|
const T &nextPoint) -> bool
|
||||||
{
|
{
|
||||||
if (!VGObject::IsPointOnLineSegment(iPoint, prevPoint, nextPoint) ||
|
if (iPoint.TurnPoint() || (iPoint.CurvePoint() && !prevPoint.CurvePoint()) ||
|
||||||
|
!VGObject::IsPointOnLineSegment(iPoint, prevPoint, nextPoint) ||
|
||||||
!IsEkvPointOnLine(iPoint, prevPoint, nextPoint))
|
!IsEkvPointOnLine(iPoint, prevPoint, nextPoint))
|
||||||
{
|
{
|
||||||
points.append(iPoint);
|
points.append(iPoint);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!points.isEmpty() && iPoint.TurnPoint())
|
|
||||||
{
|
|
||||||
points.last().SetTurnPoint(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!points.isEmpty() && iPoint.CurvePoint())
|
|
||||||
{
|
|
||||||
points.last().SetCurvePoint(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -89,4 +89,22 @@ template <class T> void VectorToJson(const QVector<T> &points, QJsonObject &json
|
||||||
json[QLatin1String("vector")] = pointsArray;
|
json[QLatin1String("vector")] = pointsArray;
|
||||||
}
|
}
|
||||||
#endif // !defined(V_NO_ASSERT)
|
#endif // !defined(V_NO_ASSERT)
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
template <class T> auto TurnPointList(const QVector<T> &points) -> QVector<T>
|
||||||
|
{
|
||||||
|
QVector<T> list;
|
||||||
|
list.reserve(points.size());
|
||||||
|
|
||||||
|
for (const auto &p : qAsConst(points))
|
||||||
|
{
|
||||||
|
if (p.TurnPoint())
|
||||||
|
{
|
||||||
|
list.append(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // TESTPATH_H
|
#endif // TESTPATH_H
|
||||||
|
|
|
@ -186,6 +186,8 @@ auto VPiece::MainPathPoints(const VContainer *data) const -> QVector<VLayoutPoin
|
||||||
QVector<VLayoutPoint> points = mainPath.PathPoints(data);
|
QVector<VLayoutPoint> points = mainPath.PathPoints(data);
|
||||||
points = CheckLoops(CorrectEquidistantPoints(points)); // A path can contains loops
|
points = CheckLoops(CorrectEquidistantPoints(points)); // A path can contains loops
|
||||||
|
|
||||||
|
// DumpVector(TurnPointList(points), QStringLiteral("output.json.XXXXXX")); // Uncomment for dumping test data
|
||||||
|
|
||||||
// DumpVector(points, QStringLiteral("output.json.XXXXXX")); // Uncomment for dumping test data
|
// DumpVector(points, QStringLiteral("output.json.XXXXXX")); // Uncomment for dumping test data
|
||||||
return points;
|
return points;
|
||||||
}
|
}
|
||||||
|
|
|
@ -779,7 +779,7 @@ auto GetNodeName(const VContainer *data, const VPieceNode &node, bool showPassma
|
||||||
|
|
||||||
if (not node.IsTurnPoint())
|
if (not node.IsTurnPoint())
|
||||||
{
|
{
|
||||||
name += QStringLiteral(" ⦿");
|
name += QStringLiteral(" ⊙");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1428,6 +1428,7 @@ void DialogSeamAllowance::ListChanged()
|
||||||
InitMirrorLine();
|
InitMirrorLine();
|
||||||
CustomSAChanged(uiTabPaths->listWidgetCustomSA->currentRow());
|
CustomSAChanged(uiTabPaths->listWidgetCustomSA->currentRow());
|
||||||
SetMoveControls();
|
SetMoveControls();
|
||||||
|
SetOptionControls();
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -205,6 +205,12 @@ auto VPlainTextEdit::MatchRightParenthesis(QTextBlock currentBlock, int i, int n
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VPlainTextEdit::CreateParenthesisSelection(int pos, bool match)
|
void VPlainTextEdit::CreateParenthesisSelection(int pos, bool match)
|
||||||
{
|
{
|
||||||
|
if (pos < 0 || pos >= toPlainText().length())
|
||||||
|
{
|
||||||
|
qDebug() << "String:" << toPlainText() << "Position '" << pos << "' out of range";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
QList<QTextEdit::ExtraSelection> selections = extraSelections();
|
QList<QTextEdit::ExtraSelection> selections = extraSelections();
|
||||||
|
|
||||||
QTextEdit::ExtraSelection selection;
|
QTextEdit::ExtraSelection selection;
|
||||||
|
|
|
@ -0,0 +1,783 @@
|
||||||
|
{
|
||||||
|
"vector": [
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 56.69291338582678,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 56.69291338582678,
|
||||||
|
"saBefore": 56.69291338582678,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1223.4330708661416,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 56.69291338582678,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -888.6042394214635
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -751.0105230352001,
|
||||||
|
"y": -848.6904032907711
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -751.192819858519,
|
||||||
|
"y": -844.5288493300338
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -751.5472676602066,
|
||||||
|
"y": -840.4604282000892
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -752.0711416765532,
|
||||||
|
"y": -836.4878646646468
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -752.7617171438496,
|
||||||
|
"y": -832.6138834874159
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -753.6162692983859,
|
||||||
|
"y": -828.8412094321063
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -754.6320733764528,
|
||||||
|
"y": -825.1725672624273
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -755.8064046143406,
|
||||||
|
"y": -821.6106817420884
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -757.1365382483402,
|
||||||
|
"y": -818.1582776347991
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -758.6197495147417,
|
||||||
|
"y": -814.8180797042692
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -760.2533136498355,
|
||||||
|
"y": -811.5928127142079
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -762.0345058899125,
|
||||||
|
"y": -808.485201428325
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -763.9606014712626,
|
||||||
|
"y": -805.4979706103297
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -766.028875630177,
|
||||||
|
"y": -802.633845023932
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -768.2366036029457,
|
||||||
|
"y": -799.8955494328409
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -770.5810606258592,
|
||||||
|
"y": -797.2858086007661
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -773.0595219352081,
|
||||||
|
"y": -794.8073472914173
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -775.6692627672828,
|
||||||
|
"y": -792.4628902685038
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -778.407558358374,
|
||||||
|
"y": -790.2551622957351
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -781.2716839447717,
|
||||||
|
"y": -788.1868881368207
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -784.258914762767,
|
||||||
|
"y": -786.2607925554705
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -787.3665260486498,
|
||||||
|
"y": -784.4796003153936
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -790.5917930387111,
|
||||||
|
"y": -782.8460361802997
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -793.931990969241,
|
||||||
|
"y": -781.3628249138983
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -797.3843950765304,
|
||||||
|
"y": -780.0326912798987
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -800.9462805968692,
|
||||||
|
"y": -778.8583600420109
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -804.6149227665483,
|
||||||
|
"y": -777.8425559639439
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -808.3875968218579,
|
||||||
|
"y": -776.9880038094077
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -812.2615779990888,
|
||||||
|
"y": -776.2974283421113
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -816.2341415345311,
|
||||||
|
"y": -775.7735543257646
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -820.3025626644758,
|
||||||
|
"y": -775.419106524077
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -824.464116625213,
|
||||||
|
"y": -775.2368097007582
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -826.5826771653542,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -826.5826771653542,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -845.4803149606298,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1601.3858267716535,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1620.283464566929,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1620.283464566929,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1622.4020251070701,
|
||||||
|
"y": -775.2368097007582
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1626.5635790678075,
|
||||||
|
"y": -775.419106524077
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1630.632000197752,
|
||||||
|
"y": -775.7735543257646
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1634.6045637331945,
|
||||||
|
"y": -776.2974283421113
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1638.4785449104254,
|
||||||
|
"y": -776.9880038094077
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1642.251218965735,
|
||||||
|
"y": -777.8425559639439
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1645.9198611354138,
|
||||||
|
"y": -778.8583600420109
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1649.4817466557527,
|
||||||
|
"y": -780.0326912798987
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1652.9341507630422,
|
||||||
|
"y": -781.3628249138983
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1656.2743486935722,
|
||||||
|
"y": -782.8460361802997
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1659.4996156836335,
|
||||||
|
"y": -784.4796003153936
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1662.6072269695164,
|
||||||
|
"y": -786.2607925554705
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1665.5944577875116,
|
||||||
|
"y": -788.1868881368207
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1668.4585833739093,
|
||||||
|
"y": -790.2551622957351
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1671.1968789650005,
|
||||||
|
"y": -792.4628902685038
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1673.8066197970752,
|
||||||
|
"y": -794.8073472914173
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1676.2850811064245,
|
||||||
|
"y": -797.2858086007661
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1678.6295381293378,
|
||||||
|
"y": -799.8955494328409
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1680.8372661021065,
|
||||||
|
"y": -802.633845023932
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1682.9055402610206,
|
||||||
|
"y": -805.4979706103297
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1684.8316358423713,
|
||||||
|
"y": -808.485201428325
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1686.612828082448,
|
||||||
|
"y": -811.5928127142079
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1688.2463922175418,
|
||||||
|
"y": -814.8180797042692
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1689.7296034839433,
|
||||||
|
"y": -818.1582776347993
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1691.0597371179429,
|
||||||
|
"y": -821.6106817420884
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1692.234068355831,
|
||||||
|
"y": -825.1725672624273
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1693.2498724338975,
|
||||||
|
"y": -828.8412094321063
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1694.1044245884339,
|
||||||
|
"y": -832.6138834874159
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1694.79500005573,
|
||||||
|
"y": -836.4878646646468
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1695.318874072077,
|
||||||
|
"y": -840.4604282000892
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1695.6733218737645,
|
||||||
|
"y": -844.5288493300338
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"angle": 6,
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1695.8556186970836,
|
||||||
|
"y": -848.6904032907711
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"passmarkClockwiseOpening": false,
|
||||||
|
"saAfter": 26.45669291338583,
|
||||||
|
"saBefore": 26.45669291338583,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VSAPoint",
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -888.6042394214635
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
{
|
||||||
|
"vector": [
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1722.3307086614172,
|
||||||
|
"y": -1058.6829795789438
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1223.4330708661416,
|
||||||
|
"y": -1058.6829795789438
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -724.5354330708659,
|
||||||
|
"y": -1058.6829795789438
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -724.535433070866,
|
||||||
|
"y": -888.6042394214635
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -724.535433070866,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -826.3529425092527,
|
||||||
|
"y": -748.7627171968269
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -845.4803149606298,
|
||||||
|
"y": -748.7617197364241
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1601.3858267716535,
|
||||||
|
"y": -748.7617197364241
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1620.283464566929,
|
||||||
|
"y": -748.7617197364241
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1722.3297112010146,
|
||||||
|
"y": -850.5792291748149
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1722.3307086614172,
|
||||||
|
"y": -888.6042394214635
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1722.3307086614172,
|
||||||
|
"y": -1058.6829795789438
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
240
src/test/ValentinaTest/share/shirtv2_seam_line/input.json
Normal file
240
src/test/ValentinaTest/share/shirtv2_seam_line/input.json
Normal file
|
@ -0,0 +1,240 @@
|
||||||
|
{
|
||||||
|
"testCase": {
|
||||||
|
"bd": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"id": 1045,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A215",
|
||||||
|
"type": 0,
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1046,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A213",
|
||||||
|
"type": 0,
|
||||||
|
"x": -1223.4330708661416,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1047,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A214",
|
||||||
|
"type": 0,
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1568,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A223",
|
||||||
|
"type": 0,
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -888.6042394214635
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1048,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A218",
|
||||||
|
"type": 0,
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"aScale": 5,
|
||||||
|
"angle1": 269.9,
|
||||||
|
"angle1Formula": "269.9",
|
||||||
|
"angle2": 0.1,
|
||||||
|
"angle2Formula": "0.1",
|
||||||
|
"c1Length": 45.35433070866141,
|
||||||
|
"c1LengthFormula": "Line_A217_A218*0.6",
|
||||||
|
"c2Length": 45.35433070866141,
|
||||||
|
"c2LengthFormula": "Line_A217_A218*0.6",
|
||||||
|
"id": 1049,
|
||||||
|
"p1": {
|
||||||
|
"id": 975,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A218",
|
||||||
|
"type": 0,
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
"p4": {
|
||||||
|
"id": 977,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A220",
|
||||||
|
"type": 0,
|
||||||
|
"x": -826.5826771653542,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
"type": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1050,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A220",
|
||||||
|
"type": 0,
|
||||||
|
"x": -826.5826771653542,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1569,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A276",
|
||||||
|
"type": 0,
|
||||||
|
"x": -845.4803149606298,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1570,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A277",
|
||||||
|
"type": 0,
|
||||||
|
"x": -1601.3858267716535,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1051,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A221",
|
||||||
|
"type": 0,
|
||||||
|
"x": -1620.283464566929,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"aScale": 5,
|
||||||
|
"angle1": 179.9,
|
||||||
|
"angle1Formula": "179.9",
|
||||||
|
"angle2": 270.1,
|
||||||
|
"angle2Formula": "270.1",
|
||||||
|
"c1Length": 45.35433070866141,
|
||||||
|
"c1LengthFormula": "Line_A216_A219*0.6",
|
||||||
|
"c2Length": 45.35433070866141,
|
||||||
|
"c2LengthFormula": "Line_A216_A219*0.6",
|
||||||
|
"id": 1052,
|
||||||
|
"p1": {
|
||||||
|
"id": 983,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A221",
|
||||||
|
"type": 0,
|
||||||
|
"x": -1620.283464566929,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
"p4": {
|
||||||
|
"id": 976,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A219",
|
||||||
|
"type": 0,
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
"type": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1053,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A219",
|
||||||
|
"type": 0,
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1571,
|
||||||
|
"mx": 9.999987401574804,
|
||||||
|
"my": 15,
|
||||||
|
"name": "A222",
|
||||||
|
"type": 0,
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -888.6042394214635
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"piece": {
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"id": 1045,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1046,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1047,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1568,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1048,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1049,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 29
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1050,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1569,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1570,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1051,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1052,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 29
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1053,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1571,
|
||||||
|
"reverse": false,
|
||||||
|
"type": 26
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"saWidth": 1,
|
||||||
|
"seamAllowance": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
80
src/test/ValentinaTest/share/shirtv2_seam_line/output.json
Normal file
80
src/test/ValentinaTest/share/shirtv2_seam_line/output.json
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
{
|
||||||
|
"vector": [
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1223.4330708661416,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -888.6042394214635
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -750.9921259842519,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -826.5826771653542,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -845.4803149606298,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1601.3858267716535,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1620.283464566929,
|
||||||
|
"y": -775.2184126498099
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"curvePoint": true,
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -850.8089638309123
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -888.6042394214635
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"turnPoint": true,
|
||||||
|
"type": "VLayoutPoint",
|
||||||
|
"x": -1695.8740157480315,
|
||||||
|
"y": -1001.9900661931171
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -212,5 +212,9 @@
|
||||||
<file>full_seam_allowance_path_blazer_for_women_with_one_button_case_3/output.json</file>
|
<file>full_seam_allowance_path_blazer_for_women_with_one_button_case_3/output.json</file>
|
||||||
<file>full_seam_allowance_path_blazer_for_women_with_one_button_case_4/input.json</file>
|
<file>full_seam_allowance_path_blazer_for_women_with_one_button_case_4/input.json</file>
|
||||||
<file>full_seam_allowance_path_blazer_for_women_with_one_button_case_4/output.json</file>
|
<file>full_seam_allowance_path_blazer_for_women_with_one_button_case_4/output.json</file>
|
||||||
|
<file>shirtv2_seam_line/input.json</file>
|
||||||
|
<file>shirtv2_seam_line/output.json</file>
|
||||||
|
<file>shirtv2_seam_allowance_line/input.json</file>
|
||||||
|
<file>shirtv2_seam_allowance_line/output.json</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
|
@ -1433,6 +1433,50 @@ void TST_VAbstractPiece::TestFullSeamAllowancePath() const
|
||||||
ComparePaths(res, expected);
|
ComparePaths(res, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void TST_VAbstractPiece::TestSeamLineTurnPoints_data() const
|
||||||
|
{
|
||||||
|
QTest::addColumn<QVector<VSAPoint>>("points");
|
||||||
|
QTest::addColumn<qreal>("width");
|
||||||
|
QTest::addColumn<QVector<QPointF>>("turnPoints");
|
||||||
|
|
||||||
|
auto ASSERT_TEST_CASE = [](const char *title, const QString &input, const QString &output, qreal width)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
QVector<VSAPoint> const inputPoints = AbstractTest::VectorFromJson<VSAPoint>(input);
|
||||||
|
QVector<VLayoutPoint> const turnPoints = AbstractTest::VectorFromJson<VLayoutPoint>(output);
|
||||||
|
QVector<QPointF> outputPoints;
|
||||||
|
CastTo(turnPoints, outputPoints);
|
||||||
|
QTest::newRow(title) << inputPoints << width << outputPoints;
|
||||||
|
}
|
||||||
|
catch (const VException &e)
|
||||||
|
{
|
||||||
|
QFAIL(qUtf8Printable(e.ErrorMessage()));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// See file valentina_private_collection/bugs/shirtv2/shirtv2.val
|
||||||
|
ASSERT_TEST_CASE("fabric_cuff_L", QStringLiteral("://shirtv2_seam_allowance_line/input.json"),
|
||||||
|
QStringLiteral("://shirtv2_seam_allowance_line/output.json"),
|
||||||
|
37.795275590551185 /*seam allowance width*/);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void TST_VAbstractPiece::TestSeamLineTurnPoints() const
|
||||||
|
{
|
||||||
|
QFETCH(QVector<VSAPoint>, points);
|
||||||
|
QFETCH(qreal, width);
|
||||||
|
QFETCH(QVector<QPointF>, turnPoints);
|
||||||
|
|
||||||
|
QVector<VLayoutPoint> const ekv = VAbstractPiece::Equidistant(points, width, QString());
|
||||||
|
QVector<QPointF> tPoints;
|
||||||
|
CastTo(TurnPointList(ekv), tPoints); // Take result
|
||||||
|
|
||||||
|
// Begin comparison
|
||||||
|
ComparePaths(tPoints, turnPoints);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void TST_VAbstractPiece::Case3() const
|
void TST_VAbstractPiece::Case3() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -70,6 +70,8 @@ private slots:
|
||||||
void TestFullSeamPath() const;
|
void TestFullSeamPath() const;
|
||||||
void TestFullSeamAllowancePath_data() const;
|
void TestFullSeamAllowancePath_data() const;
|
||||||
void TestFullSeamAllowancePath() const;
|
void TestFullSeamAllowancePath() const;
|
||||||
|
void TestSeamLineTurnPoints_data() const;
|
||||||
|
void TestSeamLineTurnPoints() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
auto InputPointsCase3() const -> QVector<VSAPoint>;
|
auto InputPointsCase3() const -> QVector<VSAPoint>;
|
||||||
|
|
|
@ -27,17 +27,17 @@
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
#include "tst_vpiece.h"
|
#include "tst_vpiece.h"
|
||||||
#include "../vpatterndb/vcontainer.h"
|
|
||||||
#include "../vpatterndb/vpiece.h"
|
|
||||||
#include "../vpatterndb/vpassmark.h"
|
|
||||||
#include "../vmisc/vabstractvalapplication.h"
|
#include "../vmisc/vabstractvalapplication.h"
|
||||||
|
#include "../vpatterndb/vcontainer.h"
|
||||||
#include <QtTest>
|
#include "../vpatterndb/vpassmark.h"
|
||||||
#include "../vpatterndb/vpiece.h"
|
#include "../vpatterndb/vpiece.h"
|
||||||
|
|
||||||
|
#include "../vpatterndb/vpiece.h"
|
||||||
|
#include <QtTest>
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
TST_VPiece::TST_VPiece(QObject *parent)
|
TST_VPiece::TST_VPiece(QObject *parent)
|
||||||
:AbstractTest(parent)
|
: AbstractTest(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,22 +99,19 @@ void TST_VPiece::TestSAPassmark_data()
|
||||||
};
|
};
|
||||||
|
|
||||||
// See file src/app/share/collection/bugs/Issue_#924.val
|
// See file src/app/share/collection/bugs/Issue_#924.val
|
||||||
ASSERT_TEST_CASE("Test 1.",
|
ASSERT_TEST_CASE("Test 1.", QStringLiteral("://Issue_924_Test_1/passmarkData.json"),
|
||||||
QStringLiteral("://Issue_924_Test_1/passmarkData.json"),
|
|
||||||
QStringLiteral("://Issue_924_Test_1/seamAllowance.json"),
|
QStringLiteral("://Issue_924_Test_1/seamAllowance.json"),
|
||||||
QStringLiteral("://Issue_924_Test_1/rotatedSeamAllowance.json"),
|
QStringLiteral("://Issue_924_Test_1/rotatedSeamAllowance.json"),
|
||||||
QStringLiteral("://Issue_924_Test_1/passmarkShape.json"));
|
QStringLiteral("://Issue_924_Test_1/passmarkShape.json"));
|
||||||
|
|
||||||
// See file src/app/share/collection/bugs/Issue_#924.val
|
// See file src/app/share/collection/bugs/Issue_#924.val
|
||||||
ASSERT_TEST_CASE("Test 2.",
|
ASSERT_TEST_CASE("Test 2.", QStringLiteral("://Issue_924_Test_2/passmarkData.json"),
|
||||||
QStringLiteral("://Issue_924_Test_2/passmarkData.json"),
|
|
||||||
QStringLiteral("://Issue_924_Test_2/seamAllowance.json"),
|
QStringLiteral("://Issue_924_Test_2/seamAllowance.json"),
|
||||||
QStringLiteral("://Issue_924_Test_2/rotatedSeamAllowance.json"),
|
QStringLiteral("://Issue_924_Test_2/rotatedSeamAllowance.json"),
|
||||||
QStringLiteral("://Issue_924_Test_2/passmarkShape.json"));
|
QStringLiteral("://Issue_924_Test_2/passmarkShape.json"));
|
||||||
|
|
||||||
// See file src/app/share/collection/bugs/incorrect_notch.val
|
// See file src/app/share/collection/bugs/incorrect_notch.val
|
||||||
ASSERT_TEST_CASE("Piece.",
|
ASSERT_TEST_CASE("Piece.", QStringLiteral("://incorrect_notch/passmarkData.json"),
|
||||||
QStringLiteral("://incorrect_notch/passmarkData.json"),
|
|
||||||
QStringLiteral("://incorrect_notch/seamAllowance.json"),
|
QStringLiteral("://incorrect_notch/seamAllowance.json"),
|
||||||
QStringLiteral("://incorrect_notch/rotatedSeamAllowance.json"),
|
QStringLiteral("://incorrect_notch/rotatedSeamAllowance.json"),
|
||||||
QStringLiteral("://incorrect_notch/passmarkShape.json"));
|
QStringLiteral("://incorrect_notch/passmarkShape.json"));
|
||||||
|
@ -132,3 +129,33 @@ void TST_VPiece::TestSAPassmark()
|
||||||
|
|
||||||
CompareLinesDistance(passmark.SAPassmark(seamAllowance, rotatedSeamAllowance, PassmarkSide::All), expectedResult);
|
CompareLinesDistance(passmark.SAPassmark(seamAllowance, rotatedSeamAllowance, PassmarkSide::All), expectedResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void TST_VPiece::TestSeamLineTurnPoints()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// See file valentina_private_collection/bugs/shirtv2.val
|
||||||
|
const Unit unit = Unit::Cm;
|
||||||
|
QSharedPointer<VContainer> data(new VContainer(nullptr, &unit, VContainer::UniqueNamespace()));
|
||||||
|
VAbstractValApplication::VApp()->SetPatternUnits(unit);
|
||||||
|
|
||||||
|
VPiece detail;
|
||||||
|
AbstractTest::PieceFromJson(QStringLiteral("://shirtv2_seam_line/input.json"), detail, data);
|
||||||
|
|
||||||
|
QVector<VLayoutPoint> const seamLine = detail.MainPathPoints(data.data());
|
||||||
|
QVector<QPointF> pointsEkv;
|
||||||
|
CastTo(TurnPointList(seamLine), pointsEkv);
|
||||||
|
QVector<VLayoutPoint> const turnPoints =
|
||||||
|
AbstractTest::VectorFromJson<VLayoutPoint>(QStringLiteral("://shirtv2_seam_line/output.json"));
|
||||||
|
QVector<QPointF> origPoints;
|
||||||
|
CastTo(turnPoints, origPoints);
|
||||||
|
|
||||||
|
// Begin comparison
|
||||||
|
ComparePaths(pointsEkv, origPoints);
|
||||||
|
}
|
||||||
|
catch (const VException &e)
|
||||||
|
{
|
||||||
|
QFAIL(qUtf8Printable(e.ErrorMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -42,6 +42,7 @@ private slots:
|
||||||
void Issue620();
|
void Issue620();
|
||||||
void TestSAPassmark_data();
|
void TestSAPassmark_data();
|
||||||
void TestSAPassmark();
|
void TestSAPassmark();
|
||||||
|
void TestSeamLineTurnPoints();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY_MOVE(TST_VPiece) // NOLINT
|
Q_DISABLE_COPY_MOVE(TST_VPiece) // NOLINT
|
||||||
|
|
Loading…
Reference in a new issue