diff --git a/container/vcontainer.cpp b/container/vcontainer.cpp index 947b84551..b9b6e4ccc 100644 --- a/container/vcontainer.cpp +++ b/container/vcontainer.cpp @@ -108,7 +108,17 @@ qreal VContainer::GetLine(const QString &name) const{ return GetObject(lengthLines, name); } -qreal VContainer::GetLineArc(const QString &name) const{ +qreal VContainer::GetLengthArc(const QString &name) const{ + Q_ASSERT(!name.isEmpty()); + return GetObject(lengthArcs, name); +} + +qreal VContainer::GetLengthSpline(const QString &name) const{ + Q_ASSERT(!name.isEmpty()); + return GetObject(lengthSplines, name); +} + +qreal VContainer::GetLineAngle(const QString &name) const{ Q_ASSERT(!name.isEmpty()); return GetObject(lineAngles, name); } @@ -562,6 +572,10 @@ qreal VContainer::FindVar(const QString &name, bool *ok)const{ *ok = true; return lineAngles.value(name); } + if(lengthSplines.contains(name)){ + *ok = true; + return lengthSplines.value(name); + } *ok = false; return 0; } @@ -778,7 +792,7 @@ void VContainer::AddLengthSpline(const qint64 &firstPointId, const qint64 &secon first = GetModelingPoint(firstPointId); second = GetModelingPoint(secondPointId); } - AddLengthSpline(nameLine, QLineF(first.toQPointF(), second.toQPointF()).length()); + AddLengthSpline(nameLine, toMM(QLineF(first.toQPointF(), second.toQPointF()).length())); } void VContainer::CreateManTableIGroup (){ diff --git a/container/vcontainer.h b/container/vcontainer.h index c7582b89d..ee2df1ba2 100644 --- a/container/vcontainer.h +++ b/container/vcontainer.h @@ -55,7 +55,9 @@ public: VStandartTableCell GetStandartTableCell(const QString& name) const; VIncrementTableRow GetIncrementTableRow(const QString& name) const; qreal GetLine(const QString &name) const; - qreal GetLineArc(const QString &name) const; + qreal GetLengthArc(const QString &name) const; + qreal GetLengthSpline(const QString &name) const; + qreal GetLineAngle(const QString &name) const; VSpline GetSpline(qint64 id) const; VSpline GetModelingSpline(qint64 id) const; VArc GetArc(qint64 id) const; diff --git a/dialogs/dialogalongline.cpp b/dialogs/dialogalongline.cpp index 4d522963a..3765cde10 100644 --- a/dialogs/dialogalongline.cpp +++ b/dialogs/dialogalongline.cpp @@ -33,6 +33,8 @@ DialogAlongLine::DialogAlongLine(const VContainer *data, Draw::Draws mode, QWidg radioButtonStandartTable = ui->radioButtonStandartTable; radioButtonIncrements = ui->radioButtonIncrements; radioButtonLengthLine = ui->radioButtonLengthLine; + radioButtonLengthArc = ui->radioButtonLengthArc; + radioButtonLengthCurve = ui->radioButtonLengthSpline; lineEditFormula = ui->lineEditFormula; labelEditFormula = ui->labelEditFormula; labelEditNamePoint = ui->labelEditNamePoint; @@ -56,6 +58,8 @@ DialogAlongLine::DialogAlongLine(const VContainer *data, Draw::Draws mode, QWidg connect(ui->radioButtonStandartTable, &QRadioButton::clicked, this, &DialogAlongLine::StandartTable); connect(ui->radioButtonIncrements, &QRadioButton::clicked, this, &DialogAlongLine::Increments); connect(ui->radioButtonLengthLine, &QRadioButton::clicked, this, &DialogAlongLine::LengthLines); + connect(ui->radioButtonLengthArc, &QRadioButton::clicked, this, &DialogAlongLine::LengthArcs); + connect(ui->radioButtonLengthSpline, &QRadioButton::clicked, this, &DialogAlongLine::LengthCurves); connect(ui->toolButtonEqual, &QPushButton::clicked, this, &DialogAlongLine::EvalFormula); connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogAlongLine::NamePointChanged); connect(ui->lineEditFormula, &QLineEdit::textChanged, this, &DialogAlongLine::FormulaChanged); diff --git a/dialogs/dialogalongline.ui b/dialogs/dialogalongline.ui index acfb90561..3030f22ba 100644 --- a/dialogs/dialogalongline.ui +++ b/dialogs/dialogalongline.ui @@ -302,7 +302,7 @@ - false + true Length of arcs @@ -312,7 +312,7 @@ - false + true Length of curves diff --git a/dialogs/dialogarc.cpp b/dialogs/dialogarc.cpp index 7e02eb74c..739e4e76e 100644 --- a/dialogs/dialogarc.cpp +++ b/dialogs/dialogarc.cpp @@ -52,6 +52,8 @@ DialogArc::DialogArc(const VContainer *data, Draw::Draws mode, QWidget *parent) radioButtonStandartTable = ui->radioButtonStandartTable; radioButtonIncrements = ui->radioButtonIncrements; radioButtonLengthLine = ui->radioButtonLengthLine; + radioButtonLengthArc = ui->radioButtonLengthArc; + radioButtonLengthCurve = ui->radioButtonLengthSpline; connect(ui->toolButtonPutHereRadius, &QPushButton::clicked, this, &DialogArc::PutRadius); connect(ui->toolButtonPutHereF1, &QPushButton::clicked, this, &DialogArc::PutF1); @@ -64,6 +66,8 @@ DialogArc::DialogArc(const VContainer *data, Draw::Draws mode, QWidget *parent) connect(ui->radioButtonIncrements, &QRadioButton::clicked, this, &DialogArc::Increments); connect(ui->radioButtonLengthLine, &QRadioButton::clicked, this, &DialogArc::LengthLines); connect(ui->radioButtonLineAngles, &QRadioButton::clicked, this, &DialogArc::LineAngles); + connect(ui->radioButtonLengthArc, &QRadioButton::clicked, this, &DialogArc::LengthArcs); + connect(ui->radioButtonLengthSpline, &QRadioButton::clicked, this, &DialogArc::LengthCurves); connect(ui->toolButtonEqualRadius, &QPushButton::clicked, this, &DialogArc::EvalRadius); connect(ui->toolButtonEqualF1, &QPushButton::clicked, this, &DialogArc::EvalF1); @@ -153,7 +157,7 @@ void DialogArc::ValChenged(int row){ } QListWidgetItem *item = ui->listWidget->item( row ); if(ui->radioButtonLineAngles->isChecked()){ - QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLineArc(item->text())) + QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLineAngle(item->text())) .arg(tr("Value angle of line.")); ui->labelDescription->setText(desc); return; diff --git a/dialogs/dialogarc.ui b/dialogs/dialogarc.ui index 3f08b5a41..65ab8d07b 100644 --- a/dialogs/dialogarc.ui +++ b/dialogs/dialogarc.ui @@ -482,7 +482,7 @@ - false + true Length of arcs @@ -492,7 +492,7 @@ - false + true Length of curves diff --git a/dialogs/dialogbisector.cpp b/dialogs/dialogbisector.cpp index 6f6e785ce..0296b71a3 100644 --- a/dialogs/dialogbisector.cpp +++ b/dialogs/dialogbisector.cpp @@ -33,6 +33,8 @@ DialogBisector::DialogBisector(const VContainer *data, Draw::Draws mode, QWidget radioButtonStandartTable = ui->radioButtonStandartTable; radioButtonIncrements = ui->radioButtonIncrements; radioButtonLengthLine = ui->radioButtonLengthLine; + radioButtonLengthArc = ui->radioButtonLengthArc; + radioButtonLengthCurve = ui->radioButtonLengthSpline; lineEditFormula = ui->lineEditFormula; labelEditFormula = ui->labelEditFormula; labelEditNamePoint = ui->labelEditNamePoint; @@ -57,6 +59,8 @@ DialogBisector::DialogBisector(const VContainer *data, Draw::Draws mode, QWidget connect(ui->radioButtonStandartTable, &QRadioButton::clicked, this, &DialogBisector::StandartTable); connect(ui->radioButtonIncrements, &QRadioButton::clicked, this, &DialogBisector::Increments); connect(ui->radioButtonLengthLine, &QRadioButton::clicked, this, &DialogBisector::LengthLines); + connect(ui->radioButtonLengthArc, &QRadioButton::clicked, this, &DialogBisector::LengthArcs); + connect(ui->radioButtonLengthSpline, &QRadioButton::clicked, this, &DialogBisector::LengthCurves); connect(ui->toolButtonEqual, &QPushButton::clicked, this, &DialogBisector::EvalFormula); connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogBisector::NamePointChanged); connect(ui->lineEditFormula, &QLineEdit::textChanged, this, &DialogBisector::FormulaChanged); diff --git a/dialogs/dialogbisector.ui b/dialogs/dialogbisector.ui index a4253118a..c33b41537 100644 --- a/dialogs/dialogbisector.ui +++ b/dialogs/dialogbisector.ui @@ -344,7 +344,7 @@ - false + true Length of arcs @@ -354,7 +354,7 @@ - false + true Length of curves diff --git a/dialogs/dialogendline.cpp b/dialogs/dialogendline.cpp index fc0530c0a..1251ce77a 100644 --- a/dialogs/dialogendline.cpp +++ b/dialogs/dialogendline.cpp @@ -38,6 +38,8 @@ DialogEndLine::DialogEndLine(const VContainer *data, Draw::Draws mode, QWidget * radioButtonStandartTable = ui->radioButtonStandartTable; radioButtonIncrements = ui->radioButtonIncrements; radioButtonLengthLine = ui->radioButtonLengthLine; + radioButtonLengthArc = ui->radioButtonLengthArc; + radioButtonLengthCurve = ui->radioButtonLengthSpline; lineEditFormula = ui->lineEditFormula; labelEditFormula = ui->labelEditFormula; labelEditNamePoint = ui->labelEditNamePoint; @@ -76,6 +78,8 @@ DialogEndLine::DialogEndLine(const VContainer *data, Draw::Draws mode, QWidget * connect(ui->radioButtonStandartTable, &QRadioButton::clicked, this, &DialogEndLine::StandartTable); connect(ui->radioButtonIncrements, &QRadioButton::clicked, this, &DialogEndLine::Increments); connect(ui->radioButtonLengthLine, &QRadioButton::clicked, this, &DialogEndLine::LengthLines); + connect(ui->radioButtonLengthArc, &QRadioButton::clicked, this, &DialogEndLine::LengthArcs); + connect(ui->radioButtonLengthSpline, &QRadioButton::clicked, this, &DialogEndLine::LengthCurves); connect(ui->toolButtonEqual, &QPushButton::clicked, this, &DialogEndLine::EvalFormula); connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogEndLine::NamePointChanged); connect(ui->lineEditFormula, &QLineEdit::textChanged, this, &DialogEndLine::FormulaChanged); diff --git a/dialogs/dialogendline.ui b/dialogs/dialogendline.ui index 2b4c079ee..ad99685ca 100644 --- a/dialogs/dialogendline.ui +++ b/dialogs/dialogendline.ui @@ -500,7 +500,7 @@ - false + true Length of arcs @@ -510,7 +510,7 @@ - false + true Length of curves diff --git a/dialogs/dialognormal.cpp b/dialogs/dialognormal.cpp index 11cb6805d..ef60bcb91 100644 --- a/dialogs/dialognormal.cpp +++ b/dialogs/dialognormal.cpp @@ -35,6 +35,8 @@ DialogNormal::DialogNormal(const VContainer *data, Draw::Draws mode, QWidget *pa radioButtonStandartTable = ui->radioButtonStandartTable; radioButtonIncrements = ui->radioButtonIncrements; radioButtonLengthLine = ui->radioButtonLengthLine; + radioButtonLengthArc = ui->radioButtonLengthArc; + radioButtonLengthCurve = ui->radioButtonLengthSpline; lineEditFormula = ui->lineEditFormula; labelEditFormula = ui->labelEditFormula; labelEditNamePoint = ui->labelEditNamePoint; @@ -74,6 +76,8 @@ DialogNormal::DialogNormal(const VContainer *data, Draw::Draws mode, QWidget *pa connect(ui->radioButtonStandartTable, &QRadioButton::clicked, this, &DialogNormal::StandartTable); connect(ui->radioButtonIncrements, &QRadioButton::clicked, this, &DialogNormal::Increments); connect(ui->radioButtonLengthLine, &QRadioButton::clicked, this, &DialogNormal::LengthLines); + connect(ui->radioButtonLengthArc, &QRadioButton::clicked, this, &DialogNormal::LengthArcs); + connect(ui->radioButtonLengthSpline, &QRadioButton::clicked, this, &DialogNormal::LengthCurves); connect(ui->toolButtonEqual, &QPushButton::clicked, this, &DialogNormal::EvalFormula); connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogNormal::NamePointChanged); connect(ui->lineEditFormula, &QLineEdit::textChanged, this, &DialogNormal::FormulaChanged); diff --git a/dialogs/dialognormal.ui b/dialogs/dialognormal.ui index 26d182650..2283dbe55 100644 --- a/dialogs/dialognormal.ui +++ b/dialogs/dialognormal.ui @@ -519,7 +519,7 @@ - false + true Length of arcs @@ -529,7 +529,7 @@ - false + true Length of curves diff --git a/dialogs/dialogpointofcontact.cpp b/dialogs/dialogpointofcontact.cpp index 67148bb50..21a03227f 100644 --- a/dialogs/dialogpointofcontact.cpp +++ b/dialogs/dialogpointofcontact.cpp @@ -32,6 +32,8 @@ DialogPointOfContact::DialogPointOfContact(const VContainer *data, Draw::Draws m radioButtonStandartTable = ui.radioButtonStandartTable; radioButtonIncrements = ui.radioButtonIncrements; radioButtonLengthLine = ui.radioButtonLengthLine; + radioButtonLengthArc = ui.radioButtonLengthArc; + radioButtonLengthCurve = ui.radioButtonLengthSpline; lineEditFormula = ui.lineEditFormula; labelEditFormula = ui.labelEditFormula; labelEditNamePoint = ui.labelEditNamePoint; @@ -55,6 +57,8 @@ DialogPointOfContact::DialogPointOfContact(const VContainer *data, Draw::Draws m connect(ui.radioButtonStandartTable, &QRadioButton::clicked, this, &DialogPointOfContact::StandartTable); connect(ui.radioButtonIncrements, &QRadioButton::clicked, this, &DialogPointOfContact::Increments); connect(ui.radioButtonLengthLine, &QRadioButton::clicked, this, &DialogPointOfContact::LengthLines); + connect(ui.radioButtonLengthArc, &QRadioButton::clicked, this, &DialogPointOfContact::LengthArcs); + connect(ui.radioButtonLengthSpline, &QRadioButton::clicked, this, &DialogPointOfContact::LengthCurves); connect(ui.toolButtonEqual, &QPushButton::clicked, this, &DialogPointOfContact::EvalFormula); connect(ui.lineEditNamePoint, &QLineEdit::textChanged, this, &DialogPointOfContact::NamePointChanged); connect(ui.lineEditFormula, &QLineEdit::textChanged, this, &DialogPointOfContact::FormulaChanged); diff --git a/dialogs/dialogpointofcontact.ui b/dialogs/dialogpointofcontact.ui index 4e28260b2..e4f1fba75 100644 --- a/dialogs/dialogpointofcontact.ui +++ b/dialogs/dialogpointofcontact.ui @@ -359,7 +359,7 @@ - false + true Length of arcs @@ -369,7 +369,7 @@ - false + true Length of curves diff --git a/dialogs/dialogshoulderpoint.cpp b/dialogs/dialogshoulderpoint.cpp index 28201e968..f1a5fff82 100644 --- a/dialogs/dialogshoulderpoint.cpp +++ b/dialogs/dialogshoulderpoint.cpp @@ -34,6 +34,8 @@ DialogShoulderPoint::DialogShoulderPoint(const VContainer *data, Draw::Draws mod radioButtonStandartTable = ui->radioButtonStandartTable; radioButtonIncrements = ui->radioButtonIncrements; radioButtonLengthLine = ui->radioButtonLengthLine; + radioButtonLengthArc = ui->radioButtonLengthArc; + radioButtonLengthCurve = ui->radioButtonLengthSpline; lineEditFormula = ui->lineEditFormula; labelEditFormula = ui->labelEditFormula; labelEditNamePoint = ui->labelEditNamePoint; @@ -58,6 +60,8 @@ DialogShoulderPoint::DialogShoulderPoint(const VContainer *data, Draw::Draws mod connect(ui->radioButtonStandartTable, &QRadioButton::clicked, this, &DialogShoulderPoint::StandartTable); connect(ui->radioButtonIncrements, &QRadioButton::clicked, this, &DialogShoulderPoint::Increments); connect(ui->radioButtonLengthLine, &QRadioButton::clicked, this, &DialogShoulderPoint::LengthLines); + connect(ui->radioButtonLengthArc, &QRadioButton::clicked, this, &DialogShoulderPoint::LengthArcs); + connect(ui->radioButtonLengthSpline, &QRadioButton::clicked, this, &DialogShoulderPoint::LengthCurves); connect(ui->toolButtonEqual, &QPushButton::clicked, this, &DialogShoulderPoint::EvalFormula); connect(ui->lineEditNamePoint, &QLineEdit::textChanged, this, &DialogShoulderPoint::NamePointChanged); connect(ui->lineEditFormula, &QLineEdit::textChanged, this, &DialogShoulderPoint::FormulaChanged); diff --git a/dialogs/dialogshoulderpoint.ui b/dialogs/dialogshoulderpoint.ui index f0b4d9e27..b1865211e 100644 --- a/dialogs/dialogshoulderpoint.ui +++ b/dialogs/dialogshoulderpoint.ui @@ -380,7 +380,7 @@ - false + true Length of lines @@ -390,7 +390,7 @@ - false + true Length of curves diff --git a/dialogs/dialogtool.cpp b/dialogs/dialogtool.cpp index 100343c3c..a347196d3 100644 --- a/dialogs/dialogtool.cpp +++ b/dialogs/dialogtool.cpp @@ -30,7 +30,7 @@ DialogTool::DialogTool(const VContainer *data, Draw::Draws mode, QWidget *parent isInitialized(false), flagName(true), flagFormula(true), timerFormula(0), bOk(0), spinBoxAngle(0), lineEditFormula(0), listWidget(0), labelResultCalculation(0), labelDescription(0), labelEditNamePoint(0), labelEditFormula(0), radioButtonSizeGrowth(0), radioButtonStandartTable(0), radioButtonIncrements(0), - radioButtonLengthLine(0), idDetail(0), mode(mode){ + radioButtonLengthLine(0), radioButtonLengthArc(0), radioButtonLengthCurve(0), idDetail(0), mode(mode){ Q_CHECK_PTR(data); timerFormula = new QTimer(this); connect(timerFormula, &QTimer::timeout, this, &DialogTool::EvalFormula); @@ -309,6 +309,14 @@ void DialogTool::LengthLines(){ ShowVariable(data->DataLengthLines()); } +void DialogTool::LengthArcs(){ + ShowVariable(data->DataLengthArcs()); +} + +void DialogTool::LengthCurves(){ + ShowVariable(data->DataLengthSplines()); +} + void DialogTool::Increments(){ ShowVariable(data->DataIncrementTable()); } @@ -331,17 +339,19 @@ void DialogTool::ValChenged(int row){ Q_CHECK_PTR(radioButtonStandartTable); Q_CHECK_PTR(radioButtonIncrements); Q_CHECK_PTR(radioButtonLengthLine); + Q_CHECK_PTR(radioButtonLengthArc); + Q_CHECK_PTR(radioButtonLengthCurve); if(listWidget->count() == 0){ return; } QListWidgetItem *item = listWidget->item( row ); if(radioButtonSizeGrowth->isChecked()){ if(item->text()=="Р"){ - QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->growth()).arg("Зріст"); + QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->growth()).arg(tr("Growth")); labelDescription->setText(desc); } if(item->text()=="Сг"){ - QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->size()).arg("Розмір"); + QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->size()).arg(tr("Size")); labelDescription->setText(desc); } return; @@ -366,12 +376,28 @@ void DialogTool::ValChenged(int row){ labelDescription->setText(desc); return; } + if(radioButtonLengthArc->isChecked()){ + QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLengthArc(item->text())) + .arg(tr("Arc length")); + labelDescription->setText(desc); + return; + } + if(radioButtonLengthCurve->isChecked()){ + QString desc = QString("%1(%2) - %3").arg(item->text()).arg(data->GetLengthSpline(item->text())) + .arg(tr("Curve length")); + labelDescription->setText(desc); + return; + } } void DialogTool::UpdateList(){ - if(radioButtonSizeGrowth == 0 || radioButtonStandartTable == 0 || radioButtonIncrements == 0){ - return; - } + Q_CHECK_PTR(radioButtonSizeGrowth); + Q_CHECK_PTR(radioButtonStandartTable); + Q_CHECK_PTR(radioButtonIncrements); + Q_CHECK_PTR(radioButtonLengthLine); + Q_CHECK_PTR(radioButtonLengthArc); + Q_CHECK_PTR(radioButtonLengthCurve); + if(radioButtonSizeGrowth->isChecked()){ ShowVariable(data->DataBase()); } @@ -381,6 +407,15 @@ void DialogTool::UpdateList(){ if(radioButtonIncrements->isChecked()){ ShowVariable(data->DataIncrementTable()); } + if(radioButtonLengthLine->isChecked()){ + ShowVariable(data->DataLengthLines()); + } + if(radioButtonLengthArc->isChecked()){ + ShowVariable(data->DataLengthArcs()); + } + if(radioButtonLengthCurve->isChecked()){ + ShowVariable(data->DataLengthSplines()); + } } bool DialogTool::CheckObject(const qint64 &id){ diff --git a/dialogs/dialogtool.h b/dialogs/dialogtool.h index 630582144..dbe0b4730 100644 --- a/dialogs/dialogtool.h +++ b/dialogs/dialogtool.h @@ -62,6 +62,8 @@ public slots: void SizeGrowth(); void StandartTable(); void LengthLines(); + void LengthArcs(); + void LengthCurves(); void Increments(); void PutHere(); void PutVal(QListWidgetItem * item); @@ -86,6 +88,8 @@ protected: QRadioButton *radioButtonStandartTable; QRadioButton *radioButtonIncrements; QRadioButton *radioButtonLengthLine; + QRadioButton *radioButtonLengthArc; + QRadioButton *radioButtonLengthCurve; qint64 idDetail; Draw::Draws mode; bool CheckObject(const qint64 &id); diff --git a/geometry/vspline.cpp b/geometry/vspline.cpp index 3e09422cf..e3dc49c3c 100644 --- a/geometry/vspline.cpp +++ b/geometry/vspline.cpp @@ -320,32 +320,14 @@ QVector VSpline::GetPoints (QPointF p1, QPointF p2, QPointF p3, QPointF } qreal VSpline::LengthBezier ( QPointF p1, QPointF p2, QPointF p3, QPointF p4 ) const{ - /*QVector px; - QVector py; - QVector& wpx = px; - QVector& wpy = py; - px.append ( p1.x () ); - py.append ( p1.y () ); - PointBezier_r ( p1.x (), p1.y (), p2.x (), p2.y (), - p3.x (), p3.y (), p4.x (), p4.y (), 0, wpx, wpy); - px.append ( p4.x () ); - py.append ( p4.y () ); - qint32 i = 0; - qreal length = 0.0; - * - * Наприклад маємо 10 точок. Від 0 до 9 і останню точку не опрацьовуємо. - * Тому від 0 до 8(<10-1). - * - for ( i = 0; i < px.count() - 1; ++i ){ - length += QLineF ( QPointF ( px[i], py[i] ), QPointF ( px[i+1], py[i+1] ) ).length (); - }*/ QPainterPath splinePath; QVector points = GetPoints (p1, p2, p3, p4); splinePath.moveTo(points[0]); for (qint32 i = 1; i < points.count(); ++i){ splinePath.lineTo(points[i]); } - return splinePath.length(); + qreal length = toMM(splinePath.length()); + return length; } void VSpline::PointBezier_r ( qreal x1, qreal y1, qreal x2, qreal y2,