Fixed creation global contour.
--HG-- branch : feature
This commit is contained in:
parent
56aa09a639
commit
1d1ae1acb4
|
@ -99,6 +99,7 @@ void VLayoutGenerator::Generate()
|
||||||
|
|
||||||
VLayoutPaper paper(paperHeight, paperWidth);
|
VLayoutPaper paper(paperHeight, paperWidth);
|
||||||
paper.SetShift(shift);
|
paper.SetShift(shift);
|
||||||
|
paper.SetLayoutWidth(bank->GetLayoutWidth());
|
||||||
paper.SetPaperIndex(papers.count());
|
paper.SetPaperIndex(papers.count());
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
|
|
@ -164,6 +164,21 @@ void VLayoutPaper::SetWidth(int width)
|
||||||
d->paperWidth = width;
|
d->paperWidth = width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
qreal VLayoutPaper::GetLayoutWidth() const
|
||||||
|
{
|
||||||
|
return d->layoutWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VLayoutPaper::SetLayoutWidth(qreal width)
|
||||||
|
{
|
||||||
|
if (width >= 0)
|
||||||
|
{
|
||||||
|
d->layoutWidth = width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
unsigned int VLayoutPaper::GetShift() const
|
unsigned int VLayoutPaper::GetShift() const
|
||||||
{
|
{
|
||||||
|
@ -607,7 +622,7 @@ QVector<QPointF> VLayoutPaper::UniteWithContour(const VLayoutDetail &detail, int
|
||||||
{
|
{
|
||||||
if (j > nD)
|
if (j > nD)
|
||||||
{
|
{
|
||||||
j=0;
|
j=1;
|
||||||
}
|
}
|
||||||
const QVector<QPointF> points = CutEdge(detail.Edge(j));
|
const QVector<QPointF> points = CutEdge(detail.Edge(j));
|
||||||
for (int i = 0; i < points.size()-1; ++i)
|
for (int i = 0; i < points.size()-1; ++i)
|
||||||
|
@ -616,7 +631,7 @@ QVector<QPointF> VLayoutPaper::UniteWithContour(const VLayoutDetail &detail, int
|
||||||
}
|
}
|
||||||
++processedEdges;
|
++processedEdges;
|
||||||
++j;
|
++j;
|
||||||
}while (processedEdges < nD);
|
}while (processedEdges <= nD);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -643,7 +658,7 @@ QVector<QPointF> VLayoutPaper::UniteWithContour(const VLayoutDetail &detail, int
|
||||||
{
|
{
|
||||||
if (j > nD)
|
if (j > nD)
|
||||||
{
|
{
|
||||||
j=0;
|
j=1;
|
||||||
}
|
}
|
||||||
const QVector<QPointF> points = CutEdge(detail.Edge(j));
|
const QVector<QPointF> points = CutEdge(detail.Edge(j));
|
||||||
for (int i = 0; i < points.size()-1; ++i)
|
for (int i = 0; i < points.size()-1; ++i)
|
||||||
|
@ -652,7 +667,7 @@ QVector<QPointF> VLayoutPaper::UniteWithContour(const VLayoutDetail &detail, int
|
||||||
}
|
}
|
||||||
++processedEdges;
|
++processedEdges;
|
||||||
++j;
|
++j;
|
||||||
}while (processedEdges < nD);
|
}while (processedEdges <= nD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -665,7 +680,7 @@ QLineF VLayoutPaper::GlobalEdge(int i) const
|
||||||
if (d->details.isEmpty())
|
if (d->details.isEmpty())
|
||||||
{
|
{
|
||||||
// Because sheet is blank we have one global edge for all cases - Ox axis.
|
// Because sheet is blank we have one global edge for all cases - Ox axis.
|
||||||
const QLineF axis = QLineF(0, 0, d->paperWidth, 0);
|
const QLineF axis = QLineF(0, 0, d->paperWidth - d->layoutWidth/2, 0);
|
||||||
if (d->shift == 0)
|
if (d->shift == 0)
|
||||||
{
|
{
|
||||||
return axis;
|
return axis;
|
||||||
|
@ -831,8 +846,8 @@ void VLayoutPaper::DrawDebug(const VLayoutDetail &detail, int frame) const
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
paint.end();
|
paint.end();
|
||||||
const QString path = QDir::homePath()+QStringLiteral("/LayoutDebug/")+QString("%1_%2.png").arg(d->paperIndex)
|
const QString path = QDir::homePath()+QStringLiteral("/LayoutDebug/")+QString("%1_%2_%3.png").arg(d->paperIndex)
|
||||||
.arg(frame);
|
.arg(d->details.count()).arg(frame);
|
||||||
frameImage.save (path);
|
frameImage.save (path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,9 @@ public:
|
||||||
int GetWidth() const;
|
int GetWidth() const;
|
||||||
void SetWidth(int width);
|
void SetWidth(int width);
|
||||||
|
|
||||||
|
qreal GetLayoutWidth() const;
|
||||||
|
void SetLayoutWidth(qreal width);
|
||||||
|
|
||||||
unsigned int GetShift() const;
|
unsigned int GetShift() const;
|
||||||
void SetShift(unsigned int shift);
|
void SetShift(unsigned int shift);
|
||||||
|
|
||||||
|
|
|
@ -45,17 +45,18 @@ class VLayoutPaperData : public QSharedData
|
||||||
public:
|
public:
|
||||||
VLayoutPaperData()
|
VLayoutPaperData()
|
||||||
:details(QVector<VLayoutDetail>()), globalContour(QVector<QPointF>()), paperHeight(0), paperWidth(0), shift(0),
|
:details(QVector<VLayoutDetail>()), globalContour(QVector<QPointF>()), paperHeight(0), paperWidth(0), shift(0),
|
||||||
paperIndex(0), frame(0)
|
paperIndex(0), frame(0), layoutWidth(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
VLayoutPaperData(int height, int width)
|
VLayoutPaperData(int height, int width)
|
||||||
:details(QVector<VLayoutDetail>()), globalContour(QVector<QPointF>()), paperHeight(height), paperWidth(width),
|
:details(QVector<VLayoutDetail>()), globalContour(QVector<QPointF>()), paperHeight(height), paperWidth(width),
|
||||||
shift(0), paperIndex(0), frame(0)
|
shift(0), paperIndex(0), frame(0), layoutWidth(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
VLayoutPaperData(const VLayoutPaperData &paper)
|
VLayoutPaperData(const VLayoutPaperData &paper)
|
||||||
:QSharedData(paper), details(paper.details), globalContour(paper.globalContour), paperHeight(paper.paperHeight),
|
:QSharedData(paper), details(paper.details), globalContour(paper.globalContour), paperHeight(paper.paperHeight),
|
||||||
paperWidth(paper.paperWidth), shift(paper.shift), paperIndex(paper.paperIndex), frame(paper.frame)
|
paperWidth(paper.paperWidth), shift(paper.shift), paperIndex(paper.paperIndex), frame(paper.frame),
|
||||||
|
layoutWidth(paper.layoutWidth)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
~VLayoutPaperData() {}
|
~VLayoutPaperData() {}
|
||||||
|
@ -75,6 +76,7 @@ public:
|
||||||
unsigned int shift;
|
unsigned int shift;
|
||||||
quint32 paperIndex;
|
quint32 paperIndex;
|
||||||
quint32 frame;
|
quint32 frame;
|
||||||
|
qreal layoutWidth;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef Q_CC_GNU
|
#ifdef Q_CC_GNU
|
||||||
|
|
Loading…
Reference in New Issue
Block a user