Added support elliptical arc in other tools.
--HG-- branch : develop
This commit is contained in:
parent
ead39f6c47
commit
f0b35ddc11
|
@ -316,6 +316,7 @@ void MainWindow::InitScenes()
|
||||||
connect(this, &MainWindow::EnablePointSelection, sceneDraw, &VMainGraphicsScene::TogglePointSelection);
|
connect(this, &MainWindow::EnablePointSelection, sceneDraw, &VMainGraphicsScene::TogglePointSelection);
|
||||||
connect(this, &MainWindow::EnableLineSelection, sceneDraw, &VMainGraphicsScene::ToggleLineSelection);
|
connect(this, &MainWindow::EnableLineSelection, sceneDraw, &VMainGraphicsScene::ToggleLineSelection);
|
||||||
connect(this, &MainWindow::EnableArcSelection, sceneDraw, &VMainGraphicsScene::ToggleArcSelection);
|
connect(this, &MainWindow::EnableArcSelection, sceneDraw, &VMainGraphicsScene::ToggleArcSelection);
|
||||||
|
connect(this, &MainWindow::EnableElArcSelection, sceneDraw, &VMainGraphicsScene::ToggleElArcSelection);
|
||||||
connect(this, &MainWindow::EnableSplineSelection, sceneDraw, &VMainGraphicsScene::ToggleSplineSelection);
|
connect(this, &MainWindow::EnableSplineSelection, sceneDraw, &VMainGraphicsScene::ToggleSplineSelection);
|
||||||
connect(this, &MainWindow::EnableSplinePathSelection, sceneDraw, &VMainGraphicsScene::ToggleSplinePathSelection);
|
connect(this, &MainWindow::EnableSplinePathSelection, sceneDraw, &VMainGraphicsScene::ToggleSplinePathSelection);
|
||||||
|
|
||||||
|
@ -323,6 +324,7 @@ void MainWindow::InitScenes()
|
||||||
connect(this, &MainWindow::EnablePointHover, sceneDraw, &VMainGraphicsScene::TogglePointHover);
|
connect(this, &MainWindow::EnablePointHover, sceneDraw, &VMainGraphicsScene::TogglePointHover);
|
||||||
connect(this, &MainWindow::EnableLineHover, sceneDraw, &VMainGraphicsScene::ToggleLineHover);
|
connect(this, &MainWindow::EnableLineHover, sceneDraw, &VMainGraphicsScene::ToggleLineHover);
|
||||||
connect(this, &MainWindow::EnableArcHover, sceneDraw, &VMainGraphicsScene::ToggleArcHover);
|
connect(this, &MainWindow::EnableArcHover, sceneDraw, &VMainGraphicsScene::ToggleArcHover);
|
||||||
|
connect(this, &MainWindow::EnableElArcHover, sceneDraw, &VMainGraphicsScene::ToggleElArcHover);
|
||||||
connect(this, &MainWindow::EnableSplineHover, sceneDraw, &VMainGraphicsScene::ToggleSplineHover);
|
connect(this, &MainWindow::EnableSplineHover, sceneDraw, &VMainGraphicsScene::ToggleSplineHover);
|
||||||
connect(this, &MainWindow::EnableSplinePathHover, sceneDraw, &VMainGraphicsScene::ToggleSplinePathHover);
|
connect(this, &MainWindow::EnableSplinePathHover, sceneDraw, &VMainGraphicsScene::ToggleSplinePathHover);
|
||||||
|
|
||||||
|
@ -1973,6 +1975,7 @@ void MainWindow::ArrowTool()
|
||||||
emit EnablePointSelection(false);
|
emit EnablePointSelection(false);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(false);
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
emit EnableSplineSelection(false);
|
emit EnableSplineSelection(false);
|
||||||
emit EnableSplinePathSelection(false);
|
emit EnableSplinePathSelection(false);
|
||||||
emit EnableNodeLabelSelection(true);
|
emit EnableNodeLabelSelection(true);
|
||||||
|
@ -1984,6 +1987,7 @@ void MainWindow::ArrowTool()
|
||||||
emit EnablePointHover(true);
|
emit EnablePointHover(true);
|
||||||
emit EnableLineHover(true);
|
emit EnableLineHover(true);
|
||||||
emit EnableArcHover(true);
|
emit EnableArcHover(true);
|
||||||
|
emit EnableElArcHover(true);
|
||||||
emit EnableSplineHover(true);
|
emit EnableSplineHover(true);
|
||||||
emit EnableSplinePathHover(true);
|
emit EnableSplinePathHover(true);
|
||||||
emit EnableNodeLabelHover(true);
|
emit EnableNodeLabelHover(true);
|
||||||
|
@ -4712,6 +4716,7 @@ void MainWindow::ToolSelectPoint() const
|
||||||
emit EnablePointSelection(false);
|
emit EnablePointSelection(false);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(false);
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
emit EnableSplineSelection(false);
|
emit EnableSplineSelection(false);
|
||||||
emit EnableSplinePathSelection(false);
|
emit EnableSplinePathSelection(false);
|
||||||
|
|
||||||
|
@ -4720,6 +4725,7 @@ void MainWindow::ToolSelectPoint() const
|
||||||
emit EnablePointHover(true);
|
emit EnablePointHover(true);
|
||||||
emit EnableLineHover(false);
|
emit EnableLineHover(false);
|
||||||
emit EnableArcHover(false);
|
emit EnableArcHover(false);
|
||||||
|
emit EnableElArcHover(false);
|
||||||
emit EnableSplineHover(false);
|
emit EnableSplineHover(false);
|
||||||
emit EnableSplinePathHover(false);
|
emit EnableSplinePathHover(false);
|
||||||
|
|
||||||
|
@ -4748,6 +4754,7 @@ void MainWindow::ToolSelectSpline() const
|
||||||
emit EnablePointSelection(false);
|
emit EnablePointSelection(false);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(false);
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
emit EnableSplineSelection(false);
|
emit EnableSplineSelection(false);
|
||||||
emit EnableSplinePathSelection(false);
|
emit EnableSplinePathSelection(false);
|
||||||
|
|
||||||
|
@ -4756,6 +4763,7 @@ void MainWindow::ToolSelectSpline() const
|
||||||
emit EnablePointHover(false);
|
emit EnablePointHover(false);
|
||||||
emit EnableLineHover(false);
|
emit EnableLineHover(false);
|
||||||
emit EnableArcHover(false);
|
emit EnableArcHover(false);
|
||||||
|
emit EnableElArcHover(false);
|
||||||
emit EnableSplineHover(true);
|
emit EnableSplineHover(true);
|
||||||
emit EnableSplinePathHover(false);
|
emit EnableSplinePathHover(false);
|
||||||
|
|
||||||
|
@ -4772,6 +4780,7 @@ void MainWindow::ToolSelectSplinePath() const
|
||||||
emit EnablePointSelection(false);
|
emit EnablePointSelection(false);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(false);
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
emit EnableSplineSelection(false);
|
emit EnableSplineSelection(false);
|
||||||
emit EnableSplinePathSelection(false);
|
emit EnableSplinePathSelection(false);
|
||||||
|
|
||||||
|
@ -4780,6 +4789,7 @@ void MainWindow::ToolSelectSplinePath() const
|
||||||
emit EnablePointHover(false);
|
emit EnablePointHover(false);
|
||||||
emit EnableLineHover(false);
|
emit EnableLineHover(false);
|
||||||
emit EnableArcHover(false);
|
emit EnableArcHover(false);
|
||||||
|
emit EnableElArcHover(false);
|
||||||
emit EnableSplineHover(false);
|
emit EnableSplineHover(false);
|
||||||
emit EnableSplinePathHover(true);
|
emit EnableSplinePathHover(true);
|
||||||
|
|
||||||
|
@ -4796,6 +4806,7 @@ void MainWindow::ToolSelectArc() const
|
||||||
emit EnablePointSelection(false);
|
emit EnablePointSelection(false);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(false);
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
emit EnableSplineSelection(false);
|
emit EnableSplineSelection(false);
|
||||||
emit EnableSplinePathSelection(false);
|
emit EnableSplinePathSelection(false);
|
||||||
|
|
||||||
|
@ -4804,6 +4815,33 @@ void MainWindow::ToolSelectArc() const
|
||||||
emit EnablePointHover(false);
|
emit EnablePointHover(false);
|
||||||
emit EnableLineHover(false);
|
emit EnableLineHover(false);
|
||||||
emit EnableArcHover(true);
|
emit EnableArcHover(true);
|
||||||
|
emit EnableElArcHover(false);
|
||||||
|
emit EnableSplineHover(false);
|
||||||
|
emit EnableSplinePathHover(false);
|
||||||
|
|
||||||
|
emit ItemsSelection(SelectionType::ByMouseRelease);
|
||||||
|
|
||||||
|
ui->view->AllowRubberBand(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void MainWindow::ToolSelectElArc() const
|
||||||
|
{
|
||||||
|
// Only true for rubber band selection
|
||||||
|
emit EnableLabelSelection(false);
|
||||||
|
emit EnablePointSelection(false);
|
||||||
|
emit EnableLineSelection(false);
|
||||||
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
|
emit EnableSplineSelection(false);
|
||||||
|
emit EnableSplinePathSelection(false);
|
||||||
|
|
||||||
|
// Hovering
|
||||||
|
emit EnableLabelHover(false);
|
||||||
|
emit EnablePointHover(false);
|
||||||
|
emit EnableLineHover(false);
|
||||||
|
emit EnableArcHover(false);
|
||||||
|
emit EnableElArcHover(true);
|
||||||
emit EnableSplineHover(false);
|
emit EnableSplineHover(false);
|
||||||
emit EnableSplinePathHover(false);
|
emit EnableSplinePathHover(false);
|
||||||
|
|
||||||
|
@ -4820,6 +4858,7 @@ void MainWindow::ToolSelectPointArc() const
|
||||||
emit EnablePointSelection(false);
|
emit EnablePointSelection(false);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(false);
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
emit EnableSplineSelection(false);
|
emit EnableSplineSelection(false);
|
||||||
emit EnableSplinePathSelection(false);
|
emit EnableSplinePathSelection(false);
|
||||||
|
|
||||||
|
@ -4828,6 +4867,7 @@ void MainWindow::ToolSelectPointArc() const
|
||||||
emit EnablePointHover(true);
|
emit EnablePointHover(true);
|
||||||
emit EnableLineHover(false);
|
emit EnableLineHover(false);
|
||||||
emit EnableArcHover(true);
|
emit EnableArcHover(true);
|
||||||
|
emit EnableElArcHover(false);
|
||||||
emit EnableSplineHover(false);
|
emit EnableSplineHover(false);
|
||||||
emit EnableSplinePathHover(false);
|
emit EnableSplinePathHover(false);
|
||||||
|
|
||||||
|
@ -4844,6 +4884,7 @@ void MainWindow::ToolSelectCurve() const
|
||||||
emit EnablePointSelection(false);
|
emit EnablePointSelection(false);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(false);
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
emit EnableSplineSelection(false);
|
emit EnableSplineSelection(false);
|
||||||
emit EnableSplinePathSelection(false);
|
emit EnableSplinePathSelection(false);
|
||||||
|
|
||||||
|
@ -4852,6 +4893,7 @@ void MainWindow::ToolSelectCurve() const
|
||||||
emit EnablePointHover(false);
|
emit EnablePointHover(false);
|
||||||
emit EnableLineHover(false);
|
emit EnableLineHover(false);
|
||||||
emit EnableArcHover(true);
|
emit EnableArcHover(true);
|
||||||
|
emit EnableElArcHover(true);
|
||||||
emit EnableSplineHover(true);
|
emit EnableSplineHover(true);
|
||||||
emit EnableSplinePathHover(true);
|
emit EnableSplinePathHover(true);
|
||||||
|
|
||||||
|
@ -4868,6 +4910,7 @@ void MainWindow::ToolSelectAllDrawObjects() const
|
||||||
emit EnablePointSelection(false);
|
emit EnablePointSelection(false);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(false);
|
emit EnableArcSelection(false);
|
||||||
|
emit EnableElArcSelection(false);
|
||||||
emit EnableSplineSelection(false);
|
emit EnableSplineSelection(false);
|
||||||
emit EnableSplinePathSelection(false);
|
emit EnableSplinePathSelection(false);
|
||||||
|
|
||||||
|
@ -4876,6 +4919,7 @@ void MainWindow::ToolSelectAllDrawObjects() const
|
||||||
emit EnablePointHover(true);
|
emit EnablePointHover(true);
|
||||||
emit EnableLineHover(false);
|
emit EnableLineHover(false);
|
||||||
emit EnableArcHover(true);
|
emit EnableArcHover(true);
|
||||||
|
emit EnableElArcHover(true);
|
||||||
emit EnableSplineHover(true);
|
emit EnableSplineHover(true);
|
||||||
emit EnableSplinePathHover(true);
|
emit EnableSplinePathHover(true);
|
||||||
|
|
||||||
|
@ -4892,6 +4936,7 @@ void MainWindow::ToolSelectOperationObjects() const
|
||||||
emit EnablePointSelection(true);
|
emit EnablePointSelection(true);
|
||||||
emit EnableLineSelection(false);
|
emit EnableLineSelection(false);
|
||||||
emit EnableArcSelection(true);
|
emit EnableArcSelection(true);
|
||||||
|
emit EnableElArcSelection(true);
|
||||||
emit EnableSplineSelection(true);
|
emit EnableSplineSelection(true);
|
||||||
emit EnableSplinePathSelection(true);
|
emit EnableSplinePathSelection(true);
|
||||||
|
|
||||||
|
@ -4900,6 +4945,7 @@ void MainWindow::ToolSelectOperationObjects() const
|
||||||
emit EnablePointHover(true);
|
emit EnablePointHover(true);
|
||||||
emit EnableLineHover(false);
|
emit EnableLineHover(false);
|
||||||
emit EnableArcHover(true);
|
emit EnableArcHover(true);
|
||||||
|
emit EnableElArcHover(true);
|
||||||
emit EnableSplineHover(true);
|
emit EnableSplineHover(true);
|
||||||
emit EnableSplinePathHover(true);
|
emit EnableSplinePathHover(true);
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,7 @@ signals:
|
||||||
void EnablePointSelection(bool enable) const;
|
void EnablePointSelection(bool enable) const;
|
||||||
void EnableLineSelection(bool enable) const;
|
void EnableLineSelection(bool enable) const;
|
||||||
void EnableArcSelection(bool enable) const;
|
void EnableArcSelection(bool enable) const;
|
||||||
|
void EnableElArcSelection(bool enable) const;
|
||||||
void EnableSplineSelection(bool enable) const;
|
void EnableSplineSelection(bool enable) const;
|
||||||
void EnableSplinePathSelection(bool enable) const;
|
void EnableSplinePathSelection(bool enable) const;
|
||||||
void EnableNodeLabelSelection(bool enable) const;
|
void EnableNodeLabelSelection(bool enable) const;
|
||||||
|
@ -88,6 +89,7 @@ signals:
|
||||||
void EnablePointHover(bool enable) const;
|
void EnablePointHover(bool enable) const;
|
||||||
void EnableLineHover(bool enable) const;
|
void EnableLineHover(bool enable) const;
|
||||||
void EnableArcHover(bool enable) const;
|
void EnableArcHover(bool enable) const;
|
||||||
|
void EnableElArcHover(bool enable) const;
|
||||||
void EnableSplineHover(bool enable) const;
|
void EnableSplineHover(bool enable) const;
|
||||||
void EnableSplinePathHover(bool enable) const;
|
void EnableSplinePathHover(bool enable) const;
|
||||||
void EnableNodeLabelHover(bool enable) const;
|
void EnableNodeLabelHover(bool enable) const;
|
||||||
|
@ -346,6 +348,7 @@ private:
|
||||||
void ToolSelectSpline() const;
|
void ToolSelectSpline() const;
|
||||||
void ToolSelectSplinePath() const;
|
void ToolSelectSplinePath() const;
|
||||||
void ToolSelectArc() const;
|
void ToolSelectArc() const;
|
||||||
|
void ToolSelectElArc() const;
|
||||||
void ToolSelectPointArc() const;
|
void ToolSelectPointArc() const;
|
||||||
void ToolSelectCurve() const;
|
void ToolSelectCurve() const;
|
||||||
void ToolSelectAllDrawObjects() const;
|
void ToolSelectAllDrawObjects() const;
|
||||||
|
|
|
@ -382,25 +382,28 @@ void VContainer::AddLine(const quint32 &firstPointId, const quint32 &secondPoint
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VContainer::AddArc(const QSharedPointer<VArc> &arc, const quint32 &id, const quint32 &parentId)
|
void VContainer::AddArc(const QSharedPointer<VAbstractCurve> &arc, const quint32 &id, const quint32 &parentId)
|
||||||
{
|
{
|
||||||
AddCurve(arc, id, parentId);
|
AddCurve(arc, id, parentId);
|
||||||
|
|
||||||
VArcRadius *radius = new VArcRadius(id, parentId, arc.data(), *GetPatternUnit());
|
if (arc->getType() == GOType::Arc)
|
||||||
|
{
|
||||||
|
const QSharedPointer<VArc> casted = arc.staticCast<VArc>();
|
||||||
|
|
||||||
|
VArcRadius *radius = new VArcRadius(id, parentId, casted.data(), *GetPatternUnit());
|
||||||
AddVariable(radius->GetName(), radius);
|
AddVariable(radius->GetName(), radius);
|
||||||
}
|
}
|
||||||
|
else if (arc->getType() == GOType::EllipticalArc)
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VContainer::AddEllipticalArc(const QSharedPointer<VEllipticalArc> &arc, const quint32 &id, const quint32 &parentId)
|
|
||||||
{
|
{
|
||||||
AddCurve(arc, id, parentId);
|
const QSharedPointer<VEllipticalArc> casted = arc.staticCast<VEllipticalArc>();
|
||||||
|
|
||||||
VEllipticalArcRadius *radius1 = new VEllipticalArcRadius(id, parentId, arc.data(), 1, *GetPatternUnit());
|
VEllipticalArcRadius *radius1 = new VEllipticalArcRadius(id, parentId, casted.data(), 1, *GetPatternUnit());
|
||||||
AddVariable(radius1->GetName(), radius1);
|
AddVariable(radius1->GetName(), radius1);
|
||||||
|
|
||||||
VEllipticalArcRadius *radius2 = new VEllipticalArcRadius(id, parentId, arc.data(), 2, *GetPatternUnit());
|
VEllipticalArcRadius *radius2 = new VEllipticalArcRadius(id, parentId, casted.data(), 2, *GetPatternUnit());
|
||||||
AddVariable(radius2->GetName(), radius2);
|
AddVariable(radius2->GetName(), radius2);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VContainer::AddCurve(const QSharedPointer<VAbstractCurve> &curve, const quint32 &id, quint32 parentId)
|
void VContainer::AddCurve(const QSharedPointer<VAbstractCurve> &curve, const quint32 &id, quint32 parentId)
|
||||||
|
|
|
@ -146,8 +146,7 @@ public:
|
||||||
quint32 AddGObject(VGObject *obj);
|
quint32 AddGObject(VGObject *obj);
|
||||||
quint32 AddDetail(const VDetail &detail);
|
quint32 AddDetail(const VDetail &detail);
|
||||||
void AddLine(const quint32 &firstPointId, const quint32 &secondPointId);
|
void AddLine(const quint32 &firstPointId, const quint32 &secondPointId);
|
||||||
void AddArc(const QSharedPointer<VArc> &arc, const quint32 &arcId, const quint32 &parentId = NULL_ID);
|
void AddArc(const QSharedPointer<VAbstractCurve> &arc, const quint32 &arcId,
|
||||||
void AddEllipticalArc(const QSharedPointer<VEllipticalArc> &arc, const quint32 &arcId,
|
|
||||||
const quint32 &parentId = NULL_ID);
|
const quint32 &parentId = NULL_ID);
|
||||||
void AddSpline(const QSharedPointer<VAbstractBezier> &curve, quint32 id, quint32 parentId = NULL_ID);
|
void AddSpline(const QSharedPointer<VAbstractBezier> &curve, quint32 id, quint32 parentId = NULL_ID);
|
||||||
void AddCurveWithSegments(const QSharedPointer<VAbstractCubicBezierPath> &curve, const quint32 &id,
|
void AddCurveWithSegments(const QSharedPointer<VAbstractCubicBezierPath> &curve, const quint32 &id,
|
||||||
|
|
|
@ -222,9 +222,12 @@ void DialogTool::FillComboBoxCurves(QComboBox *box) const
|
||||||
if (i.key() != toolId)
|
if (i.key() != toolId)
|
||||||
{
|
{
|
||||||
QSharedPointer<VGObject> obj = i.value();
|
QSharedPointer<VGObject> obj = i.value();
|
||||||
if ((obj->getType() == GOType::Arc || obj->getType() == GOType::Spline ||
|
if ((obj->getType() == GOType::Arc
|
||||||
obj->getType() == GOType::SplinePath || obj->getType() == GOType::CubicBezier ||
|
|| obj->getType() == GOType::EllipticalArc
|
||||||
obj->getType() == GOType::CubicBezierPath) && obj->getMode() == Draw::Calculation)
|
|| obj->getType() == GOType::Spline
|
||||||
|
|| obj->getType() == GOType::SplinePath
|
||||||
|
|| obj->getType() == GOType::CubicBezier
|
||||||
|
|| obj->getType() == GOType::CubicBezierPath) && obj->getMode() == Draw::Calculation)
|
||||||
{
|
{
|
||||||
PrepareList<VAbstractCurve>(list, i.key());
|
PrepareList<VAbstractCurve>(list, i.key());
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "vabstractflipping.h"
|
#include "vabstractflipping.h"
|
||||||
#include "../vgeometry/vabstractcurve.h"
|
#include "../vgeometry/vabstractcurve.h"
|
||||||
#include "../vgeometry/varc.h"
|
#include "../vgeometry/varc.h"
|
||||||
|
#include "../vgeometry/vellipticalarc.h"
|
||||||
#include "../vgeometry/vcubicbezier.h"
|
#include "../vgeometry/vcubicbezier.h"
|
||||||
#include "../vgeometry/vcubicbezierpath.h"
|
#include "../vgeometry/vcubicbezierpath.h"
|
||||||
#include "../vgeometry/vgobject.h"
|
#include "../vgeometry/vgobject.h"
|
||||||
|
@ -77,10 +78,10 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
dest.append(CreatePoint(id, idObject, fPoint, sPoint, suffix, data));
|
dest.append(CreatePoint(id, idObject, fPoint, sPoint, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::Arc:
|
case GOType::Arc:
|
||||||
dest.append(CreateArc(id, idObject, fPoint, sPoint, suffix, data));
|
dest.append(CreateArc<VArc>(id, idObject, fPoint, sPoint, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::EllipticalArc:
|
case GOType::EllipticalArc:
|
||||||
//dest.append(CreateItem<VEllipticalArc>(id, idObject, fPoint, sPoint, suffix));
|
dest.append(CreateArc<VEllipticalArc>(id, idObject, fPoint, sPoint, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::Spline:
|
case GOType::Spline:
|
||||||
dest.append(CreateCurve<VSpline>(id, idObject, fPoint, sPoint, suffix, data));
|
dest.append(CreateCurve<VSpline>(id, idObject, fPoint, sPoint, suffix, data));
|
||||||
|
@ -119,10 +120,10 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
dest.at(i).my);
|
dest.at(i).my);
|
||||||
break;
|
break;
|
||||||
case GOType::Arc:
|
case GOType::Arc:
|
||||||
UpdateArc(id, idObject, fPoint, sPoint, suffix, data, dest.at(i).id);
|
UpdateArc<VArc>(id, idObject, fPoint, sPoint, suffix, data, dest.at(i).id);
|
||||||
break;
|
break;
|
||||||
case GOType::EllipticalArc:
|
case GOType::EllipticalArc:
|
||||||
//dest.append(UpdateItem<VEllipticalArc>(id, idObject, fPoint, sPoint, suffix, data));
|
UpdateArc<VEllipticalArc>(id, idObject, fPoint, sPoint, suffix, data, dest.at(i).id);
|
||||||
break;
|
break;
|
||||||
case GOType::Spline:
|
case GOType::Spline:
|
||||||
UpdateCurve<VSpline>(id, idObject, fPoint, sPoint, suffix, data, dest.at(i).id);
|
UpdateCurve<VSpline>(id, idObject, fPoint, sPoint, suffix, data, dest.at(i).id);
|
||||||
|
@ -165,11 +166,12 @@ DestinationItem VAbstractFlipping::CreatePoint(quint32 idTool, quint32 idItem, c
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
template <class Item>
|
||||||
DestinationItem VAbstractFlipping::CreateArc(quint32 idTool, quint32 idItem, const QPointF &firstPoint,
|
DestinationItem VAbstractFlipping::CreateArc(quint32 idTool, quint32 idItem, const QPointF &firstPoint,
|
||||||
const QPointF &secondPoint, const QString &suffix, VContainer *data)
|
const QPointF &secondPoint, const QString &suffix, VContainer *data)
|
||||||
{
|
{
|
||||||
const DestinationItem item = CreateItem<VArc>(idTool, idItem, firstPoint, secondPoint, suffix, data);
|
const DestinationItem item = CreateItem<Item>(idTool, idItem, firstPoint, secondPoint, suffix, data);
|
||||||
data->AddArc(data->GeometricObject<VArc>(item.id), item.id);
|
data->AddArc(data->GeometricObject<Item>(item.id), item.id);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,9 +189,10 @@ void VAbstractFlipping::UpdatePoint(quint32 idTool, quint32 idItem, const QPoint
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
template <class Item>
|
||||||
void VAbstractFlipping::UpdateArc(quint32 idTool, quint32 idItem, const QPointF &firstPoint, const QPointF &secondPoint,
|
void VAbstractFlipping::UpdateArc(quint32 idTool, quint32 idItem, const QPointF &firstPoint, const QPointF &secondPoint,
|
||||||
const QString &suffix, VContainer *data, quint32 id)
|
const QString &suffix, VContainer *data, quint32 id)
|
||||||
{
|
{
|
||||||
UpdateItem<VArc>(idTool, idItem, firstPoint, secondPoint, suffix, data, id);
|
UpdateItem<Item>(idTool, idItem, firstPoint, secondPoint, suffix, data, id);
|
||||||
data->AddArc(data->GeometricObject<VArc>(id), id);
|
data->AddArc(data->GeometricObject<Item>(id), id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,6 +54,7 @@ protected:
|
||||||
template <class Item>
|
template <class Item>
|
||||||
static DestinationItem CreateItem(quint32 idTool, quint32 idItem, const QPointF &firstPoint,
|
static DestinationItem CreateItem(quint32 idTool, quint32 idItem, const QPointF &firstPoint,
|
||||||
const QPointF &secondPoint, const QString &suffix, VContainer *data);
|
const QPointF &secondPoint, const QString &suffix, VContainer *data);
|
||||||
|
template <class Item>
|
||||||
static DestinationItem CreateArc(quint32 idTool, quint32 idItem, const QPointF &firstPoint,
|
static DestinationItem CreateArc(quint32 idTool, quint32 idItem, const QPointF &firstPoint,
|
||||||
const QPointF &secondPoint, const QString &suffix, VContainer *data);
|
const QPointF &secondPoint, const QString &suffix, VContainer *data);
|
||||||
template <class Item>
|
template <class Item>
|
||||||
|
@ -68,6 +69,7 @@ protected:
|
||||||
template <class Item>
|
template <class Item>
|
||||||
static void UpdateItem(quint32 idTool, quint32 idItem, const QPointF &firstPoint, const QPointF &secondPoint,
|
static void UpdateItem(quint32 idTool, quint32 idItem, const QPointF &firstPoint, const QPointF &secondPoint,
|
||||||
const QString &suffix, VContainer *data, quint32 id);
|
const QString &suffix, VContainer *data, quint32 id);
|
||||||
|
template <class Item>
|
||||||
static void UpdateArc(quint32 idTool, quint32 idItem, const QPointF &firstPoint, const QPointF &secondPoint,
|
static void UpdateArc(quint32 idTool, quint32 idItem, const QPointF &firstPoint, const QPointF &secondPoint,
|
||||||
const QString &suffix, VContainer *data, quint32 id);
|
const QString &suffix, VContainer *data, quint32 id);
|
||||||
template <class Item>
|
template <class Item>
|
||||||
|
|
|
@ -329,6 +329,18 @@ void VAbstractOperation::AllowArcSelecting(bool enabled)
|
||||||
AllowCurveSelecting(enabled, GOType::Arc);
|
AllowCurveSelecting(enabled, GOType::Arc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractOperation::AllowElArcHover(bool enabled)
|
||||||
|
{
|
||||||
|
AllowCurveHover(enabled, GOType::EllipticalArc);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VAbstractOperation::AllowElArcSelecting(bool enabled)
|
||||||
|
{
|
||||||
|
AllowCurveSelecting(enabled, GOType::EllipticalArc);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VAbstractOperation::Disable(bool disable, const QString &namePP)
|
void VAbstractOperation::Disable(bool disable, const QString &namePP)
|
||||||
{
|
{
|
||||||
|
@ -575,7 +587,7 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
case GOType::Arc:
|
case GOType::Arc:
|
||||||
case GOType::EllipticalArc:
|
case GOType::EllipticalArc:
|
||||||
{
|
{
|
||||||
VSimpleCurve *curve = InitCurve(object.id, &(VAbstractTool::data), GOType::Arc);
|
VSimpleCurve *curve = InitCurve(object.id, &(VAbstractTool::data), obj->getType());
|
||||||
connect(curve, &VSimpleCurve::Choosed, [this](quint32 id)
|
connect(curve, &VSimpleCurve::Choosed, [this](quint32 id)
|
||||||
{
|
{
|
||||||
emit ChoosedTool(id, SceneObject::Arc);
|
emit ChoosedTool(id, SceneObject::Arc);
|
||||||
|
@ -585,7 +597,7 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
case GOType::Spline:
|
case GOType::Spline:
|
||||||
case GOType::CubicBezier:
|
case GOType::CubicBezier:
|
||||||
{
|
{
|
||||||
VSimpleCurve *curve = InitCurve(object.id, &(VAbstractTool::data), GOType::Spline);
|
VSimpleCurve *curve = InitCurve(object.id, &(VAbstractTool::data), obj->getType());
|
||||||
connect(curve, &VSimpleCurve::Choosed, [this](quint32 id)
|
connect(curve, &VSimpleCurve::Choosed, [this](quint32 id)
|
||||||
{
|
{
|
||||||
emit ChoosedTool(id, SceneObject::Spline);
|
emit ChoosedTool(id, SceneObject::Spline);
|
||||||
|
@ -595,7 +607,7 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
case GOType::SplinePath:
|
case GOType::SplinePath:
|
||||||
case GOType::CubicBezierPath:
|
case GOType::CubicBezierPath:
|
||||||
{
|
{
|
||||||
VSimpleCurve *curve = InitCurve(object.id, &(VAbstractTool::data), GOType::SplinePath);
|
VSimpleCurve *curve = InitCurve(object.id, &(VAbstractTool::data), obj->getType());
|
||||||
connect(curve, &VSimpleCurve::Choosed, [this](quint32 id)
|
connect(curve, &VSimpleCurve::Choosed, [this](quint32 id)
|
||||||
{
|
{
|
||||||
emit ChoosedTool(id, SceneObject::SplinePath);
|
emit ChoosedTool(id, SceneObject::SplinePath);
|
||||||
|
|
|
@ -108,6 +108,9 @@ public slots:
|
||||||
void AllowArcHover(bool enabled);
|
void AllowArcHover(bool enabled);
|
||||||
void AllowArcSelecting(bool enabled);
|
void AllowArcSelecting(bool enabled);
|
||||||
|
|
||||||
|
void AllowElArcHover(bool enabled);
|
||||||
|
void AllowElArcSelecting(bool enabled);
|
||||||
|
|
||||||
virtual void Disable(bool disable, const QString &namePP) Q_DECL_OVERRIDE;
|
virtual void Disable(bool disable, const QString &namePP) Q_DECL_OVERRIDE;
|
||||||
void ObjectSelected(bool selected, quint32 objId);
|
void ObjectSelected(bool selected, quint32 objId);
|
||||||
void DeleteFromLabel();
|
void DeleteFromLabel();
|
||||||
|
@ -197,6 +200,9 @@ void VAbstractOperation::InitOperationToolConnections(VMainGraphicsScene *scene,
|
||||||
|
|
||||||
QObject::connect(scene, &VMainGraphicsScene::EnableArcItemHover, tool, &T::AllowArcHover);
|
QObject::connect(scene, &VMainGraphicsScene::EnableArcItemHover, tool, &T::AllowArcHover);
|
||||||
QObject::connect(scene, &VMainGraphicsScene::EnableArcItemSelection, tool, &T::AllowArcSelecting);
|
QObject::connect(scene, &VMainGraphicsScene::EnableArcItemSelection, tool, &T::AllowArcSelecting);
|
||||||
|
|
||||||
|
QObject::connect(scene, &VMainGraphicsScene::EnableElArcItemHover, tool, &T::AllowElArcHover);
|
||||||
|
QObject::connect(scene, &VMainGraphicsScene::EnableElArcItemSelection, tool, &T::AllowElArcSelecting);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // VABSTRACTOPERATION_H
|
#endif // VABSTRACTOPERATION_H
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#include "../../../visualization/visualization.h"
|
#include "../../../visualization/visualization.h"
|
||||||
#include "../vgeometry/vabstractcurve.h"
|
#include "../vgeometry/vabstractcurve.h"
|
||||||
#include "../vgeometry/varc.h"
|
#include "../vgeometry/varc.h"
|
||||||
|
#include "../vgeometry/vellipticalarc.h"
|
||||||
#include "../vgeometry/vcubicbezier.h"
|
#include "../vgeometry/vcubicbezier.h"
|
||||||
#include "../vgeometry/vcubicbezierpath.h"
|
#include "../vgeometry/vcubicbezierpath.h"
|
||||||
#include "../vgeometry/vgobject.h"
|
#include "../vgeometry/vgobject.h"
|
||||||
|
@ -152,10 +153,10 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
dest.append(CreatePoint(id, idObject, calcAngle, calcLength, suffix, data));
|
dest.append(CreatePoint(id, idObject, calcAngle, calcLength, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::Arc:
|
case GOType::Arc:
|
||||||
dest.append(CreateArc(id, idObject, calcAngle, calcLength, suffix, data));
|
dest.append(CreateArc<VArc>(id, idObject, calcAngle, calcLength, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::EllipticalArc:
|
case GOType::EllipticalArc:
|
||||||
//dest.append(CreateItem<VEllipticalArc>(id, idObject, angle, suffix));
|
dest.append(CreateArc<VEllipticalArc>(id, idObject, calcAngle, calcLength, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::Spline:
|
case GOType::Spline:
|
||||||
dest.append(CreateCurve<VSpline>(id, idObject, calcAngle, calcLength, suffix, data));
|
dest.append(CreateCurve<VSpline>(id, idObject, calcAngle, calcLength, suffix, data));
|
||||||
|
@ -196,10 +197,10 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
dest.at(i).my);
|
dest.at(i).my);
|
||||||
break;
|
break;
|
||||||
case GOType::Arc:
|
case GOType::Arc:
|
||||||
UpdateArc(id, idObject, calcAngle, calcLength, suffix, data, dest.at(i).id);
|
UpdateArc<VArc>(id, idObject, calcAngle, calcLength, suffix, data, dest.at(i).id);
|
||||||
break;
|
break;
|
||||||
case GOType::EllipticalArc:
|
case GOType::EllipticalArc:
|
||||||
//dest.append(UpdateItem<VEllipticalArc>(id, idObject, oPoint, angle, suffix, data));
|
UpdateArc<VEllipticalArc>(id, idObject, calcAngle, calcLength, suffix, data, dest.at(i).id);
|
||||||
break;
|
break;
|
||||||
case GOType::Spline:
|
case GOType::Spline:
|
||||||
UpdateCurve<VSpline>(id, idObject, calcAngle, calcLength, suffix, data, dest.at(i).id);
|
UpdateCurve<VSpline>(id, idObject, calcAngle, calcLength, suffix, data, dest.at(i).id);
|
||||||
|
@ -385,11 +386,12 @@ DestinationItem VToolMove::CreatePoint(quint32 idTool, quint32 idItem, qreal ang
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
template <class Item>
|
||||||
DestinationItem VToolMove::CreateArc(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
DestinationItem VToolMove::CreateArc(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
||||||
VContainer *data)
|
VContainer *data)
|
||||||
{
|
{
|
||||||
const DestinationItem item = CreateItem<VArc>(idTool, idItem, angle, length, suffix, data);
|
const DestinationItem item = CreateItem<Item>(idTool, idItem, angle, length, suffix, data);
|
||||||
data->AddArc(data->GeometricObject<VArc>(item.id), item.id);
|
data->AddArc(data->GeometricObject<Item>(item.id), item.id);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,11 +408,12 @@ void VToolMove::UpdatePoint(quint32 idTool, quint32 idItem, qreal angle, qreal l
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
template <class Item>
|
||||||
void VToolMove::UpdateArc(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
void VToolMove::UpdateArc(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
||||||
VContainer *data, quint32 id)
|
VContainer *data, quint32 id)
|
||||||
{
|
{
|
||||||
UpdateItem<VArc>(idTool, idItem, angle, length, suffix, data, id);
|
UpdateItem<Item>(idTool, idItem, angle, length, suffix, data, id);
|
||||||
data->AddArc(data->GeometricObject<VArc>(id), id);
|
data->AddArc(data->GeometricObject<Item>(id), id);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -101,6 +101,7 @@ private:
|
||||||
template <class Item>
|
template <class Item>
|
||||||
static DestinationItem CreateItem(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
static DestinationItem CreateItem(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
||||||
VContainer *data);
|
VContainer *data);
|
||||||
|
template <class Item>
|
||||||
static DestinationItem CreateArc(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
static DestinationItem CreateArc(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
||||||
VContainer *data);
|
VContainer *data);
|
||||||
template <class Item>
|
template <class Item>
|
||||||
|
@ -115,6 +116,7 @@ private:
|
||||||
template <class Item>
|
template <class Item>
|
||||||
static void UpdateItem(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
static void UpdateItem(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
||||||
VContainer *data, quint32 id);
|
VContainer *data, quint32 id);
|
||||||
|
template <class Item>
|
||||||
static void UpdateArc(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
static void UpdateArc(quint32 idTool, quint32 idItem, qreal angle, qreal length, const QString &suffix,
|
||||||
VContainer *data, quint32 id);
|
VContainer *data, quint32 id);
|
||||||
template <class Item>
|
template <class Item>
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
#include "../../../visualization/visualization.h"
|
#include "../../../visualization/visualization.h"
|
||||||
#include "../vgeometry/vabstractcurve.h"
|
#include "../vgeometry/vabstractcurve.h"
|
||||||
#include "../vgeometry/varc.h"
|
#include "../vgeometry/varc.h"
|
||||||
|
#include "../vgeometry/vellipticalarc.h"
|
||||||
#include "../vgeometry/vcubicbezier.h"
|
#include "../vgeometry/vcubicbezier.h"
|
||||||
#include "../vgeometry/vcubicbezierpath.h"
|
#include "../vgeometry/vcubicbezierpath.h"
|
||||||
#include "../vgeometry/vgobject.h"
|
#include "../vgeometry/vgobject.h"
|
||||||
|
@ -165,10 +166,10 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
dest.append(CreatePoint(id, idObject, oPoint, calcAngle, suffix, data));
|
dest.append(CreatePoint(id, idObject, oPoint, calcAngle, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::Arc:
|
case GOType::Arc:
|
||||||
dest.append(CreateArc(id, idObject, oPoint, calcAngle, suffix, data));
|
dest.append(CreateArc<VArc>(id, idObject, oPoint, calcAngle, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::EllipticalArc:
|
case GOType::EllipticalArc:
|
||||||
//dest.append(CreateItem<VEllipticalArc>(id, idObject, oPoint, angle, suffix));
|
dest.append(CreateArc<VEllipticalArc>(id, idObject, oPoint, calcAngle, suffix, data));
|
||||||
break;
|
break;
|
||||||
case GOType::Spline:
|
case GOType::Spline:
|
||||||
dest.append(CreateCurve<VSpline>(id, idObject, oPoint, calcAngle, suffix, data));
|
dest.append(CreateCurve<VSpline>(id, idObject, oPoint, calcAngle, suffix, data));
|
||||||
|
@ -208,10 +209,10 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
dest.at(i).my);
|
dest.at(i).my);
|
||||||
break;
|
break;
|
||||||
case GOType::Arc:
|
case GOType::Arc:
|
||||||
UpdateArc(id, idObject, oPoint, calcAngle, suffix, data, dest.at(i).id);
|
UpdateArc<VArc>(id, idObject, oPoint, calcAngle, suffix, data, dest.at(i).id);
|
||||||
break;
|
break;
|
||||||
case GOType::EllipticalArc:
|
case GOType::EllipticalArc:
|
||||||
//dest.append(UpdateItem<VEllipticalArc>(id, idObject, oPoint, angle, suffix, data));
|
UpdateArc<VEllipticalArc>(id, idObject, oPoint, calcAngle, suffix, data, dest.at(i).id);
|
||||||
break;
|
break;
|
||||||
case GOType::Spline:
|
case GOType::Spline:
|
||||||
UpdateCurve<VSpline>(id, idObject, oPoint, calcAngle, suffix, data, dest.at(i).id);
|
UpdateCurve<VSpline>(id, idObject, oPoint, calcAngle, suffix, data, dest.at(i).id);
|
||||||
|
@ -376,11 +377,12 @@ DestinationItem VToolRotation::CreateItem(quint32 idTool, quint32 idItem, const
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
template <class Item>
|
||||||
DestinationItem VToolRotation::CreateArc(quint32 idTool, quint32 idItem, const QPointF &origin, qreal angle,
|
DestinationItem VToolRotation::CreateArc(quint32 idTool, quint32 idItem, const QPointF &origin, qreal angle,
|
||||||
const QString &suffix, VContainer *data)
|
const QString &suffix, VContainer *data)
|
||||||
{
|
{
|
||||||
const DestinationItem item = CreateItem<VArc>(idTool, idItem, origin, angle, suffix, data);
|
const DestinationItem item = CreateItem<Item>(idTool, idItem, origin, angle, suffix, data);
|
||||||
data->AddArc(data->GeometricObject<VArc>(item.id), item.id);
|
data->AddArc(data->GeometricObject<Item>(item.id), item.id);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,11 +430,12 @@ void VToolRotation::UpdateItem(quint32 idTool, quint32 idItem, const QPointF &or
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
template <class Item>
|
||||||
void VToolRotation::UpdateArc(quint32 idTool, quint32 idItem, const QPointF &origin, qreal angle,
|
void VToolRotation::UpdateArc(quint32 idTool, quint32 idItem, const QPointF &origin, qreal angle,
|
||||||
const QString &suffix, VContainer *data, quint32 id)
|
const QString &suffix, VContainer *data, quint32 id)
|
||||||
{
|
{
|
||||||
UpdateItem<VArc>(idTool, idItem, origin, angle, suffix, data, id);
|
UpdateItem<Item>(idTool, idItem, origin, angle, suffix, data, id);
|
||||||
data->AddArc(data->GeometricObject<VArc>(id), id);
|
data->AddArc(data->GeometricObject<Item>(id), id);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -98,6 +98,7 @@ private:
|
||||||
template <class Item>
|
template <class Item>
|
||||||
static DestinationItem CreateItem(quint32 idTool, quint32 idItem, const QPointF &origin, qreal formulaAngle,
|
static DestinationItem CreateItem(quint32 idTool, quint32 idItem, const QPointF &origin, qreal formulaAngle,
|
||||||
const QString &suffix, VContainer *data);
|
const QString &suffix, VContainer *data);
|
||||||
|
template <class Item>
|
||||||
static DestinationItem CreateArc(quint32 idTool, quint32 idItem, const QPointF &origin, qreal formulaAngle,
|
static DestinationItem CreateArc(quint32 idTool, quint32 idItem, const QPointF &origin, qreal formulaAngle,
|
||||||
const QString &suffix, VContainer *data);
|
const QString &suffix, VContainer *data);
|
||||||
template <class Item>
|
template <class Item>
|
||||||
|
@ -112,6 +113,7 @@ private:
|
||||||
template <class Item>
|
template <class Item>
|
||||||
static void UpdateItem(quint32 idTool, quint32 idItem, const QPointF &origin, qreal formulaAngle,
|
static void UpdateItem(quint32 idTool, quint32 idItem, const QPointF &origin, qreal formulaAngle,
|
||||||
const QString &suffix, VContainer *data, quint32 id);
|
const QString &suffix, VContainer *data, quint32 id);
|
||||||
|
template <class Item>
|
||||||
static void UpdateArc(quint32 idTool, quint32 idItem, const QPointF &origin, qreal formulaAngle,
|
static void UpdateArc(quint32 idTool, quint32 idItem, const QPointF &origin, qreal formulaAngle,
|
||||||
const QString &suffix, VContainer *data, quint32 id);
|
const QString &suffix, VContainer *data, quint32 id);
|
||||||
template <class Item>
|
template <class Item>
|
||||||
|
|
|
@ -133,6 +133,9 @@ protected:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
static void InitArcToolConnections(VMainGraphicsScene *scene, T *tool);
|
static void InitArcToolConnections(VMainGraphicsScene *scene, T *tool);
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
static void InitElArcToolConnections(VMainGraphicsScene *scene, T *tool);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VAbstractSpline)
|
Q_DISABLE_COPY(VAbstractSpline)
|
||||||
};
|
};
|
||||||
|
@ -212,4 +215,16 @@ void VAbstractSpline::InitArcToolConnections(VMainGraphicsScene *scene, T *tool)
|
||||||
QObject::connect(scene, &VMainGraphicsScene::EnableArcItemSelection, tool, &T::AllowSelecting);
|
QObject::connect(scene, &VMainGraphicsScene::EnableArcItemSelection, tool, &T::AllowSelecting);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
template <typename T>
|
||||||
|
void VAbstractSpline::InitElArcToolConnections(VMainGraphicsScene *scene, T *tool)
|
||||||
|
{
|
||||||
|
SCASSERT(scene != nullptr);
|
||||||
|
SCASSERT(tool != nullptr);
|
||||||
|
|
||||||
|
InitDrawToolConnections(scene, tool);
|
||||||
|
QObject::connect(scene, &VMainGraphicsScene::EnableElArcItemHover, tool, &T::AllowHover);
|
||||||
|
QObject::connect(scene, &VMainGraphicsScene::EnableElArcItemSelection, tool, &T::AllowSelecting);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // VABSTRACTSPLINE_H
|
#endif // VABSTRACTSPLINE_H
|
||||||
|
|
|
@ -173,12 +173,12 @@ VToolEllipticalArc* VToolEllipticalArc::Create(const quint32 _id, const quint32
|
||||||
if (typeCreation == Source::FromGui)
|
if (typeCreation == Source::FromGui)
|
||||||
{
|
{
|
||||||
id = data->AddGObject(elArc);
|
id = data->AddGObject(elArc);
|
||||||
data->AddEllipticalArc(data->GeometricObject<VEllipticalArc>(id), id);
|
data->AddArc(data->GeometricObject<VEllipticalArc>(id), id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
data->UpdateGObject(id, elArc);
|
data->UpdateGObject(id, elArc);
|
||||||
data->AddEllipticalArc(data->GeometricObject<VEllipticalArc>(id), id);
|
data->AddArc(data->GeometricObject<VEllipticalArc>(id), id);
|
||||||
if (parse != Document::FullParse)
|
if (parse != Document::FullParse)
|
||||||
{
|
{
|
||||||
doc->UpdateToolData(id, data);
|
doc->UpdateToolData(id, data);
|
||||||
|
@ -189,7 +189,7 @@ VToolEllipticalArc* VToolEllipticalArc::Create(const quint32 _id, const quint32
|
||||||
{
|
{
|
||||||
VToolEllipticalArc *toolEllipticalArc = new VToolEllipticalArc(doc, data, id, typeCreation);
|
VToolEllipticalArc *toolEllipticalArc = new VToolEllipticalArc(doc, data, id, typeCreation);
|
||||||
scene->addItem(toolEllipticalArc);
|
scene->addItem(toolEllipticalArc);
|
||||||
InitArcToolConnections(scene, toolEllipticalArc);
|
InitElArcToolConnections(scene, toolEllipticalArc);
|
||||||
doc->AddTool(id, toolEllipticalArc);
|
doc->AddTool(id, toolEllipticalArc);
|
||||||
doc->IncrementReferens(c.getIdTool());
|
doc->IncrementReferens(c.getIdTool());
|
||||||
return toolEllipticalArc;
|
return toolEllipticalArc;
|
||||||
|
|
|
@ -59,8 +59,9 @@ public:
|
||||||
virtual void setDialog() Q_DECL_OVERRIDE;
|
virtual void setDialog() Q_DECL_OVERRIDE;
|
||||||
static VToolEllipticalArc* Create(DialogTool *dialog, VMainGraphicsScene *scene, VAbstractPattern *doc,
|
static VToolEllipticalArc* Create(DialogTool *dialog, VMainGraphicsScene *scene, VAbstractPattern *doc,
|
||||||
VContainer *data);
|
VContainer *data);
|
||||||
static VToolEllipticalArc* Create(const quint32 _id, const quint32 ¢er, QString &radius1, QString &radius2, QString &f1, QString &f2, QString &rotationAngle,
|
static VToolEllipticalArc* Create(const quint32 _id, const quint32 ¢er, QString &radius1, QString &radius2,
|
||||||
const QString &color, VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data,
|
QString &f1, QString &f2, QString &rotationAngle, const QString &color,
|
||||||
|
VMainGraphicsScene *scene, VAbstractPattern *doc, VContainer *data,
|
||||||
const Document &parse, const Source &typeCreation);
|
const Document &parse, const Source &typeCreation);
|
||||||
static const QString ToolType;
|
static const QString ToolType;
|
||||||
virtual int type() const Q_DECL_OVERRIDE {return Type;}
|
virtual int type() const Q_DECL_OVERRIDE {return Type;}
|
||||||
|
|
|
@ -49,6 +49,7 @@
|
||||||
#include "../vgeometry/vabstractcubicbezierpath.h"
|
#include "../vgeometry/vabstractcubicbezierpath.h"
|
||||||
#include "../vgeometry/vabstractcurve.h"
|
#include "../vgeometry/vabstractcurve.h"
|
||||||
#include "../vgeometry/varc.h"
|
#include "../vgeometry/varc.h"
|
||||||
|
#include "../vgeometry/vellipticalarc.h"
|
||||||
#include "../vgeometry/vgobject.h"
|
#include "../vgeometry/vgobject.h"
|
||||||
#include "../vgeometry/vpointf.h"
|
#include "../vgeometry/vpointf.h"
|
||||||
#include "../vgeometry/vspline.h"
|
#include "../vgeometry/vspline.h"
|
||||||
|
@ -327,21 +328,15 @@ void VToolCurveIntersectAxis::SetVisualization()
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QT_WARNING_PUSH
|
template <class Item>
|
||||||
QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
void VToolCurveIntersectAxis::InitArc(VContainer *data, qreal segLength, const VPointF *p, quint32 curveId)
|
||||||
void VToolCurveIntersectAxis::InitSegments(const GOType &curveType, qreal segLength, const VPointF *p, quint32 curveId,
|
|
||||||
VContainer *data)
|
|
||||||
{
|
{
|
||||||
switch(curveType)
|
QSharedPointer<Item> a1;
|
||||||
{
|
QSharedPointer<Item> a2;
|
||||||
case GOType::Arc:
|
|
||||||
{
|
|
||||||
QSharedPointer<VArc> a1;
|
|
||||||
QSharedPointer<VArc> a2;
|
|
||||||
|
|
||||||
const QSharedPointer<VArc> arc = data->GeometricObject<VArc>(curveId);
|
const QSharedPointer<Item> arc = data->GeometricObject<Item>(curveId);
|
||||||
VArc arc1;
|
Item arc1;
|
||||||
VArc arc2;
|
Item arc2;
|
||||||
|
|
||||||
if (not VFuzzyComparePossibleNulls(segLength, -1))
|
if (not VFuzzyComparePossibleNulls(segLength, -1))
|
||||||
{
|
{
|
||||||
|
@ -358,13 +353,13 @@ void VToolCurveIntersectAxis::InitSegments(const GOType &curveType, qreal segLen
|
||||||
|
|
||||||
if (not VFuzzyComparePossibleNulls(segLength, -1))
|
if (not VFuzzyComparePossibleNulls(segLength, -1))
|
||||||
{
|
{
|
||||||
a1 = QSharedPointer<VArc>(new VArc(arc1));
|
a1 = QSharedPointer<Item>(new Item(arc1));
|
||||||
a2 = QSharedPointer<VArc>(new VArc(arc2));
|
a2 = QSharedPointer<Item>(new Item(arc2));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
a1 = QSharedPointer<VArc>(new VArc());
|
a1 = QSharedPointer<Item>(new Item());
|
||||||
a2 = QSharedPointer<VArc>(new VArc());
|
a2 = QSharedPointer<Item>(new Item());
|
||||||
|
|
||||||
// Take names for empty arcs from donors.
|
// Take names for empty arcs from donors.
|
||||||
a1->setName(arc1.name());
|
a1->setName(arc1.name());
|
||||||
|
@ -373,8 +368,22 @@ void VToolCurveIntersectAxis::InitSegments(const GOType &curveType, qreal segLen
|
||||||
|
|
||||||
data->AddArc(a1, arc1.id(), p->id());
|
data->AddArc(a1, arc1.id(), p->id());
|
||||||
data->AddArc(a2, arc2.id(), p->id());
|
data->AddArc(a2, arc2.id(), p->id());
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QT_WARNING_PUSH
|
||||||
|
QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
|
void VToolCurveIntersectAxis::InitSegments(const GOType &curveType, qreal segLength, const VPointF *p, quint32 curveId,
|
||||||
|
VContainer *data)
|
||||||
|
{
|
||||||
|
switch(curveType)
|
||||||
|
{
|
||||||
|
case GOType::EllipticalArc:
|
||||||
|
InitArc<VEllipticalArc>(data, segLength, p, curveId);
|
||||||
|
break;
|
||||||
|
case GOType::Arc:
|
||||||
|
InitArc<VArc>(data, segLength, p, curveId);
|
||||||
|
break;
|
||||||
case GOType::CubicBezier:
|
case GOType::CubicBezier:
|
||||||
case GOType::Spline:
|
case GOType::Spline:
|
||||||
{
|
{
|
||||||
|
@ -462,7 +471,6 @@ void VToolCurveIntersectAxis::InitSegments(const GOType &curveType, qreal segLen
|
||||||
data->AddSpline(splP2, NULL_ID, p->id());
|
data->AddSpline(splP2, NULL_ID, p->id());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GOType::EllipticalArc:
|
|
||||||
case GOType::Point:
|
case GOType::Point:
|
||||||
case GOType::Unknown:
|
case GOType::Unknown:
|
||||||
Q_UNREACHABLE();
|
Q_UNREACHABLE();
|
||||||
|
|
|
@ -98,6 +98,8 @@ private:
|
||||||
const QString &lineColor, const QString &formulaAngle, const quint32 &basePointId,
|
const QString &lineColor, const QString &formulaAngle, const quint32 &basePointId,
|
||||||
const quint32 &curveId, const Source &typeCreation, QGraphicsItem * parent = nullptr);
|
const quint32 &curveId, const Source &typeCreation, QGraphicsItem * parent = nullptr);
|
||||||
|
|
||||||
|
template <class Item>
|
||||||
|
static void InitArc(VContainer *data, qreal segLength, const VPointF *p, quint32 curveId);
|
||||||
static void InitSegments(const GOType &curveType, qreal segLength, const VPointF *p, quint32 curveId,
|
static void InitSegments(const GOType &curveType, qreal segLength, const VPointF *p, quint32 curveId,
|
||||||
VContainer *data);
|
VContainer *data);
|
||||||
};
|
};
|
||||||
|
|
|
@ -333,6 +333,12 @@ void VMainGraphicsScene::ToggleArcSelection(bool enabled)
|
||||||
emit EnableArcItemSelection(enabled);
|
emit EnableArcItemSelection(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VMainGraphicsScene::ToggleElArcSelection(bool enabled)
|
||||||
|
{
|
||||||
|
emit EnableElArcItemSelection(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VMainGraphicsScene::ToggleSplineSelection(bool enabled)
|
void VMainGraphicsScene::ToggleSplineSelection(bool enabled)
|
||||||
{
|
{
|
||||||
|
@ -387,6 +393,12 @@ void VMainGraphicsScene::ToggleArcHover(bool enabled)
|
||||||
emit EnableArcItemHover(enabled);
|
emit EnableArcItemHover(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VMainGraphicsScene::ToggleElArcHover(bool enabled)
|
||||||
|
{
|
||||||
|
emit EnableElArcItemHover(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VMainGraphicsScene::ToggleSplineHover(bool enabled)
|
void VMainGraphicsScene::ToggleSplineHover(bool enabled)
|
||||||
{
|
{
|
||||||
|
|
|
@ -81,6 +81,7 @@ public slots:
|
||||||
void TogglePointSelection(bool enabled);
|
void TogglePointSelection(bool enabled);
|
||||||
void ToggleLineSelection(bool enabled);
|
void ToggleLineSelection(bool enabled);
|
||||||
void ToggleArcSelection(bool enabled);
|
void ToggleArcSelection(bool enabled);
|
||||||
|
void ToggleElArcSelection(bool enabled);
|
||||||
void ToggleSplineSelection(bool enabled);
|
void ToggleSplineSelection(bool enabled);
|
||||||
void ToggleSplinePathSelection(bool enabled);
|
void ToggleSplinePathSelection(bool enabled);
|
||||||
void ToggleNodeLabelSelection(bool enabled);
|
void ToggleNodeLabelSelection(bool enabled);
|
||||||
|
@ -91,6 +92,7 @@ public slots:
|
||||||
void TogglePointHover(bool enabled);
|
void TogglePointHover(bool enabled);
|
||||||
void ToggleLineHover(bool enabled);
|
void ToggleLineHover(bool enabled);
|
||||||
void ToggleArcHover(bool enabled);
|
void ToggleArcHover(bool enabled);
|
||||||
|
void ToggleElArcHover(bool enabled);
|
||||||
void ToggleSplineHover(bool enabled);
|
void ToggleSplineHover(bool enabled);
|
||||||
void ToggleSplinePathHover(bool enabled);
|
void ToggleSplinePathHover(bool enabled);
|
||||||
void ToggleNodeLabelHover(bool enabled);
|
void ToggleNodeLabelHover(bool enabled);
|
||||||
|
@ -133,6 +135,7 @@ signals:
|
||||||
void EnablePointItemSelection(bool enable);
|
void EnablePointItemSelection(bool enable);
|
||||||
void EnableLineItemSelection(bool enable);
|
void EnableLineItemSelection(bool enable);
|
||||||
void EnableArcItemSelection(bool enable);
|
void EnableArcItemSelection(bool enable);
|
||||||
|
void EnableElArcItemSelection(bool enable);
|
||||||
void EnableSplineItemSelection(bool enable);
|
void EnableSplineItemSelection(bool enable);
|
||||||
void EnableSplinePathItemSelection(bool enable);
|
void EnableSplinePathItemSelection(bool enable);
|
||||||
void EnableNodeLabelItemSelection(bool enabled);
|
void EnableNodeLabelItemSelection(bool enabled);
|
||||||
|
@ -142,6 +145,7 @@ signals:
|
||||||
void EnableLabelItemHover(bool enable);
|
void EnableLabelItemHover(bool enable);
|
||||||
void EnablePointItemHover(bool enable);
|
void EnablePointItemHover(bool enable);
|
||||||
void EnableArcItemHover(bool enable);
|
void EnableArcItemHover(bool enable);
|
||||||
|
void EnableElArcItemHover(bool enable);
|
||||||
void EnableSplineItemHover(bool enable);
|
void EnableSplineItemHover(bool enable);
|
||||||
void EnableSplinePathItemHover(bool enable);
|
void EnableSplinePathItemHover(bool enable);
|
||||||
void EnableNodeLabelItemHover(bool enabled);
|
void EnableNodeLabelItemHover(bool enabled);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user