Additional checkings.
--HG-- branch : develop
This commit is contained in:
parent
d9a9df14f6
commit
8c5ea079d7
|
@ -308,7 +308,7 @@ VDetail VDetail::RemoveEdge(const quint32 &index) const
|
||||||
int j2 = this->indexOfNode(p2.getId());
|
int j2 = this->indexOfNode(p2.getId());
|
||||||
if (j2 == 0)
|
if (j2 == 0)
|
||||||
{
|
{
|
||||||
j2 = this->CountNode()-1;
|
j2 = this->CountNode();
|
||||||
}
|
}
|
||||||
for (int j=j1; j<j2; ++j)
|
for (int j=j1; j<j2; ++j)
|
||||||
{// Add "segment" except last point. Inside can be curves too.
|
{// Add "segment" except last point. Inside can be curves too.
|
||||||
|
|
|
@ -202,6 +202,7 @@ void VToolUnionDetails::AddToNewDetail(QObject *tool, VPattern *doc, VContainer
|
||||||
path->setMode(Draw::Modeling);
|
path->setMode(Draw::Modeling);
|
||||||
const QSharedPointer<VSplinePath> splinePath = data->GeometricObject<VSplinePath>(det.at(i).getId());
|
const QSharedPointer<VSplinePath> splinePath = data->GeometricObject<VSplinePath>(det.at(i).getId());
|
||||||
qint32 k = splinePath->getMaxCountPoints();
|
qint32 k = splinePath->getMaxCountPoints();
|
||||||
|
SCASSERT (k >= 3)
|
||||||
for (qint32 i = 1; i <= splinePath->Count(); ++i)
|
for (qint32 i = 1; i <= splinePath->Count(); ++i)
|
||||||
{
|
{
|
||||||
VSpline spline(splinePath->at(i-1).P(), splinePath->at(i).P(),
|
VSpline spline(splinePath->at(i-1).P(), splinePath->at(i).P(),
|
||||||
|
@ -209,22 +210,18 @@ void VToolUnionDetails::AddToNewDetail(QObject *tool, VPattern *doc, VContainer
|
||||||
splinePath->at(i).KAsm1(), splinePath->GetKCurve());
|
splinePath->at(i).KAsm1(), splinePath->GetKCurve());
|
||||||
|
|
||||||
VPointF *p1 = new VPointF(spline.GetP1());
|
VPointF *p1 = new VPointF(spline.GetP1());
|
||||||
BiasRotatePoint(p1, dx, dy, data->GeometricObject<VPointF>(pRotate)->toQPointF(),
|
BiasRotatePoint(p1, dx, dy, data->GeometricObject<VPointF>(pRotate)->toQPointF(), angle);
|
||||||
angle);
|
|
||||||
//quint32 idP1 = data->AddGObject(p1);
|
//quint32 idP1 = data->AddGObject(p1);
|
||||||
--k;
|
--k;
|
||||||
|
|
||||||
VPointF p2 = VPointF(spline.GetP2());
|
VPointF p2 = VPointF(spline.GetP2());
|
||||||
BiasRotatePoint(&p2, dx, dy, data->GeometricObject<VPointF>(pRotate)->toQPointF(),
|
BiasRotatePoint(&p2, dx, dy, data->GeometricObject<VPointF>(pRotate)->toQPointF(), angle);
|
||||||
angle);
|
|
||||||
|
|
||||||
VPointF p3 = VPointF(spline.GetP3());
|
VPointF p3 = VPointF(spline.GetP3());
|
||||||
BiasRotatePoint(&p3, dx, dy, data->GeometricObject<VPointF>(pRotate)->toQPointF(),
|
BiasRotatePoint(&p3, dx, dy, data->GeometricObject<VPointF>(pRotate)->toQPointF(), angle);
|
||||||
angle);
|
|
||||||
|
|
||||||
VPointF *p4 = new VPointF(spline.GetP4());
|
VPointF *p4 = new VPointF(spline.GetP4());
|
||||||
BiasRotatePoint(p4, dx, dy, data->GeometricObject<VPointF>(pRotate)->toQPointF(),
|
BiasRotatePoint(p4, dx, dy, data->GeometricObject<VPointF>(pRotate)->toQPointF(), angle);
|
||||||
angle);
|
|
||||||
//quint32 idP4 = data->AddGObject(p4);
|
//quint32 idP4 = data->AddGObject(p4);
|
||||||
--k;
|
--k;
|
||||||
|
|
||||||
|
@ -595,7 +592,7 @@ VToolUnionDetails* VToolUnionDetails::Create(const quint32 _id, const VDetail &d
|
||||||
det1p1.getId(), angle);
|
det1p1.getId(), angle);
|
||||||
++pointsD2;
|
++pointsD2;
|
||||||
++j;
|
++j;
|
||||||
} while (pointsD2 <= countNodeD2-skip);
|
} while (pointsD2 < countNodeD2-skip);
|
||||||
}
|
}
|
||||||
} while (i < countNodeD1);
|
} while (i < countNodeD1);
|
||||||
|
|
||||||
|
@ -638,7 +635,7 @@ VToolUnionDetails* VToolUnionDetails::Create(const quint32 _id, const VDetail &d
|
||||||
UpdatePoints(id, data, d2.RemoveEdge(indexD2), j, idCount, dx, dy, det1p1.getId(), angle);
|
UpdatePoints(id, data, d2.RemoveEdge(indexD2), j, idCount, dx, dy, det1p1.getId(), angle);
|
||||||
++pointsD2;
|
++pointsD2;
|
||||||
++j;
|
++j;
|
||||||
} while (pointsD2 <= countNodeD2-skip);
|
} while (pointsD2 < countNodeD2-skip);
|
||||||
}
|
}
|
||||||
} while (i<countNodeD1);
|
} while (i<countNodeD1);
|
||||||
}
|
}
|
||||||
|
@ -664,6 +661,7 @@ void VToolUnionDetails::FindIndexJ(const qint32 &pointsD2, const VDetail &d2, co
|
||||||
VNodeDetail node2;
|
VNodeDetail node2;
|
||||||
d2.NodeOnEdge(indexD2, node1, node2);
|
d2.NodeOnEdge(indexD2, node1, node2);
|
||||||
const int k = d2.RemoveEdge(indexD2).indexOfNode(node2.getId());
|
const int k = d2.RemoveEdge(indexD2).indexOfNode(node2.getId());
|
||||||
|
SCASSERT(k != -1)
|
||||||
if (k == d2.RemoveEdge(indexD2).CountNode()-1)
|
if (k == d2.RemoveEdge(indexD2).CountNode()-1)
|
||||||
{//We have last node in detail, we wil begin from 0
|
{//We have last node in detail, we wil begin from 0
|
||||||
j = 0;
|
j = 0;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user