Generate seam allowance only one time to use it in creating notches.
--HG-- branch : release
This commit is contained in:
parent
cead9092e3
commit
135cea212d
|
@ -439,6 +439,10 @@ QVector<QLineF> VPiece::PassmarksLines(const VContainer *data, const QVector<QPo
|
||||||
|
|
||||||
QVector<QLineF> passmarks;
|
QVector<QLineF> passmarks;
|
||||||
|
|
||||||
|
QVector<QPointF> seamPoints;
|
||||||
|
seamAllowance.isEmpty() && not IsSeamAllowanceBuiltIn() ? seamPoints = SeamAllowancePoints(data) :
|
||||||
|
seamPoints = seamAllowance;
|
||||||
|
|
||||||
for (int i = 0; i< unitedPath.size(); ++i)
|
for (int i = 0; i< unitedPath.size(); ++i)
|
||||||
{
|
{
|
||||||
const VPieceNode &node = unitedPath.at(i);
|
const VPieceNode &node = unitedPath.at(i);
|
||||||
|
@ -450,7 +454,7 @@ QVector<QLineF> VPiece::PassmarksLines(const VContainer *data, const QVector<QPo
|
||||||
const int previousIndex = VPiecePath::FindInLoopNotExcludedUp(i, unitedPath);
|
const int previousIndex = VPiecePath::FindInLoopNotExcludedUp(i, unitedPath);
|
||||||
const int nextIndex = VPiecePath::FindInLoopNotExcludedDown(i, unitedPath);
|
const int nextIndex = VPiecePath::FindInLoopNotExcludedDown(i, unitedPath);
|
||||||
|
|
||||||
passmarks += CreatePassmark(unitedPath, previousIndex, i, nextIndex, data, seamAllowance);
|
passmarks += CreatePassmark(unitedPath, previousIndex, i, nextIndex, data, seamPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
return passmarks;
|
return passmarks;
|
||||||
|
@ -1238,6 +1242,11 @@ QVector<QLineF> VPiece::SAPassmark(const QVector<VPieceNode> &path, VSAPoint &pr
|
||||||
const VSAPoint &passmarkSAPoint, VSAPoint &nextSAPoint, const VContainer *data,
|
const VSAPoint &passmarkSAPoint, VSAPoint &nextSAPoint, const VContainer *data,
|
||||||
int passmarkIndex, const QVector<QPointF> &seamAllowance) const
|
int passmarkIndex, const QVector<QPointF> &seamAllowance) const
|
||||||
{
|
{
|
||||||
|
if (seamAllowance.size() < 2)
|
||||||
|
{
|
||||||
|
return QVector<QLineF>(); // Something wrong
|
||||||
|
}
|
||||||
|
|
||||||
QPointF seamPassmarkSAPoint;
|
QPointF seamPassmarkSAPoint;
|
||||||
if (not GetSeamPassmarkSAPoint(previousSAPoint, passmarkSAPoint, nextSAPoint, data, seamPassmarkSAPoint))
|
if (not GetSeamPassmarkSAPoint(previousSAPoint, passmarkSAPoint, nextSAPoint, data, seamPassmarkSAPoint))
|
||||||
{
|
{
|
||||||
|
@ -1290,14 +1299,11 @@ QVector<QLineF> VPiece::SAPassmark(const QVector<VPieceNode> &path, VSAPoint &pr
|
||||||
|| node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyLeft
|
|| node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyLeft
|
||||||
|| node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyRight)
|
|| node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyRight)
|
||||||
{
|
{
|
||||||
QVector<QPointF> seamPoints;
|
|
||||||
seamAllowance.isEmpty() ? seamPoints = SeamAllowancePoints(data) : seamPoints = seamAllowance;
|
|
||||||
|
|
||||||
if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection
|
if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection
|
||||||
|| node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyRight)
|
|| node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyRight)
|
||||||
{
|
{
|
||||||
// first passmark
|
// first passmark
|
||||||
PassmarkIntersection(QLineF(previousSAPoint, passmarkSAPoint), seamPoints,
|
PassmarkIntersection(QLineF(previousSAPoint, passmarkSAPoint), seamAllowance,
|
||||||
passmarkSAPoint.GetSAAfter(width));
|
passmarkSAPoint.GetSAAfter(width));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1305,7 +1311,7 @@ QVector<QLineF> VPiece::SAPassmark(const QVector<VPieceNode> &path, VSAPoint &pr
|
||||||
|| node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyLeft)
|
|| node.GetPassmarkAngleType() == PassmarkAngleType::IntersectionOnlyLeft)
|
||||||
{
|
{
|
||||||
// second passmark
|
// second passmark
|
||||||
PassmarkIntersection(QLineF(nextSAPoint, passmarkSAPoint), seamPoints,
|
PassmarkIntersection(QLineF(nextSAPoint, passmarkSAPoint), seamAllowance,
|
||||||
passmarkSAPoint.GetSABefore(width));
|
passmarkSAPoint.GetSABefore(width));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1313,16 +1319,13 @@ QVector<QLineF> VPiece::SAPassmark(const QVector<VPieceNode> &path, VSAPoint &pr
|
||||||
|| node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2OnlyLeft
|
|| node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2OnlyLeft
|
||||||
|| node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2OnlyRight)
|
|| node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2OnlyRight)
|
||||||
{
|
{
|
||||||
QVector<QPointF> seamPoints;
|
|
||||||
seamAllowance.isEmpty() ? seamPoints = SeamAllowancePoints(data) : seamPoints = seamAllowance;
|
|
||||||
|
|
||||||
if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2
|
if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2
|
||||||
|| node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2OnlyRight)
|
|| node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2OnlyRight)
|
||||||
{
|
{
|
||||||
// first passmark
|
// first passmark
|
||||||
QLineF line(passmarkSAPoint, nextSAPoint);
|
QLineF line(passmarkSAPoint, nextSAPoint);
|
||||||
line.setAngle(line.angle()+90);
|
line.setAngle(line.angle()+90);
|
||||||
PassmarkIntersection(line, seamPoints, passmarkSAPoint.GetSAAfter(width));
|
PassmarkIntersection(line, seamAllowance, passmarkSAPoint.GetSAAfter(width));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2
|
if (node.GetPassmarkAngleType() == PassmarkAngleType::Intersection2
|
||||||
|
@ -1331,7 +1334,7 @@ QVector<QLineF> VPiece::SAPassmark(const QVector<VPieceNode> &path, VSAPoint &pr
|
||||||
// second passmark
|
// second passmark
|
||||||
QLineF line(passmarkSAPoint, previousSAPoint);
|
QLineF line(passmarkSAPoint, previousSAPoint);
|
||||||
line.setAngle(line.angle()-90);
|
line.setAngle(line.angle()-90);
|
||||||
PassmarkIntersection(line, seamPoints, passmarkSAPoint.GetSABefore(width));
|
PassmarkIntersection(line, seamAllowance, passmarkSAPoint.GetSABefore(width));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user