diff --git a/tools/drawTools/vtoolalongline.h b/tools/drawTools/vtoolalongline.h index ce02b8b30..4f5ddd04b 100644 --- a/tools/drawTools/vtoolalongline.h +++ b/tools/drawTools/vtoolalongline.h @@ -25,30 +25,30 @@ #include "vtoollinepoint.h" #include "dialogs/dialogalongline.h" -class VToolAlongLine : public VToolLinePoint -{ +class VToolAlongLine : public VToolLinePoint{ Q_OBJECT public: - VToolAlongLine(VDomDocument *doc, VContainer *data, qint64 id, const QString &formula, - const qint64 &firstPointId, const qint64 &secondPointId, const QString &typeLine, - Tool::Sources typeCreation, QGraphicsItem * parent = 0); - virtual void setDialog(); - static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, VDomDocument *doc, - VContainer *data); - static void Create(const qint64 _id, const QString &pointName, const QString &typeLine, - const QString &formula, const qint64 &firstPointId, const qint64 &secondPointId, - const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VDomDocument *doc, - VContainer *data, const Document::Documents &parse, Tool::Sources typeCreation); + VToolAlongLine(VDomDocument *doc, VContainer *data, qint64 id, const QString &formula, + const qint64 &firstPointId, const qint64 &secondPointId, + const QString &typeLine, Tool::Sources typeCreation, + QGraphicsItem * parent = 0); + virtual void setDialog(); + static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, VDomDocument *doc, + VContainer *data); + static void Create(const qint64 _id, const QString &pointName, const QString &typeLine, + const QString &formula, const qint64 &firstPointId, const qint64 &secondPointId, + const qreal &mx, const qreal &my, VMainGraphicsScene *scene, VDomDocument *doc, + VContainer *data, const Document::Documents &parse, Tool::Sources typeCreation); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); - virtual void SetFactor(qreal factor); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); + virtual void SetFactor(qreal factor); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - virtual void RemoveReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + virtual void RemoveReferens(); private: - qint64 secondPointId; + qint64 secondPointId; QSharedPointer dialogAlongLine; }; diff --git a/tools/drawTools/vtoolbisector.h b/tools/drawTools/vtoolbisector.h index 3a982bbc1..fa0bc9061 100644 --- a/tools/drawTools/vtoolbisector.h +++ b/tools/drawTools/vtoolbisector.h @@ -27,31 +27,31 @@ class VToolBisector : public VToolLinePoint{ public: - VToolBisector(VDomDocument *doc, VContainer *data, const qint64 &id, - const QString &typeLine, const QString &formula, const qint64 &firstPointId, - const qint64 &secondPointId, const qint64 &thirdPointId, Tool::Sources typeCreation, - QGraphicsItem * parent = 0); - static QPointF FindPoint(const QPointF &firstPoint, const QPointF &secondPoint, + VToolBisector(VDomDocument *doc, VContainer *data, const qint64 &id, + const QString &typeLine, const QString &formula, const qint64 &firstPointId, + const qint64 &secondPointId, const qint64 &thirdPointId, + Tool::Sources typeCreation, QGraphicsItem * parent = 0); + static QPointF FindPoint(const QPointF &firstPoint, const QPointF &secondPoint, const QPointF &thirdPoint, const qreal& length); - virtual void setDialog(); - static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, VDomDocument *doc, - VContainer *data); - static void Create(const qint64 _id, const QString &formula, const qint64 &firstPointId, - const qint64 &secondPointId, const qint64 &thirdPointId, const QString &typeLine, - const QString &pointName, const qreal &mx, const qreal &my, VMainGraphicsScene *scene, - VDomDocument *doc, VContainer *data, const Document::Documents &parse, - Tool::Sources typeCreation); + virtual void setDialog(); + static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, + VDomDocument *doc, VContainer *data); + static void Create(const qint64 _id, const QString &formula, const qint64 &firstPointId, + const qint64 &secondPointId, const qint64 &thirdPointId, const QString &typeLine, + const QString &pointName, const qreal &mx, const qreal &my, + VMainGraphicsScene *scene, VDomDocument *doc, VContainer *data, + const Document::Documents &parse, Tool::Sources typeCreation); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); - virtual void SetFactor(qreal factor); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); + virtual void SetFactor(qreal factor); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - virtual void RemoveReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + virtual void RemoveReferens(); private: - qint64 firstPointId; - qint64 thirdPointId; + qint64 firstPointId; + qint64 thirdPointId; QSharedPointer dialogBisector; }; diff --git a/tools/drawTools/vtoolendline.h b/tools/drawTools/vtoolendline.h index 4cd89b31b..7b9a5e39b 100644 --- a/tools/drawTools/vtoolendline.h +++ b/tools/drawTools/vtoolendline.h @@ -28,23 +28,22 @@ class VToolEndLine : public VToolLinePoint{ Q_OBJECT public: - VToolEndLine(VDomDocument *doc, VContainer *data, const qint64 &id, - const QString &typeLine, const QString &formula, const qreal &angle, - const qint64 &basePointId, Tool::Sources typeCreation, - QGraphicsItem * parent = 0); + VToolEndLine(VDomDocument *doc, VContainer *data, const qint64 &id, const QString &typeLine, + const QString &formula, const qreal &angle, const qint64 &basePointId, + Tool::Sources typeCreation, QGraphicsItem * parent = 0); virtual void setDialog(); - static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, VDomDocument *doc, - VContainer *data); - static void Create(const qint64 _id, const QString &pointName, const QString &typeLine, - const QString &formula, const qreal &angle, const qint64 &basePointId, const qreal &mx, const qreal &my, - VMainGraphicsScene *scene, VDomDocument *doc, VContainer *data, - const Document::Documents &parse, Tool::Sources typeCreation); + static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, VDomDocument *doc, + VContainer *data); + static void Create(const qint64 _id, const QString &pointName, const QString &typeLine, + const QString &formula, const qreal &angle, const qint64 &basePointId, const qreal &mx, + const qreal &my, VMainGraphicsScene *scene, VDomDocument *doc, VContainer *data, + const Document::Documents &parse, Tool::Sources typeCreation); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); private: QSharedPointer dialogEndLine; }; diff --git a/tools/drawTools/vtoolline.h b/tools/drawTools/vtoolline.h index dab4b6d47..bc9976805 100644 --- a/tools/drawTools/vtoolline.h +++ b/tools/drawTools/vtoolline.h @@ -29,31 +29,31 @@ class VToolLine: public VDrawTool, public QGraphicsLineItem{ Q_OBJECT public: - VToolLine(VDomDocument *doc, VContainer *data, qint64 id, qint64 firstPoint, - qint64 secondPoint, Tool::Sources typeCreation, QGraphicsItem * parent = 0); - virtual void setDialog(); - static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, - VDomDocument *doc, VContainer *data); - static void Create(const qint64 &_id, const qint64 &firstPoint, const qint64 &secondPoint, - VMainGraphicsScene *scene, VDomDocument *doc, VContainer *data, - const Document::Documents &parse, Tool::Sources typeCreation); + VToolLine(VDomDocument *doc, VContainer *data, qint64 id, qint64 firstPoint, + qint64 secondPoint, Tool::Sources typeCreation, QGraphicsItem * parent = 0); + virtual void setDialog(); + static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, VDomDocument *doc, + VContainer *data); + static void Create(const qint64 &_id, const qint64 &firstPoint, const qint64 &secondPoint, + VMainGraphicsScene *scene, VDomDocument *doc, VContainer *data, + const Document::Documents &parse, Tool::Sources typeCreation); public slots: - virtual void FullUpdateFromFile(); - virtual void ChangedActivDraw(const QString newName); - virtual void FullUpdateFromGui(int result); - virtual void ShowTool(qint64 id, Qt::GlobalColor color, bool enable); - virtual void SetFactor(qreal factor); + virtual void FullUpdateFromFile(); + virtual void ChangedActivDraw(const QString newName); + virtual void FullUpdateFromGui(int result); + virtual void ShowTool(qint64 id, Qt::GlobalColor color, bool enable); + virtual void SetFactor(qreal factor); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - virtual void hoverMoveEvent ( QGraphicsSceneHoverEvent * event ); - virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ); - virtual void RemoveReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + virtual void hoverMoveEvent ( QGraphicsSceneHoverEvent * event ); + virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ); + virtual void RemoveReferens(); private: - qint64 firstPoint; - qint64 secondPoint; + qint64 firstPoint; + qint64 secondPoint; QSharedPointer dialogLine; - void RefreshGeometry(); + void RefreshGeometry(); }; #endif // VTOOLLINE_H diff --git a/tools/drawTools/vtoolnormal.h b/tools/drawTools/vtoolnormal.h index 41bda6144..f7336cacf 100644 --- a/tools/drawTools/vtoolnormal.h +++ b/tools/drawTools/vtoolnormal.h @@ -25,8 +25,7 @@ #include "vtoollinepoint.h" #include "dialogs/dialognormal.h" -class VToolNormal : public VToolLinePoint -{ +class VToolNormal : public VToolLinePoint{ Q_OBJECT public: VToolNormal(VDomDocument *doc, VContainer *data, const qint64 &id, const QString &typeLine, diff --git a/tools/drawTools/vtoolpointofcontact.h b/tools/drawTools/vtoolpointofcontact.h index 049e6efbc..de7390549 100644 --- a/tools/drawTools/vtoolpointofcontact.h +++ b/tools/drawTools/vtoolpointofcontact.h @@ -25,8 +25,7 @@ #include "vtoolpoint.h" #include "dialogs/dialogpointofcontact.h" -class VToolPointOfContact : public VToolPoint -{ +class VToolPointOfContact : public VToolPoint{ public: VToolPointOfContact(VDomDocument *doc, VContainer *data, const qint64 &id, const QString &radius, const qint64 ¢er, diff --git a/tools/drawTools/vtoolsinglepoint.h b/tools/drawTools/vtoolsinglepoint.h index 2a610bc92..ee9b7bcf3 100644 --- a/tools/drawTools/vtoolsinglepoint.h +++ b/tools/drawTools/vtoolsinglepoint.h @@ -25,25 +25,24 @@ #include "dialogs/dialogsinglepoint.h" #include "vtoolpoint.h" -class VToolSinglePoint : public VToolPoint -{ +class VToolSinglePoint : public VToolPoint{ Q_OBJECT public: - VToolSinglePoint (VDomDocument *doc, VContainer *data, qint64 id, - Tool::Sources typeCreation, QGraphicsItem * parent = 0 ); - virtual void setDialog(); + VToolSinglePoint (VDomDocument *doc, VContainer *data, qint64 id, Tool::Sources typeCreation, + QGraphicsItem * parent = 0 ); + virtual void setDialog(); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); - virtual void ChangedActivDraw(const QString newName); - virtual void SetFactor(qreal factor); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); + virtual void ChangedActivDraw(const QString newName); + virtual void SetFactor(qreal factor); signals: - void FullUpdateTree(); + void FullUpdateTree(); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - QVariant itemChange ( GraphicsItemChange change, const QVariant &value ); - virtual void decrementReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + QVariant itemChange ( GraphicsItemChange change, const QVariant &value ); + virtual void decrementReferens(); private: QSharedPointer dialogSinglePoint; }; diff --git a/tools/modelingTools/vmodelingbisector.cpp b/tools/modelingTools/vmodelingbisector.cpp index 158b19ad0..b98391d06 100644 --- a/tools/modelingTools/vmodelingbisector.cpp +++ b/tools/modelingTools/vmodelingbisector.cpp @@ -21,6 +21,7 @@ #include "vmodelingbisector.h" #include +#include "../drawTools/vtoolbisector.h" VModelingBisector::VModelingBisector(VDomDocument *doc, VContainer *data, const qint64 &id, const QString &typeLine, const QString &formula, const qint64 &firstPointId, @@ -36,19 +37,6 @@ VModelingBisector::VModelingBisector(VDomDocument *doc, VContainer *data, const } } -QPointF VModelingBisector::FindPoint(const QPointF &firstPoint, const QPointF &secondPoint, - const QPointF &thirdPoint, const qreal &length){ - QLineF line1(secondPoint, firstPoint); - QLineF line2(secondPoint, thirdPoint); - qreal angle = line1.angleTo(line2); - if(angle>180){ - angle = 360 - angle; - } - line1.setAngle(line1.angle()-angle/2); - line1.setLength(length); - return line1.p2(); -} - void VModelingBisector::setDialog(){ Q_ASSERT(!dialogBisector.isNull()); if(!dialogBisector.isNull()){ @@ -89,7 +77,7 @@ VModelingBisector *VModelingBisector::Create(const qint64 _id, const QString &fo QString errorMsg; qreal result = cal.eval(formula, &errorMsg); if(errorMsg.isEmpty()){ - QPointF fPoint = VModelingBisector::FindPoint(firstPoint.toQPointF(), secondPoint.toQPointF(), + QPointF fPoint = VToolBisector::FindPoint(firstPoint.toQPointF(), secondPoint.toQPointF(), thirdPoint.toQPointF(), result*PrintDPI/25.4); qint64 id = _id; if(typeCreation == Tool::FromGui){ diff --git a/tools/modelingTools/vmodelingbisector.h b/tools/modelingTools/vmodelingbisector.h index 8795d90de..3c13a03e6 100644 --- a/tools/modelingTools/vmodelingbisector.h +++ b/tools/modelingTools/vmodelingbisector.h @@ -28,31 +28,29 @@ class VModelingBisector : public VModelingLinePoint{ Q_OBJECT public: - VModelingBisector(VDomDocument *doc, VContainer *data, const qint64 &id, - const QString &typeLine, const QString &formula, - const qint64 &firstPointId, const qint64 &secondPointId, - const qint64 &thirdPointId, Tool::Sources typeCreation, - QGraphicsItem * parent = 0); - static QPointF FindPoint(const QPointF &firstPoint, const QPointF &secondPoint, - const QPointF &thirdPoint, const qreal& length); - virtual void setDialog(); - static VModelingBisector* Create(QSharedPointer &dialog, VDomDocument *doc, - VContainer *data); - static VModelingBisector* Create(const qint64 _id, const QString &formula, const qint64 &firstPointId, - const qint64 &secondPointId, const qint64 &thirdPointId, - const QString &typeLine, const QString &pointName, const qreal &mx, - const qreal &my, VDomDocument *doc, VContainer *data, - const Document::Documents &parse, Tool::Sources typeCreation); + VModelingBisector(VDomDocument *doc, VContainer *data, const qint64 &id, + const QString &typeLine, const QString &formula, + const qint64 &firstPointId, const qint64 &secondPointId, + const qint64 &thirdPointId, Tool::Sources typeCreation, + QGraphicsItem * parent = 0); + virtual void setDialog(); + static VModelingBisector* Create(QSharedPointer &dialog, VDomDocument *doc, + VContainer *data); + static VModelingBisector* Create(const qint64 _id, const QString &formula, const qint64 &firstPointId, + const qint64 &secondPointId, const qint64 &thirdPointId, + const QString &typeLine, const QString &pointName, const qreal &mx, + const qreal &my, VDomDocument *doc, VContainer *data, + const Document::Documents &parse, Tool::Sources typeCreation); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - virtual void RemoveReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + virtual void RemoveReferens(); private: - qint64 firstPointId; - qint64 thirdPointId; + qint64 firstPointId; + qint64 thirdPointId; QSharedPointer dialogBisector; }; diff --git a/tools/modelingTools/vmodelingheight.cpp b/tools/modelingTools/vmodelingheight.cpp index d4d6ef1bc..46e3d3565 100644 --- a/tools/modelingTools/vmodelingheight.cpp +++ b/tools/modelingTools/vmodelingheight.cpp @@ -1,4 +1,5 @@ #include "vmodelingheight.h" +#include "../drawTools/vtoolheight.h" VModelingHeight::VModelingHeight(VDomDocument *doc, VContainer *data, const qint64 &id, const QString &typeLine, const qint64 &basePointId, const qint64 &p1LineId, @@ -44,7 +45,8 @@ VModelingHeight *VModelingHeight::Create(const qint64 _id, const QString &pointN VPointF p1Line = data->GetModelingPoint(p1LineId); VPointF p2Line = data->GetModelingPoint(p2LineId); - QPointF pHeight = FindPoint(QLineF(p1Line.toQPointF(), p2Line.toQPointF()), basePoint.toQPointF()); + QPointF pHeight = VToolHeight::FindPoint(QLineF(p1Line.toQPointF(), p2Line.toQPointF()), + basePoint.toQPointF()); QLineF line = QLineF(basePoint.toQPointF(), pHeight); qint64 id = _id; if(typeCreation == Tool::FromGui){ @@ -113,18 +115,3 @@ void VModelingHeight::AddToFile(){ AddToModeling(domElement); } - -QPointF VModelingHeight::FindPoint(const QLineF &line, const QPointF &point){ - qreal a = 0, b = 0, c = 0; - LineCoefficients(line, &a, &b, &c); - qreal x = point.x() - b; - qreal y = -a + point.y(); - QLineF l (point, QPointF(x, y)); - QPointF p; - QLineF::IntersectType intersect = line.intersect(l, &p); - if(intersect == QLineF::UnboundedIntersection || intersect == QLineF::BoundedIntersection){ - return p; - } else { - return QPointF(); - } -} diff --git a/tools/modelingTools/vmodelingheight.h b/tools/modelingTools/vmodelingheight.h index 8d02dd8fd..7d2362b5a 100644 --- a/tools/modelingTools/vmodelingheight.h +++ b/tools/modelingTools/vmodelingheight.h @@ -11,14 +11,13 @@ public: const QString &typeLine, const qint64 &basePointId, const qint64 &p1LineId, const qint64 &p2LineId, Tool::Sources typeCreation, QGraphicsItem * parent = 0); -virtual void setDialog(); + virtual void setDialog(); static VModelingHeight* Create(QSharedPointer &dialog, VDomDocument *doc, VContainer *data); static VModelingHeight* Create(const qint64 _id, const QString &pointName, const QString &typeLine, const qint64 &basePointId, const qint64 &p1LineId, const qint64 &p2LineId, const qreal &mx, const qreal &my, VDomDocument *doc, VContainer *data, const Document::Documents &parse, Tool::Sources typeCreation); - static QPointF FindPoint(const QLineF &line, const QPointF &point); public slots: virtual void FullUpdateFromFile(); virtual void FullUpdateFromGui(int result); diff --git a/tools/modelingTools/vmodelingnormal.cpp b/tools/modelingTools/vmodelingnormal.cpp index 55edddd10..448232f50 100644 --- a/tools/modelingTools/vmodelingnormal.cpp +++ b/tools/modelingTools/vmodelingnormal.cpp @@ -20,6 +20,7 @@ ****************************************************************************/ #include "vmodelingnormal.h" +#include "../drawTools/vtoolnormal.h" VModelingNormal::VModelingNormal(VDomDocument *doc, VContainer *data, const qint64 &id, const QString &typeLine, @@ -72,8 +73,8 @@ VModelingNormal *VModelingNormal::Create(const qint64 _id, const QString &formul QString errorMsg; qreal result = cal.eval(formula, &errorMsg); if(errorMsg.isEmpty()){ - QPointF fPoint = VModelingNormal::FindPoint(firstPoint.toQPointF(), secondPoint.toQPointF(), - result*PrintDPI/25.4, angle); + QPointF fPoint = VToolNormal::FindPoint(firstPoint.toQPointF(), secondPoint.toQPointF(), + toPixel(result), angle); qint64 id = _id; if(typeCreation == Tool::FromGui){ id = data->AddModelingPoint(VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); @@ -95,15 +96,6 @@ VModelingNormal *VModelingNormal::Create(const qint64 _id, const QString &formul return point; } -QPointF VModelingNormal::FindPoint(const QPointF &firstPoint, const QPointF &secondPoint, const qreal &length, - const qreal &angle){ - QLineF line(firstPoint, secondPoint); - QLineF normal = line.normalVector(); - normal.setAngle(normal.angle()+angle); - normal.setLength(length); - return normal.p2(); -} - void VModelingNormal::FullUpdateFromFile(){ QDomElement domElement = doc->elementById(QString().setNum(id)); if(domElement.isElement()){ diff --git a/tools/modelingTools/vmodelingnormal.h b/tools/modelingTools/vmodelingnormal.h index 906aa797f..7d640421e 100644 --- a/tools/modelingTools/vmodelingnormal.h +++ b/tools/modelingTools/vmodelingnormal.h @@ -28,30 +28,27 @@ class VModelingNormal : public VModelingLinePoint{ Q_OBJECT public: - VModelingNormal(VDomDocument *doc, VContainer *data, const qint64 &id, - const QString &typeLine, const QString &formula, - const qreal &angle, const qint64 &firstPointId, - const qint64 &secondPointId, Tool::Sources typeCreation, - QGraphicsItem * parent = 0); - virtual void setDialog(); - static VModelingNormal* Create(QSharedPointer &dialog, VDomDocument *doc, - VContainer *data); - static VModelingNormal* Create(const qint64 _id, const QString &formula, const qint64 &firstPointId, - const qint64 &secondPointId, const QString typeLine, - const QString pointName, const qreal angle, const qreal &mx, - const qreal &my, VDomDocument *doc, VContainer *data, - const Document::Documents &parse, Tool::Sources typeCreation); - static QPointF FindPoint(const QPointF &firstPoint, const QPointF &secondPoint, - const qreal &length, const qreal &angle = 0); + VModelingNormal(VDomDocument *doc, VContainer *data, const qint64 &id, + const QString &typeLine, const QString &formula, + const qreal &angle, const qint64 &firstPointId, + const qint64 &secondPointId, Tool::Sources typeCreation, + QGraphicsItem * parent = 0); + virtual void setDialog(); + static VModelingNormal* Create(QSharedPointer &dialog, VDomDocument *doc, VContainer *data); + static VModelingNormal* Create(const qint64 _id, const QString &formula, const qint64 &firstPointId, + const qint64 &secondPointId, const QString typeLine, + const QString pointName, const qreal angle, const qreal &mx, + const qreal &my, VDomDocument *doc, VContainer *data, + const Document::Documents &parse, Tool::Sources typeCreation); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - virtual void RemoveReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + virtual void RemoveReferens(); private: - qint64 secondPointId; + qint64 secondPointId; QSharedPointer dialogNormal; }; diff --git a/tools/modelingTools/vmodelingpointofcontact.cpp b/tools/modelingTools/vmodelingpointofcontact.cpp index 35d6e9c2e..049d90300 100644 --- a/tools/modelingTools/vmodelingpointofcontact.cpp +++ b/tools/modelingTools/vmodelingpointofcontact.cpp @@ -20,6 +20,7 @@ ****************************************************************************/ #include "vmodelingpointofcontact.h" +#include "../drawTools/vtoolpointofcontact.h" VModelingPointOfContact::VModelingPointOfContact(VDomDocument *doc, VContainer *data, const qint64 &id, const QString &radius, const qint64 ¢er, @@ -45,28 +46,6 @@ void VModelingPointOfContact::setDialog(){ } } -QPointF VModelingPointOfContact::FindPoint(const qreal &radius, const QPointF ¢er, const QPointF &firstPoint, - const QPointF &secondPoint){ - QPointF pArc; - qreal s = 0.0, s_x, s_y, step = 0.01, distans; - while( s < 1){ - s_x = secondPoint.x()-(qAbs(secondPoint.x()-firstPoint.x()))*s; - s_y = secondPoint.y()-(qAbs(secondPoint.y()-firstPoint.y()))*s; - distans = QLineF(center.x(), center.y(), s_x, s_y).length(); - if(ceil(distans*10) == ceil(radius*10)){ - pArc.rx() = s_x; - pArc.ry() = s_y; - break; - } - if(distans &dialog, VDomDocument *doc, VContainer *data){ QString radius = dialog->getRadius(); @@ -94,8 +73,8 @@ VModelingPointOfContact *VModelingPointOfContact::Create(const qint64 _id, const QString errorMsg; qreal result = cal.eval(radius, &errorMsg); if(errorMsg.isEmpty()){ - QPointF fPoint = VModelingPointOfContact::FindPoint(result*PrintDPI/25.4, centerP.toQPointF(), - firstP.toQPointF(), secondP.toQPointF()); + QPointF fPoint = VToolPointOfContact::FindPoint(toPixel(result), centerP.toQPointF(), + firstP.toQPointF(), secondP.toQPointF()); qint64 id = _id; if(typeCreation == Tool::FromGui){ id = data->AddModelingPoint(VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); diff --git a/tools/modelingTools/vmodelingpointofcontact.h b/tools/modelingTools/vmodelingpointofcontact.h index 02302bc45..d8d4af4a4 100644 --- a/tools/modelingTools/vmodelingpointofcontact.h +++ b/tools/modelingTools/vmodelingpointofcontact.h @@ -28,35 +28,32 @@ class VModelingPointOfContact : public VModelingPoint{ Q_OBJECT public: - VModelingPointOfContact(VDomDocument *doc, VContainer *data, - const qint64 &id, const QString &radius, - const qint64 ¢er, - const qint64 &firstPointId, - const qint64 &secondPointId, - Tool::Sources typeCreation, - QGraphicsItem * parent = 0); - virtual void setDialog(); - static QPointF FindPoint(const qreal &radius, const QPointF ¢er, - const QPointF &firstPoint, const QPointF &secondPoint); - static VModelingPointOfContact* Create(QSharedPointer &dialog, + VModelingPointOfContact(VDomDocument *doc, VContainer *data, + const qint64 &id, const QString &radius, + const qint64 ¢er, const qint64 &firstPointId, + const qint64 &secondPointId, + Tool::Sources typeCreation, + QGraphicsItem * parent = 0); + virtual void setDialog(); + static VModelingPointOfContact* Create(QSharedPointer &dialog, VDomDocument *doc, VContainer *data); - static VModelingPointOfContact* Create(const qint64 _id, const QString &radius, const qint64 ¢er, - const qint64 &firstPointId, const qint64 &secondPointId, - const QString &pointName, const qreal &mx, const qreal &my, - VDomDocument *doc, VContainer *data, - const Document::Documents &parse, Tool::Sources typeCreation); + static VModelingPointOfContact* Create(const qint64 _id, const QString &radius, const qint64 ¢er, + const qint64 &firstPointId, const qint64 &secondPointId, + const QString &pointName, const qreal &mx, const qreal &my, + VDomDocument *doc, VContainer *data, + const Document::Documents &parse, Tool::Sources typeCreation); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - virtual void RemoveReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + virtual void RemoveReferens(); private: - QString radius; - qint64 center; - qint64 firstPointId; - qint64 secondPointId; + QString radius; + qint64 center; + qint64 firstPointId; + qint64 secondPointId; QSharedPointer dialogPointOfContact; }; diff --git a/tools/modelingTools/vmodelingshoulderpoint.cpp b/tools/modelingTools/vmodelingshoulderpoint.cpp index d96b5ccdf..16292b4df 100644 --- a/tools/modelingTools/vmodelingshoulderpoint.cpp +++ b/tools/modelingTools/vmodelingshoulderpoint.cpp @@ -21,6 +21,7 @@ #include "vmodelingshoulderpoint.h" #include +#include "../drawTools/vtoolshoulderpoint.h" VModelingShoulderPoint::VModelingShoulderPoint(VDomDocument *doc, VContainer *data, const qint64 &id, const QString &typeLine, const QString &formula, const qint64 &p1Line, @@ -48,27 +49,6 @@ void VModelingShoulderPoint::setDialog(){ } } -QPointF VModelingShoulderPoint::FindPoint(const QPointF &p1Line, const QPointF &p2Line, const QPointF &pShoulder, - const qreal &length){ - QLineF line = QLineF(p1Line, p2Line); - qreal dist = line.length(); - if(dist>length){ - qDebug()<<"A3П2="<=length){ - return line.p2(); - } - } -} - VModelingShoulderPoint *VModelingShoulderPoint::Create(QSharedPointer &dialog, VDomDocument *doc, VContainer *data){ QString formula = dialog->getFormula(); @@ -97,8 +77,8 @@ VModelingShoulderPoint *VModelingShoulderPoint::Create(const qint64 _id, const Q QString errorMsg; qreal result = cal.eval(formula, &errorMsg); if(errorMsg.isEmpty()){ - QPointF fPoint = VModelingShoulderPoint::FindPoint(firstPoint.toQPointF(), secondPoint.toQPointF(), - shoulderPoint.toQPointF(), result*PrintDPI/25.4); + QPointF fPoint = VToolShoulderPoint::FindPoint(firstPoint.toQPointF(), secondPoint.toQPointF(), + shoulderPoint.toQPointF(), toPixel(result)); qint64 id = _id; if(typeCreation == Tool::FromGui){ id = data->AddModelingPoint(VPointF(fPoint.x(), fPoint.y(), pointName, mx, my)); diff --git a/tools/modelingTools/vmodelingshoulderpoint.h b/tools/modelingTools/vmodelingshoulderpoint.h index 399c95868..e4bc9b928 100644 --- a/tools/modelingTools/vmodelingshoulderpoint.h +++ b/tools/modelingTools/vmodelingshoulderpoint.h @@ -28,33 +28,30 @@ class VModelingShoulderPoint : public VModelingLinePoint{ Q_OBJECT public: - VModelingShoulderPoint(VDomDocument *doc, VContainer *data, - const qint64 &id, const QString &typeLine, - const QString &formula, const qint64 &p1Line, - const qint64 &p2Line, const qint64 &pShoulder, - Tool::Sources typeCreation, - QGraphicsItem * parent = 0); - virtual void setDialog(); - static QPointF FindPoint(const QPointF &p1Line, const QPointF &p2Line, - const QPointF &pShoulder, const qreal &length); - static VModelingShoulderPoint* Create(QSharedPointer &dialog, - VDomDocument *doc, VContainer *data); - static VModelingShoulderPoint* Create(const qint64 _id, const QString &formula, const qint64 &p1Line, - const qint64 &p2Line, const qint64 &pShoulder, - const QString &typeLine, const QString &pointName, - const qreal &mx, const qreal &my, VDomDocument *doc, - VContainer *data, const Document::Documents &parse, - const Tool::Sources &typeCreation); + VModelingShoulderPoint(VDomDocument *doc, VContainer *data, + const qint64 &id, const QString &typeLine, + const QString &formula, const qint64 &p1Line, + const qint64 &p2Line, const qint64 &pShoulder, + Tool::Sources typeCreation, + QGraphicsItem * parent = 0); + virtual void setDialog(); + static VModelingShoulderPoint* Create(QSharedPointer &dialog, VDomDocument *doc, + VContainer *data); + static VModelingShoulderPoint* Create(const qint64 _id, const QString &formula, const qint64 &p1Line, + const qint64 &p2Line, const qint64 &pShoulder, + const QString &typeLine, const QString &pointName, const qreal &mx, + const qreal &my, VDomDocument *doc, VContainer *data, + const Document::Documents &parse, const Tool::Sources &typeCreation); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - virtual void RemoveReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + virtual void RemoveReferens(); private: - qint64 p2Line; - qint64 pShoulder; + qint64 p2Line; + qint64 pShoulder; QSharedPointer dialogShoulderPoint; }; diff --git a/tools/modelingTools/vmodelingsplinepath.h b/tools/modelingTools/vmodelingsplinepath.h index de3ea52c8..c92a70204 100644 --- a/tools/modelingTools/vmodelingsplinepath.h +++ b/tools/modelingTools/vmodelingsplinepath.h @@ -30,40 +30,38 @@ class VModelingSplinePath:public VModelingTool, public QGraphicsPathItem{ Q_OBJECT public: - VModelingSplinePath(VDomDocument *doc, VContainer *data, qint64 id, - Tool::Sources typeCreation, - QGraphicsItem * parent = 0); - virtual void setDialog(); - static VModelingSplinePath* Create(QSharedPointer &dialog, - VDomDocument *doc, VContainer *data); - static VModelingSplinePath* Create(const qint64 _id, const VSplinePath &path, VDomDocument *doc, - VContainer *data, const Document::Documents &parse, - Tool::Sources typeCreation); + VModelingSplinePath(VDomDocument *doc, VContainer *data, qint64 id, + Tool::Sources typeCreation, QGraphicsItem * parent = 0); + virtual void setDialog(); + static VModelingSplinePath* Create(QSharedPointer &dialog, VDomDocument *doc, + VContainer *data); + static VModelingSplinePath* Create(const qint64 _id, const VSplinePath &path, VDomDocument *doc, + VContainer *data, const Document::Documents &parse, + Tool::Sources typeCreation); signals: - void RefreshLine(const qint32 &indexSpline, SplinePoint::Position pos, - const QPointF &controlPoint, const QPointF &splinePoint); - void setEnabledPoint(bool enable); + void RefreshLine(const qint32 &indexSpline, SplinePoint::Position pos, + const QPointF &controlPoint, const QPointF &splinePoint); + void setEnabledPoint(bool enable); public slots: - virtual void FullUpdateFromFile(); - virtual void FullUpdateFromGui(int result); - void ControlPointChangePosition(const qint32 &indexSpline, - SplinePoint::Position position, - const QPointF pos); + virtual void FullUpdateFromFile(); + virtual void FullUpdateFromGui(int result); + void ControlPointChangePosition(const qint32 &indexSpline, + SplinePoint::Position position, const QPointF pos); protected: - virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); - virtual void AddToFile(); - virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ); - virtual void hoverMoveEvent ( QGraphicsSceneHoverEvent * event ); - virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ); - virtual void RemoveReferens(); + virtual void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event ); + virtual void AddToFile(); + virtual void mouseReleaseEvent ( QGraphicsSceneMouseEvent * event ); + virtual void hoverMoveEvent ( QGraphicsSceneHoverEvent * event ); + virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ); + virtual void RemoveReferens(); private: QSharedPointer dialogSplinePath; QVector controlPoints; - void RefreshGeometry(); - void AddPathPoint(QDomElement &domElement, const VSplinePoint &splPoint); - void UpdatePathPoint(QDomNode& node, VSplinePath &path); - void CorectControlPoints(const VSpline &spl, VSplinePath &splPath, - const qint32 &indexSpline); + void RefreshGeometry(); + void AddPathPoint(QDomElement &domElement, const VSplinePoint &splPoint); + void UpdatePathPoint(QDomNode& node, VSplinePath &path); + void CorectControlPoints(const VSpline &spl, VSplinePath &splPath, + const qint32 &indexSpline); }; #endif // VMODELINGSPLINEPATH_H diff --git a/tools/modelingTools/vmodelingtool.h b/tools/modelingTools/vmodelingtool.h index 69a4814e6..d19819378 100644 --- a/tools/modelingTools/vmodelingtool.h +++ b/tools/modelingTools/vmodelingtool.h @@ -51,6 +51,11 @@ protected: QAction *actionRemove = 0; if(showRemove){ actionRemove = menu.addAction(tr("Delete")); + if(_referens > 1){ + actionRemove->setEnabled(false); + } else { + actionRemove->setEnabled(true); + } } QAction *selectedAction = menu.exec(event->screenPos()); if(selectedAction == actionOption){