For tool Cubic Bezier curve show connection to control points.

--HG--
branch : feature
This commit is contained in:
Roman Telezhynskyi 2016-03-17 16:26:25 +02:00
parent 2c4312046c
commit 037e91484a
2 changed files with 10 additions and 7 deletions

View File

@ -39,14 +39,16 @@ VisToolCubicBezier::VisToolCubicBezier(const VContainer *data, QGraphicsItem *pa
point2(nullptr),
point3(nullptr),
point4(nullptr),
helpLine(nullptr)
helpLine1(nullptr),
helpLine2(nullptr)
{
helpLine1 = InitItem<QGraphicsLineItem>(mainColor, this);
helpLine2 = InitItem<QGraphicsLineItem>(mainColor, this);
point1 = InitPoint(supportColor, this);
point2 = InitPoint(supportColor, this); //-V656
point3 = InitPoint(supportColor, this); //-V656
point4 = InitPoint(supportColor, this); //-V656
helpLine = InitItem<QGraphicsLineItem>(mainColor, this);
}
//---------------------------------------------------------------------------------------------------------------------
@ -65,14 +67,13 @@ void VisToolCubicBezier::RefreshGeometry()
if (object2Id <= NULL_ID)
{
const QLineF line = QLineF(first->toQPointF(), Visualization::scenePos);
DrawLine(helpLine, line, mainColor, lineStyle);
DrawLine(helpLine1, line, mainColor, Qt::DashLine);
}
else
{
helpLine->setVisible(false);
const auto second = Visualization::data->GeometricObject<VPointF>(object2Id);
DrawPoint(point2, second->toQPointF(), supportColor);
DrawLine(helpLine1, QLineF(first->toQPointF(), second->toQPointF()), mainColor, Qt::DashLine);
if (object3Id <= NULL_ID)
{
@ -94,6 +95,7 @@ void VisToolCubicBezier::RefreshGeometry()
{
const auto fourth = Visualization::data->GeometricObject<VPointF>(object4Id);
DrawPoint(point4, fourth->toQPointF(), supportColor);
DrawLine(helpLine2, QLineF(fourth->toQPointF(), third->toQPointF()), mainColor, Qt::DashLine);
VCubicBezier spline(*first, *second, *third, *fourth);
DrawPath(this, spline.GetPath(PathDirection::Show), mainColor, Qt::SolidLine, Qt::RoundCap);

View File

@ -56,7 +56,8 @@ protected:
QGraphicsEllipseItem *point2;
QGraphicsEllipseItem *point3;
QGraphicsEllipseItem *point4;
QGraphicsLineItem *helpLine;
QGraphicsLineItem *helpLine1;
QGraphicsLineItem *helpLine2;
};
#endif // VISTOOLCUBICBEZIER_H