It is better to not allow user to set seam allowance width to 0. 0 seam
allowance creates intersections with a main path. --HG-- branch : develop
This commit is contained in:
parent
57ae6e82a0
commit
7f5ec1c9a1
|
@ -53,6 +53,7 @@ const qreal maxL = 2.5;
|
||||||
|
|
||||||
const qreal VSAPoint::passmarkFactor = 0.5;
|
const qreal VSAPoint::passmarkFactor = 0.5;
|
||||||
const qreal VSAPoint::maxPassmarkLength = (10/*mm*/ / 25.4) * PrintDPI;
|
const qreal VSAPoint::maxPassmarkLength = (10/*mm*/ / 25.4) * PrintDPI;
|
||||||
|
const qreal VSAPoint::minSAWidth = ToPixel(0.01, Unit::Mm);
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
@ -1004,6 +1005,7 @@ QVector<QPointF> VAbstractPiece::Equidistant(QVector<VSAPoint> points, qreal wid
|
||||||
qDebug()<<"Width < 0.";
|
qDebug()<<"Width < 0.";
|
||||||
return QVector<QPointF>();
|
return QVector<QPointF>();
|
||||||
}
|
}
|
||||||
|
width = qMax(width, VSAPoint::minSAWidth);
|
||||||
|
|
||||||
// DumpVector(points, QStringLiteral("input.json.XXXXXX")); // Uncomment for dumping test data
|
// DumpVector(points, QStringLiteral("input.json.XXXXXX")); // Uncomment for dumping test data
|
||||||
|
|
||||||
|
@ -1256,6 +1258,8 @@ QVector<QPointF> VAbstractPiece::EkvPoint(QVector<QPointF> points, const VSAPoin
|
||||||
return QVector<QPointF>();
|
return QVector<QPointF>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
width = qMax(width, VSAPoint::minSAWidth);
|
||||||
|
|
||||||
if (p2Line1 != p2Line2)
|
if (p2Line1 != p2Line2)
|
||||||
{
|
{
|
||||||
qDebug()<<"Last points of two lines must be equal.";
|
qDebug()<<"Last points of two lines must be equal.";
|
||||||
|
@ -1417,21 +1421,8 @@ QT_WARNING_POP
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QLineF VAbstractPiece::ParallelLine(const VSAPoint &p1, const VSAPoint &p2, qreal width)
|
QLineF VAbstractPiece::ParallelLine(const VSAPoint &p1, const VSAPoint &p2, qreal width)
|
||||||
{
|
{
|
||||||
qreal w1 = p1.GetSAAfter();
|
return QLineF(SingleParallelPoint(p1, p2, 90, p1.GetSAAfter(width)),
|
||||||
if (w1 < 0)
|
SingleParallelPoint(p2, p1, -90, p2.GetSABefore(width)));
|
||||||
{
|
|
||||||
w1 = width;
|
|
||||||
}
|
|
||||||
|
|
||||||
qreal w2 = p2.GetSABefore();
|
|
||||||
if (w2 < 0)
|
|
||||||
{
|
|
||||||
w2 = width;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QLineF paralel = QLineF(SingleParallelPoint(p1, p2, 90, w1),
|
|
||||||
SingleParallelPoint(p2, p1, -90, w2));
|
|
||||||
return paralel;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1576,7 +1567,7 @@ qreal VSAPoint::GetSABefore(qreal width) const
|
||||||
{
|
{
|
||||||
return width;
|
return width;
|
||||||
}
|
}
|
||||||
return m_before;
|
return qMax(m_before, minSAWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1586,25 +1577,13 @@ qreal VSAPoint::GetSAAfter(qreal width) const
|
||||||
{
|
{
|
||||||
return width;
|
return width;
|
||||||
}
|
}
|
||||||
return m_after;
|
return qMax(m_after, minSAWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
qreal VSAPoint::MaxLocalSA(qreal width) const
|
qreal VSAPoint::MaxLocalSA(qreal width) const
|
||||||
{
|
{
|
||||||
qreal w1 = GetSAAfter();
|
return qMax(GetSAAfter(width), GetSABefore(width));
|
||||||
if (w1 < 0)
|
|
||||||
{
|
|
||||||
w1 = width;
|
|
||||||
}
|
|
||||||
|
|
||||||
qreal w2 = GetSABefore();
|
|
||||||
if (w2 < 0)
|
|
||||||
{
|
|
||||||
w2 = width;
|
|
||||||
}
|
|
||||||
|
|
||||||
return qMax(w1, w2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -71,6 +71,7 @@ public:
|
||||||
|
|
||||||
static const qreal passmarkFactor;
|
static const qreal passmarkFactor;
|
||||||
static const qreal maxPassmarkLength;
|
static const qreal maxPassmarkLength;
|
||||||
|
static const qreal minSAWidth;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
qreal m_before{-1};
|
qreal m_before{-1};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user