diff --git a/src/tools/drawTools/vtoolalongline.h b/src/tools/drawTools/vtoolalongline.h index 729beb822..35756f9bd 100644 --- a/src/tools/drawTools/vtoolalongline.h +++ b/src/tools/drawTools/vtoolalongline.h @@ -69,7 +69,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param pointName * @param typeLine * @param formula diff --git a/src/tools/drawTools/vtoolarc.h b/src/tools/drawTools/vtoolarc.h index f4b01e643..36043ea3d 100644 --- a/src/tools/drawTools/vtoolarc.h +++ b/src/tools/drawTools/vtoolarc.h @@ -66,7 +66,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param center * @param radius * @param f1 diff --git a/src/tools/drawTools/vtoolbisector.h b/src/tools/drawTools/vtoolbisector.h index 837628726..d991b3d14 100644 --- a/src/tools/drawTools/vtoolbisector.h +++ b/src/tools/drawTools/vtoolbisector.h @@ -80,7 +80,7 @@ public: VDomDocument *doc, VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param formula * @param firstPointId * @param secondPointId diff --git a/src/tools/drawTools/vtoolcutspline.h b/src/tools/drawTools/vtoolcutspline.h index bbb35487e..5c89137eb 100644 --- a/src/tools/drawTools/vtoolcutspline.h +++ b/src/tools/drawTools/vtoolcutspline.h @@ -68,7 +68,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param pointName * @param formula * @param splineId diff --git a/src/tools/drawTools/vtoolcutsplinepath.h b/src/tools/drawTools/vtoolcutsplinepath.h index 36698efe7..6422285a5 100644 --- a/src/tools/drawTools/vtoolcutsplinepath.h +++ b/src/tools/drawTools/vtoolcutsplinepath.h @@ -58,7 +58,7 @@ public: VDomDocument *doc, VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param pointName * @param formula * @param splineId diff --git a/src/tools/drawTools/vtoolendline.h b/src/tools/drawTools/vtoolendline.h index 1183242cf..c81aadfe4 100644 --- a/src/tools/drawTools/vtoolendline.h +++ b/src/tools/drawTools/vtoolendline.h @@ -69,7 +69,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param pointName * @param typeLine * @param formula diff --git a/src/tools/drawTools/vtoolheight.h b/src/tools/drawTools/vtoolheight.h index 0e2d8cabf..518e1e7c6 100644 --- a/src/tools/drawTools/vtoolheight.h +++ b/src/tools/drawTools/vtoolheight.h @@ -69,7 +69,7 @@ public: VDomDocument *doc, VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param pointName * @param typeLine * @param basePointId diff --git a/src/tools/drawTools/vtoolline.h b/src/tools/drawTools/vtoolline.h index a1a995c5e..0b2840500 100644 --- a/src/tools/drawTools/vtoolline.h +++ b/src/tools/drawTools/vtoolline.h @@ -67,7 +67,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param firstPoint * @param secondPoint * @param scene pointer to scene. diff --git a/src/tools/drawTools/vtoollineintersect.h b/src/tools/drawTools/vtoollineintersect.h index 035073f30..0528c9cda 100644 --- a/src/tools/drawTools/vtoollineintersect.h +++ b/src/tools/drawTools/vtoollineintersect.h @@ -69,7 +69,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param p1Line1Id * @param p2Line1Id * @param p1Line2Id diff --git a/src/tools/drawTools/vtoolnormal.h b/src/tools/drawTools/vtoolnormal.h index 643c0f059..6b8662b0a 100644 --- a/src/tools/drawTools/vtoolnormal.h +++ b/src/tools/drawTools/vtoolnormal.h @@ -71,7 +71,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param formula * @param firstPointId * @param secondPointId diff --git a/src/tools/drawTools/vtoolpointofcontact.h b/src/tools/drawTools/vtoolpointofcontact.h index b08d480a3..ea7cf4447 100644 --- a/src/tools/drawTools/vtoolpointofcontact.h +++ b/src/tools/drawTools/vtoolpointofcontact.h @@ -79,7 +79,7 @@ public: VDomDocument *doc, VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param radius * @param center * @param firstPointId diff --git a/src/tools/drawTools/vtoolpointofintersection.h b/src/tools/drawTools/vtoolpointofintersection.h index aa4057eb4..1c469cc40 100644 --- a/src/tools/drawTools/vtoolpointofintersection.h +++ b/src/tools/drawTools/vtoolpointofintersection.h @@ -67,7 +67,7 @@ public: VDomDocument *doc, VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param pointName * @param firstPointId * @param secondPointId diff --git a/src/tools/drawTools/vtoolshoulderpoint.h b/src/tools/drawTools/vtoolshoulderpoint.h index 8b79146b6..404e54a70 100644 --- a/src/tools/drawTools/vtoolshoulderpoint.h +++ b/src/tools/drawTools/vtoolshoulderpoint.h @@ -80,7 +80,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param formula * @param p1Line * @param p2Line diff --git a/src/tools/drawTools/vtoolspline.h b/src/tools/drawTools/vtoolspline.h index c91612e3c..ff77ab343 100644 --- a/src/tools/drawTools/vtoolspline.h +++ b/src/tools/drawTools/vtoolspline.h @@ -67,7 +67,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param p1 * @param p4 * @param kAsm1 diff --git a/src/tools/drawTools/vtoolsplinepath.h b/src/tools/drawTools/vtoolsplinepath.h index 46b7f356c..849b90522 100644 --- a/src/tools/drawTools/vtoolsplinepath.h +++ b/src/tools/drawTools/vtoolsplinepath.h @@ -66,7 +66,7 @@ public: VDomDocument *doc, VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param path * @param scene pointer to scene. * @param doc dom document container diff --git a/src/tools/drawTools/vtooltriangle.h b/src/tools/drawTools/vtooltriangle.h index 647fa756a..a14ffb461 100644 --- a/src/tools/drawTools/vtooltriangle.h +++ b/src/tools/drawTools/vtooltriangle.h @@ -69,7 +69,7 @@ public: VContainer *data); /** * @brief Create - * @param _id + * @param _id tool id, 0 if tool doesn't exist yet. * @param pointName * @param axisP1Id * @param axisP2Id diff --git a/src/tools/vtooldetail.h b/src/tools/vtooldetail.h index dfa4e50cb..6fb1c87b1 100644 --- a/src/tools/vtooldetail.h +++ b/src/tools/vtooldetail.h @@ -88,7 +88,7 @@ public: * @param scene pointer to scene. * @param doc dom document container. * @param data container with variables. - * @param parse pares file mode. + * @param parse parser file mode. * @param typeCreation way we create this tool. */ static void Create(const qint64 &_id, const VDetail &newDetail, VMainGraphicsScene *scene, diff --git a/src/tools/vtooluniondetails.h b/src/tools/vtooluniondetails.h index e0b4b41fb..1c5e06d49 100644 --- a/src/tools/vtooluniondetails.h +++ b/src/tools/vtooluniondetails.h @@ -32,40 +32,76 @@ #include "vabstracttool.h" #include "../dialogs/dialoguniondetails.h" +/** + * @brief The VToolUnionDetails class tool union details. + */ class VToolUnionDetails : public VAbstractTool { Q_OBJECT public: + /** + * @brief VToolUnionDetails costructor. + * @param doc dom document container. + * @param data dom document container. + * @param id object id in container. + * @param d1 first detail. + * @param d2 second detail. + * @param indexD1 index edge in first detail. + * @param indexD2 index edge in second detail. + * @param typeCreation way we create this tool. + * @param parent parent object. + */ VToolUnionDetails(VDomDocument *doc, VContainer *data, const qint64 &id, const VDetail &d1, const VDetail &d2, const ptrdiff_t &indexD1, const ptrdiff_t &indexD2, const Tool::Sources &typeCreation, QObject *parent = 0); + /** + * @brief setDialog set dialog when user want change tool option. + */ virtual void setDialog() {} /** - * @brief Create - * @param dialog - * @param doc dom document container - * @param data container with variables + * @brief Create help create tool from GUI. + * @param dialog dialog. + * @param doc dom document container. + * @param data container with variables. */ static void Create(QSharedPointer &dialog, VMainGraphicsScene *scene, VDomDocument *doc, VContainer *data); /** - * @brief Create - * @param _id + * @brief Create help create tool. + * @param _id tool id, 0 if tool doesn't exist yet. * @param newDetail * @param scene pointer to scene. * @param doc dom document container * @param data container with variables - * @param parse + * @param parse parser file mode. + * @param typeCreation way we create this tool. + */ + /** + * @brief Create help create tool. + * @param _id tool id, 0 if tool doesn't exist yet. + * @param d1 first detail. + * @param d2 second detail. + * @param d1id id first detail. + * @param d2id id second detail. + * @param indexD1 index edge in first detail. + * @param indexD2 index edge in second detail. + * @param scene pointer to scene. + * @param doc dom document container. + * @param data container with variables. + * @param parse parser file mode. * @param typeCreation way we create this tool. */ static void Create(const qint64 _id, const VDetail &d1, const VDetail &d2, const qint64 &d1id, const qint64 &d2id, const ptrdiff_t &indexD1, const ptrdiff_t &indexD2, VMainGraphicsScene *scene, VDomDocument *doc, VContainer *data, const Document::Documents &parse, const Tool::Sources &typeCreation); - static QVector GetDetailFromFile(VDomDocument *doc, const QDomElement &domElement); /** - * @brief TagName + * @brief GetDetailFromFile parse detail from file. + * @param doc dom document container. + * @param domElement tag in xml tree. + * @return detail stored in file. */ + static QVector GetDetailFromFile(VDomDocument *doc, const QDomElement &domElement); static const QString TagName; static const QString ToolType; static const QString TagDetail; @@ -76,13 +112,46 @@ public: static const QString AttrNodeType; static const QString NodeTypeContour; static const QString NodeTypeModeling; - + /** + * @brief AddToNewDetail create united detail adding one node per time. + * @param tool tool that make union. + * @param doc dom document container. + * @param data container with variables. + * @param newDetail united detail. + * @param det detail what we union. + * @param i index node in detail. + * @param idTool id tool union details. + * @param dx bias node x axis. + * @param dy bias node y axis. + * @param pRotate point rotation. + * @param angle angle rotation. + */ static void AddToNewDetail(QObject *tool, VDomDocument *doc, VContainer *data, VDetail &newDetail, const VDetail &det, const ptrdiff_t &i, const qint64 &idTool, const qreal &dx = 0, const qreal &dy = 0, const qint64 &pRotate = 0, const qreal &angle = 0); + /** + * @brief UpdatePoints update data for united details. + * @param idDetail id united detail. + * @param data container with variables. + * @param det detail what we union. + * @param i index node in detail. + * @param idCount + * @param dx bias node x axis. + * @param dy bias node y axis. + * @param pRotate point rotation. + * @param angle angle rotation. + */ static void UpdatePoints(const qint64 &idDetail, VContainer *data, const VDetail &det, const ptrdiff_t &i, qint64 &idCount, const qreal &dx = 0, const qreal &dy = 0, const qint64 &pRotate = 0, const qreal &angle = 0); + /** + * @brief BiasRotatePoint bias and rotate point. + * @param point point. + * @param dx bias x axis. + * @param dy bias y axis. + * @param pRotate point rotation. + * @param angle angle rotation. + */ static void BiasRotatePoint(VPointF *point, const qreal &dx, const qreal &dy, const QPointF &pRotate, const qreal angle); public slots: @@ -101,13 +170,45 @@ protected: virtual void RefreshDataInFile(); private: Q_DISABLE_COPY(VToolUnionDetails) + /** + * @brief d1 first detail. + */ VDetail d1; + /** + * @brief d2 second detail. + */ VDetail d2; + /** + * @brief indexD1 index edge in first detail. + */ ptrdiff_t indexD1; + /** + * @brief indexD2 index edge in second detail. + */ ptrdiff_t indexD2; + /** + * @brief AddDetail add detail to xml file. + * @param domElement tag in xml tree. + * @param d detail. + */ void AddDetail(QDomElement &domElement, VDetail &d); + /** + * @brief AddNode add node to xml file. + * @param domElement tag in xml tree. + * @param node node. + */ void AddNode(QDomElement &domElement, const VNodeDetail &node); + /** + * @brief UpdateDetail update detail in xml tree. + * @param domNode dom node. + * @param d detail. + * @return return next detail tag in xml tree if exist. + */ QDomNode UpdateDetail(const QDomNode &domNode, const VDetail &d); + /** + * @brief AddToModeling add tool to xml tree. + * @param domElement tag in xml tree. + */ void AddToModeling(const QDomElement &domElement); };