From 3692f3724d05c58add6e44b9bf3d73e6392dc18c Mon Sep 17 00:00:00 2001 From: Andrew Mustun Date: Thu, 10 Dec 2015 16:38:48 +0100 Subject: [PATCH] add tangent snap --- scripts/Snap/SnapAuto/PreferencesPage.ui | 10 +++ scripts/Snap/SnapAuto/ts/SnapAuto_de.qm | Bin 946 -> 1013 bytes scripts/Snap/SnapAuto/ts/SnapAuto_de.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_es.qm | Bin 988 -> 1055 bytes scripts/Snap/SnapAuto/ts/SnapAuto_es.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_fi.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_fr.qm | Bin 1054 -> 1121 bytes scripts/Snap/SnapAuto/ts/SnapAuto_fr.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_hr.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_hu.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_it.qm | Bin 1008 -> 1077 bytes scripts/Snap/SnapAuto/ts/SnapAuto_it.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_ja.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_nl.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_pl.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_pt.qm | Bin 1036 -> 1103 bytes scripts/Snap/SnapAuto/ts/SnapAuto_pt.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_ru.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_sk.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_sl.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_sv.ts | 5 ++ scripts/Snap/SnapAuto/ts/SnapAuto_zh_CN.ts | 5 ++ scripts/Widgets/Viewport/Viewport.js | 6 ++ scripts/Widgets/Viewport/ts/Viewport_de.qm | Bin 2014 -> 2081 bytes scripts/Widgets/Viewport/ts/Viewport_de.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_es.qm | Bin 2138 -> 2205 bytes scripts/Widgets/Viewport/ts/Viewport_es.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_fi.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_fr.qm | Bin 2174 -> 2241 bytes scripts/Widgets/Viewport/ts/Viewport_fr.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_hr.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_hu.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_it.qm | Bin 2132 -> 2201 bytes scripts/Widgets/Viewport/ts/Viewport_it.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_ja.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_nl.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_pl.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_pt.qm | Bin 2072 -> 2139 bytes scripts/Widgets/Viewport/ts/Viewport_pt.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_ru.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_sk.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_sl.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_sv.ts | 7 +- scripts/Widgets/Viewport/ts/Viewport_zh_CN.ts | 7 +- src/core/RSnap.h | 1 + src/scripting/ecmaapi/RScriptHandlerEcma.cpp | 2 + src/scripting/ecmaapi/generated/REcmaArc.cpp | 74 ++++++++++++++++++ src/scripting/ecmaapi/generated/REcmaArc.h | 3 + .../ecmaapi/generated/REcmaCircle.cpp | 74 ++++++++++++++++++ src/scripting/ecmaapi/generated/REcmaCircle.h | 3 + .../generated/REcmaSharedPointerArc.cpp | 74 ++++++++++++++++++ .../ecmaapi/generated/REcmaSharedPointerArc.h | 3 + .../generated/REcmaSharedPointerCircle.cpp | 74 ++++++++++++++++++ .../generated/REcmaSharedPointerCircle.h | 3 + .../ecmaapi/generated/REcmaShellSnap.cpp | 1 + .../ecmaapi/generated/REcmaShellSnap.h | 1 + src/scripting/ecmaapi/generated/REcmaSnap.cpp | 5 ++ src/scripting/ecmaapi/generated/generated.pri | 2 + src/snap/RSnapAuto.cpp | 21 +++++ src/snap/RSnapAuto.h | 1 + src/snap/RSnapPerpendicular.cpp | 1 - src/snap/RSnapPerpendicular.h | 2 +- src/snap/snap.pro | 6 +- support/ecmagenerator/src/srcml/RArc.srcml | 2 + support/ecmagenerator/src/srcml/RCircle.srcml | 2 + .../ecmagenerator/src/srcml/RMetaTypes.srcml | 2 + support/ecmagenerator/src/srcml/RSnap.srcml | 1 + .../ecmagenerator/src/srcml/RSnapAuto.srcml | 1 + .../src/srcml/RSnapPerpendicular.srcml | 2 +- .../ecmagenerator/src/srcml/RVersion.srcml | 4 +- support/ecmagenerator/src/xml/RArc.xml | 9 +++ support/ecmagenerator/src/xml/RCircle.xml | 9 +++ support/ecmagenerator/src/xml/RSnap.xml | 1 + 73 files changed, 569 insertions(+), 23 deletions(-) diff --git a/scripts/Snap/SnapAuto/PreferencesPage.ui b/scripts/Snap/SnapAuto/PreferencesPage.ui index 8ad35bbc50..5497b6d40b 100644 --- a/scripts/Snap/SnapAuto/PreferencesPage.ui +++ b/scripts/Snap/SnapAuto/PreferencesPage.ui @@ -64,6 +64,16 @@ + + + + Tangential + + + true + + + diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_de.qm b/scripts/Snap/SnapAuto/ts/SnapAuto_de.qm index 7e8f5b3d499ca34cd5420a421bf026e884944165..d9c139ae7f11b158684928be663ba1fb43149520 100644 GIT binary patch delta 109 zcmdnQ{*`@#h+qK&>yicr24-spt)BG^3{2N2s_HQ@Gfxav5am6yicr24)5Zt)BG^3`}z-s_HQ@otPM^z{|HGb29@2gGDA#T61zQ Pv;M}Ng-nxEnI`}M)Bq4B diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_de.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_de.ts index bee6602546..6ef6e1be23 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_de.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_de.ts @@ -33,6 +33,11 @@ Perpendicular Lotrechte + + + Tangential + Tangential + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_es.qm b/scripts/Snap/SnapAuto/ts/SnapAuto_es.qm index 3bed7e71058255d38b36a6419fc2354765a92011..9d9f3d804eb38499e1e5c58d4060efc8aa00008d 100644 GIT binary patch delta 109 zcmcb^KA&TPh+qK&>yicr2IfQtt)BG^3`{>Ks_HQ@t4<765am6yicr24*z|t)BG^3{3kbs_HQ@y_y)Rz{|HGb29@2gH0w-I(YJW PX5)=}`Perpendicular Perpendicular + + + Tangential + Tangencial + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_fi.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_fi.ts index b85d617423..801c5d51de 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_fi.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_fi.ts @@ -33,6 +33,11 @@ Perpendicular Kohtisuora + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_fr.qm b/scripts/Snap/SnapAuto/ts/SnapAuto_fr.qm index bd748f753b9779417cdc6ee8b3b0c660951c77c4..50ec6b966f6ed99899494e7416bc17e1334ae951 100644 GIT binary patch delta 108 zcmbQo@sMMJh+qK&>yicr2IkoeT0QH5wCqGxea7&Kp$ekB2iR>G7?>XMZOGirz`)>= z36#Asc^ypqhsoXKI# FCji!Z8%zKI delta 58 zcmaFJF^^+{h+qZ->yicr2Id3?t)BG^3`~zEs_HY!Obk`v<=c?CnSp`9B@-w+b@D@I O>y1ZOGfiI2ybS=>@ezUm diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_fr.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_fr.ts index 0527d563bc..94755b7821 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_fr.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_fr.ts @@ -33,6 +33,11 @@ Perpendicular Perpendiculaire + + + Tangential + Tangentiel + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_hr.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_hr.ts index 07b043bc19..3a9573e68a 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_hr.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_hr.ts @@ -33,6 +33,11 @@ Perpendicular + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_hu.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_hu.ts index f3bd47d23c..a5de449cf3 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_hu.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_hu.ts @@ -33,6 +33,11 @@ Perpendicular + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_it.qm b/scripts/Snap/SnapAuto/ts/SnapAuto_it.qm index 7859a52aa1a916ccf3513f5624e88724942fb787..b142b3446188669999930adea19eb83e445ea1c6 100644 GIT binary patch delta 109 zcmeyszLjHwh+qK&>yicr2IgW0t)BG^3{1Z#s_HQ@8&3>X5am6?}bfenbcLK5@RQ}aqP6LTgT HG4BHa3KAQN delta 63 zcmdnW@qvAUh+qZ->yicr24*t`t)BG^3{3kbs_HQ@eVZ7nz{|HGb29@2gF_}zI(_n9 TX7kCxOoAIP)i6!&W?lsVFnkh* diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_it.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_it.ts index 0fb5819424..bc48cf47b3 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_it.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_it.ts @@ -33,6 +33,11 @@ Perpendicular Perpendicolare + + + Tangential + Tangenziale + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_ja.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_ja.ts index bd339ed6d7..78ee105a7f 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_ja.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_ja.ts @@ -33,6 +33,11 @@ Perpendicular 垂直 + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_nl.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_nl.ts index a47dbc14a1..f5584301b0 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_nl.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_nl.ts @@ -33,6 +33,11 @@ Perpendicular + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_pl.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_pl.ts index 9c668a6014..0b7b6c9ca9 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_pl.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_pl.ts @@ -33,6 +33,11 @@ Perpendicular + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_pt.qm b/scripts/Snap/SnapAuto/ts/SnapAuto_pt.qm index dca5e220b0f536e159cf5cc9d0067e825ec3fe41..39d0baa600f50d3507b1dd78d6f75d39eadd1199 100644 GIT binary patch delta 108 zcmeC-IL|RbM6iH?bx8vQ1M_4Ct)BHjT6ChSKBMo%Pz6!m1MD^o3{1E9He_yQU|?{| z1j_E4JcZeIypqhsoXLL7 F`v9|X8ovMl delta 54 zcmX@l(Zex8L@f6%)r3lmI;(?-q>}I JY4T#`H2{g84`=`Y diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_pt.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_pt.ts index b352c5f586..7f054c938c 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_pt.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_pt.ts @@ -33,6 +33,11 @@ Perpendicular Perpendicular + + + Tangential + Tangencial + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_ru.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_ru.ts index 1172925015..cb955a34fb 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_ru.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_ru.ts @@ -33,6 +33,11 @@ Perpendicular Перпендикуляр + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_sk.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_sk.ts index 3f1593cf22..d90e3e6aa8 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_sk.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_sk.ts @@ -33,6 +33,11 @@ Perpendicular Kolmica + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_sl.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_sl.ts index b21dffef4e..c1ad7e512a 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_sl.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_sl.ts @@ -33,6 +33,11 @@ Perpendicular Pravokotno + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_sv.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_sv.ts index 84dc27eff8..01c3d7bd8b 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_sv.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_sv.ts @@ -33,6 +33,11 @@ Perpendicular + + + Tangential + + Reference points diff --git a/scripts/Snap/SnapAuto/ts/SnapAuto_zh_CN.ts b/scripts/Snap/SnapAuto/ts/SnapAuto_zh_CN.ts index e51873cc59..4bea165c6b 100644 --- a/scripts/Snap/SnapAuto/ts/SnapAuto_zh_CN.ts +++ b/scripts/Snap/SnapAuto/ts/SnapAuto_zh_CN.ts @@ -33,6 +33,11 @@ Perpendicular + + + Tangential + + Reference points diff --git a/scripts/Widgets/Viewport/Viewport.js b/scripts/Widgets/Viewport/Viewport.js index 11e6ce96f0..5be41be165 100644 --- a/scripts/Widgets/Viewport/Viewport.js +++ b/scripts/Widgets/Viewport/Viewport.js @@ -325,6 +325,9 @@ EventHandler.prototype.updateSnapInfo = function(painter, snap, restriction) { posRestriction = restriction.getLastSnap(); } + qDebug("status: ", snap.getStatus()); + qDebug("status tan: ", RSnap.Tangential); + var text = ""; switch (snap.getStatus()) { // case RSnap.Free: @@ -342,6 +345,9 @@ EventHandler.prototype.updateSnapInfo = function(painter, snap, restriction) { case RSnap.Perpendicular: text = qsTr("Perpendicular"); break; + case RSnap.Tangential: + text = qsTr("Tangential"); + break; case RSnap.Center: text = qsTr("Center"); break; diff --git a/scripts/Widgets/Viewport/ts/Viewport_de.qm b/scripts/Widgets/Viewport/ts/Viewport_de.qm index 1fae3cfb742a0fe685cf1e1fecff5758c9fabab1..dd51779942e0cfdc2fa5b9d3b78fbae17ed58a86 100644 GIT binary patch delta 99 zcmcb|zffR;2;+r`q8n6s53t)XFt8Qz8RQ>eU|`wEzisPuAZ-Al+16$mm*!T{Gb3$FkG diff --git a/scripts/Widgets/Viewport/ts/Viewport_de.ts b/scripts/Widgets/Viewport/ts/Viewport_de.ts index 2ff553c508..d9a13b8743 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_de.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_de.ts @@ -153,7 +153,7 @@ Importiere URL: - + Grid Raster @@ -172,6 +172,11 @@ Perpendicular Lotrecht + + + Tangential + Tangential + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_es.qm b/scripts/Widgets/Viewport/ts/Viewport_es.qm index 671c8207d2c6689b477b7df39c1396d97901c4e4..a6ed688cedb6a80b402252c96b675643c833d931 100644 GIT binary patch delta 99 zcmca5FjsJb2;+r`q8n6s53t)XFtDBBGsr){z`*jAf7{mSKspFQv$JP1FtD%L_~-(g trU*j_Ln1>SLpnn$kW6OC1oCn?7=VBch`B-%^U_oEN-`63CNE&$1ptiY8zKMz delta 53 zcmbO$cuQb{2;+%~q8nuS4Dt^!FtB{(-?nu+kPd>-Y-chV7}yIpzPi9R*@1QH Importación de URL: - + Grid Rejilla @@ -188,6 +188,11 @@ Selecciona entidades solas Perpendicular Perpendicular + + + Tangential + Tangencial + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_fi.ts b/scripts/Widgets/Viewport/ts/Viewport_fi.ts index 9bd07cdb14..c7a89e3fd0 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_fi.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_fi.ts @@ -109,7 +109,7 @@ - + Grid Ruudukko @@ -128,6 +128,11 @@ Perpendicular Kohtisuora + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_fr.qm b/scripts/Widgets/Viewport/ts/Viewport_fr.qm index 23f6af08f409dfe26935700b2ebb2c3f7c56734e..2c5339dbcb2bc6451e2cb29806c3dee2e3f6a6f1 100644 GIT binary patch delta 99 zcmew-a8Pi92;+r`q8n6s53t)XFtEMiGsr){z`!cZzisPu1_qWa2+gjV$-uyVVdJBB uY?>krAqo_)lPh2;+%~q8nuS4Dt^!Ft7^qZ`(SZfq^9pLbJWfWME*QIyr$^Y!l-Rw#gB! KvnQ|P5C#AosS-~B diff --git a/scripts/Widgets/Viewport/ts/Viewport_fr.ts b/scripts/Widgets/Viewport/ts/Viewport_fr.ts index d4acc7a9b6..1f18c0181b 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_fr.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_fr.ts @@ -165,7 +165,7 @@ Points uniques Importation URL: - + Grid Grille @@ -185,6 +185,11 @@ Points uniques --google-- Perpendiculairement + + + Tangential + Tangentiel + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_hr.ts b/scripts/Widgets/Viewport/ts/Viewport_hr.ts index 006a0b99d5..2dc35a82fa 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_hr.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_hr.ts @@ -109,7 +109,7 @@ - + Grid @@ -128,6 +128,11 @@ Perpendicular + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_hu.ts b/scripts/Widgets/Viewport/ts/Viewport_hu.ts index bb38d436e0..4f24c27789 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_hu.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_hu.ts @@ -109,7 +109,7 @@ - + Grid @@ -128,6 +128,11 @@ Perpendicular + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_it.qm b/scripts/Widgets/Viewport/ts/Viewport_it.qm index 27962de0e4b2e4da72d68893b1ea0787d44c3000..d2de7882967a8d69eff411e3244fe720f503ef91 100644 GIT binary patch delta 101 zcmca2FjH`X2;+r`q8n6s53t)XFtF|6Gsr){z`*jBf7{mSK-vL9v;E9uU|?Ud@zDV` vZ83%rhD3%uhIEEhAX&wb3FPH4q;fC-0UHo=g(T*sr{ Importazione URL: - + Grid Griglia @@ -189,6 +189,11 @@ Perpendicolare Seleziona il piano perpendicolare alla vista corrente Perpendicolare + + + Tangential + Tangenziale + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_ja.ts b/scripts/Widgets/Viewport/ts/Viewport_ja.ts index 09896d534f..d3a7bed3d4 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_ja.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_ja.ts @@ -149,7 +149,7 @@ - + Grid グリッド @@ -168,6 +168,11 @@ Perpendicular 垂線 + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_nl.ts b/scripts/Widgets/Viewport/ts/Viewport_nl.ts index 3d6962ef95..412bcf3515 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_nl.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_nl.ts @@ -109,7 +109,7 @@ - + Grid @@ -128,6 +128,11 @@ Perpendicular + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_pl.ts b/scripts/Widgets/Viewport/ts/Viewport_pl.ts index 867cade683..2296644e7c 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_pl.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_pl.ts @@ -164,7 +164,7 @@ Zaznacza pojedynczy obiekt - + Grid --exact match-- --file: designer_pl.ts-- @@ -198,6 +198,11 @@ Punkt cięcia nie jest na obiekcie. --google-- Prostopadły + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_pt.qm b/scripts/Widgets/Viewport/ts/Viewport_pt.qm index 20a745156b47d581ff85210467b33e8655d356ca..f362090c1ff5e587ada91008504f7cee0d3c469d 100644 GIT binary patch delta 102 zcmbOsa9d!42;+r`q8n6s53t)XFtAPHGsr){z`$~xf7{mSKw1Yvvz^UkU|`SM_-GoN wrU*j_Ln1>SLpnn$kW6OC1oCn?7=VBch`B-%^U_oEN-`63Cb7<+%*r7Q0K{t=%>V!Z delta 29 ncmV+&0OJ4K5SS2<6amPQ6|j-b7Y34P000LsvFervle-6?rM3$% diff --git a/scripts/Widgets/Viewport/ts/Viewport_pt.ts b/scripts/Widgets/Viewport/ts/Viewport_pt.ts index c83360099b..f54d24a96a 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_pt.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_pt.ts @@ -165,7 +165,7 @@ Selecione Entidades singulares Importando a URL: - + Grid --exact match-- --file: pt.po-- @@ -203,6 +203,11 @@ Perpendicular (perpendicular ao traço, \"escova\") Perpendicular + + + Tangential + Tangencial + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_ru.ts b/scripts/Widgets/Viewport/ts/Viewport_ru.ts index ea99378bb0..2b98481c9c 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_ru.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_ru.ts @@ -109,7 +109,7 @@ URL для импортирования: - + Grid По сетке @@ -128,6 +128,11 @@ Perpendicular Перпендикуляр + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_sk.ts b/scripts/Widgets/Viewport/ts/Viewport_sk.ts index d741c2a8f9..196e6bb30a 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_sk.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_sk.ts @@ -109,7 +109,7 @@ Importuje sa URL: - + Grid Sieť @@ -128,6 +128,11 @@ Perpendicular Kolmica + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_sl.ts b/scripts/Widgets/Viewport/ts/Viewport_sl.ts index d9f9ee9f85..c0a7249386 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_sl.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_sl.ts @@ -109,7 +109,7 @@ - + Grid Mreža @@ -128,6 +128,11 @@ Perpendicular Pravokotno + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_sv.ts b/scripts/Widgets/Viewport/ts/Viewport_sv.ts index 678f0b35e3..2edb4b3527 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_sv.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_sv.ts @@ -109,7 +109,7 @@ - + Grid @@ -128,6 +128,11 @@ Perpendicular + + + Tangential + + Center diff --git a/scripts/Widgets/Viewport/ts/Viewport_zh_CN.ts b/scripts/Widgets/Viewport/ts/Viewport_zh_CN.ts index 141bcd373a..9e30f6e007 100644 --- a/scripts/Widgets/Viewport/ts/Viewport_zh_CN.ts +++ b/scripts/Widgets/Viewport/ts/Viewport_zh_CN.ts @@ -109,7 +109,7 @@ - + Grid @@ -128,6 +128,11 @@ Perpendicular + + + Tangential + + Center diff --git a/src/core/RSnap.h b/src/core/RSnap.h index 948501a6a6..d5302cb633 100644 --- a/src/core/RSnap.h +++ b/src/core/RSnap.h @@ -60,6 +60,7 @@ class QCADCORE_EXPORT RSnap { IntersectionManual, Reference, Perpendicular, + Tangential, Coordinate, CoordinatePolar }; diff --git a/src/scripting/ecmaapi/RScriptHandlerEcma.cpp b/src/scripting/ecmaapi/RScriptHandlerEcma.cpp index 2bb70ea2af..cd076cdfc9 100644 --- a/src/scripting/ecmaapi/RScriptHandlerEcma.cpp +++ b/src/scripting/ecmaapi/RScriptHandlerEcma.cpp @@ -292,6 +292,7 @@ #include "REcmaSnapPerpendicular.h" #include "REcmaSnapReference.h" #include "REcmaSnapRestriction.h" +#include "REcmaSnapTangential.h" #include "REcmaSolidData.h" #include "REcmaSolidEntity.h" #include "REcmaSpatialIndex.h" @@ -630,6 +631,7 @@ RScriptHandlerEcma::RScriptHandlerEcma() : engine(NULL), debugger(NULL) { REcmaSnapOnEntity::initEcma(*engine); REcmaSnapPerpendicular::initEcma(*engine); REcmaSnapReference::initEcma(*engine); + REcmaSnapTangential::initEcma(*engine); REcmaSnapRestriction::initEcma(*engine); REcmaRestrictAngleLength::initEcma(*engine); diff --git a/src/scripting/ecmaapi/generated/REcmaArc.cpp b/src/scripting/ecmaapi/generated/REcmaArc.cpp index d6c0450668..8db270f9d2 100644 --- a/src/scripting/ecmaapi/generated/REcmaArc.cpp +++ b/src/scripting/ecmaapi/generated/REcmaArc.cpp @@ -234,6 +234,8 @@ REcmaHelper::registerFunction(&engine, proto, approximateWithLinesTan, "approximateWithLinesTan"); + REcmaHelper::registerFunction(&engine, proto, getTangents, "getTangents"); + engine.setDefaultPrototype( qMetaTypeId(), *proto); @@ -5000,6 +5002,78 @@ } //REcmaHelper::functionEnd("REcmaArc::approximateWithLinesTan", context, engine); return result; + } + QScriptValue + REcmaArc::getTangents + (QScriptContext* context, QScriptEngine* engine) + + { + //REcmaHelper::functionStart("REcmaArc::getTangents", context, engine); + //qDebug() << "ECMAScript WRAPPER: REcmaArc::getTangents"; + //QCoreApplication::processEvents(); + + QScriptValue result = engine->undefinedValue(); + + // public function: can be called from ECMA wrapper of ECMA shell: + RArc* self = + getSelf("getTangents", context); + + + //Q_ASSERT(self!=NULL); + if (self==NULL) { + return REcmaHelper::throwError("self is NULL", context); + } + + + if( context->argumentCount() == + 1 && ( + context->argument(0).isVariant() || + context->argument(0).isQObject() || + context->argument(0).isNull() + ) /* type: RVector */ + + ){ + // prepare arguments: + + // argument isCopyable and has default constructor and isSimpleClass + RVector* + ap0 = + qscriptvalue_cast< + RVector* + >( + context->argument( + 0 + ) + ); + if (ap0 == NULL) { + return REcmaHelper::throwError("RArc: Argument 0 is not of type RVector.", + context); + } + RVector + a0 = + *ap0; + + // end of arguments + + // call C++ function: + // return type 'QList < RLine >' + QList < RLine > cppResult = + + self->getTangents(a0); + // return type: QList < RLine > + // List of ...: + result = REcmaHelper::listToScriptValue(engine, cppResult); + + } else + + + + { + return REcmaHelper::throwError("Wrong number/types of arguments for RArc.getTangents().", + context); + } + //REcmaHelper::functionEnd("REcmaArc::getTangents", context, engine); + return result; } QScriptValue REcmaArc::toString (QScriptContext *context, QScriptEngine *engine) diff --git a/src/scripting/ecmaapi/generated/REcmaArc.h b/src/scripting/ecmaapi/generated/REcmaArc.h index 71592fe103..f863e9f606 100644 --- a/src/scripting/ecmaapi/generated/REcmaArc.h +++ b/src/scripting/ecmaapi/generated/REcmaArc.h @@ -238,6 +238,9 @@ ;static QScriptValue approximateWithLinesTan (QScriptContext* context, QScriptEngine* engine) + ;static QScriptValue + getTangents + (QScriptContext* context, QScriptEngine* engine) ;static QScriptValue toString (QScriptContext *context, QScriptEngine *engine) ;static QScriptValue copy diff --git a/src/scripting/ecmaapi/generated/REcmaCircle.cpp b/src/scripting/ecmaapi/generated/REcmaCircle.cpp index 8a641930a5..ca75b14691 100644 --- a/src/scripting/ecmaapi/generated/REcmaCircle.cpp +++ b/src/scripting/ecmaapi/generated/REcmaCircle.cpp @@ -144,6 +144,8 @@ REcmaHelper::registerFunction(&engine, proto, getTransformed, "getTransformed"); + REcmaHelper::registerFunction(&engine, proto, getTangents, "getTangents"); + engine.setDefaultPrototype( qMetaTypeId(), *proto); @@ -2645,6 +2647,78 @@ } //REcmaHelper::functionEnd("REcmaCircle::getTransformed", context, engine); return result; + } + QScriptValue + REcmaCircle::getTangents + (QScriptContext* context, QScriptEngine* engine) + + { + //REcmaHelper::functionStart("REcmaCircle::getTangents", context, engine); + //qDebug() << "ECMAScript WRAPPER: REcmaCircle::getTangents"; + //QCoreApplication::processEvents(); + + QScriptValue result = engine->undefinedValue(); + + // public function: can be called from ECMA wrapper of ECMA shell: + RCircle* self = + getSelf("getTangents", context); + + + //Q_ASSERT(self!=NULL); + if (self==NULL) { + return REcmaHelper::throwError("self is NULL", context); + } + + + if( context->argumentCount() == + 1 && ( + context->argument(0).isVariant() || + context->argument(0).isQObject() || + context->argument(0).isNull() + ) /* type: RVector */ + + ){ + // prepare arguments: + + // argument isCopyable and has default constructor and isSimpleClass + RVector* + ap0 = + qscriptvalue_cast< + RVector* + >( + context->argument( + 0 + ) + ); + if (ap0 == NULL) { + return REcmaHelper::throwError("RCircle: Argument 0 is not of type RVector.", + context); + } + RVector + a0 = + *ap0; + + // end of arguments + + // call C++ function: + // return type 'QList < RLine >' + QList < RLine > cppResult = + + self->getTangents(a0); + // return type: QList < RLine > + // List of ...: + result = REcmaHelper::listToScriptValue(engine, cppResult); + + } else + + + + { + return REcmaHelper::throwError("Wrong number/types of arguments for RCircle.getTangents().", + context); + } + //REcmaHelper::functionEnd("REcmaCircle::getTangents", context, engine); + return result; } QScriptValue REcmaCircle::toString (QScriptContext *context, QScriptEngine *engine) diff --git a/src/scripting/ecmaapi/generated/REcmaCircle.h b/src/scripting/ecmaapi/generated/REcmaCircle.h index ed32b5f67c..35df9bcbb1 100644 --- a/src/scripting/ecmaapi/generated/REcmaCircle.h +++ b/src/scripting/ecmaapi/generated/REcmaCircle.h @@ -144,6 +144,9 @@ ;static QScriptValue getTransformed (QScriptContext* context, QScriptEngine* engine) + ;static QScriptValue + getTangents + (QScriptContext* context, QScriptEngine* engine) ;static QScriptValue toString (QScriptContext *context, QScriptEngine *engine) ;static QScriptValue copy diff --git a/src/scripting/ecmaapi/generated/REcmaSharedPointerArc.cpp b/src/scripting/ecmaapi/generated/REcmaSharedPointerArc.cpp index 58117063d6..ad54d2a513 100644 --- a/src/scripting/ecmaapi/generated/REcmaSharedPointerArc.cpp +++ b/src/scripting/ecmaapi/generated/REcmaSharedPointerArc.cpp @@ -236,6 +236,8 @@ REcmaHelper::registerFunction(&engine, proto, approximateWithLinesTan, "approximateWithLinesTan"); + REcmaHelper::registerFunction(&engine, proto, getTangents, "getTangents"); + engine.setDefaultPrototype( qMetaTypeId(), *proto); @@ -4997,6 +4999,78 @@ } //REcmaHelper::functionEnd("REcmaSharedPointerArc::approximateWithLinesTan", context, engine); return result; + } + QScriptValue + REcmaSharedPointerArc::getTangents + (QScriptContext* context, QScriptEngine* engine) + + { + //REcmaHelper::functionStart("REcmaSharedPointerArc::getTangents", context, engine); + //qDebug() << "ECMAScript WRAPPER: REcmaSharedPointerArc::getTangents"; + //QCoreApplication::processEvents(); + + QScriptValue result = engine->undefinedValue(); + + // public function: can be called from ECMA wrapper of ECMA shell: + RArc* self = + getSelf("getTangents", context); + + + //Q_ASSERT(self!=NULL); + if (self==NULL) { + return REcmaHelper::throwError("self is NULL", context); + } + + + if( context->argumentCount() == + 1 && ( + context->argument(0).isVariant() || + context->argument(0).isQObject() || + context->argument(0).isNull() + ) /* type: RVector */ + + ){ + // prepare arguments: + + // argument isCopyable and has default constructor and isSimpleClass + RVector* + ap0 = + qscriptvalue_cast< + RVector* + >( + context->argument( + 0 + ) + ); + if (ap0 == NULL) { + return REcmaHelper::throwError("RArc: Argument 0 is not of type RVector.", + context); + } + RVector + a0 = + *ap0; + + // end of arguments + + // call C++ function: + // return type 'QList < RLine >' + QList < RLine > cppResult = + + self->getTangents(a0); + // return type: QList < RLine > + // List of ...: + result = REcmaHelper::listToScriptValue(engine, cppResult); + + } else + + + + { + return REcmaHelper::throwError("Wrong number/types of arguments for RArc.getTangents().", + context); + } + //REcmaHelper::functionEnd("REcmaSharedPointerArc::getTangents", context, engine); + return result; } QScriptValue REcmaSharedPointerArc::toString (QScriptContext *context, QScriptEngine *engine) diff --git a/src/scripting/ecmaapi/generated/REcmaSharedPointerArc.h b/src/scripting/ecmaapi/generated/REcmaSharedPointerArc.h index ac35470b52..fc239417f9 100644 --- a/src/scripting/ecmaapi/generated/REcmaSharedPointerArc.h +++ b/src/scripting/ecmaapi/generated/REcmaSharedPointerArc.h @@ -240,6 +240,9 @@ ;static QScriptValue approximateWithLinesTan (QScriptContext* context, QScriptEngine* engine) + ;static QScriptValue + getTangents + (QScriptContext* context, QScriptEngine* engine) ;static QScriptValue toString (QScriptContext *context, QScriptEngine *engine) ;static QScriptValue copy diff --git a/src/scripting/ecmaapi/generated/REcmaSharedPointerCircle.cpp b/src/scripting/ecmaapi/generated/REcmaSharedPointerCircle.cpp index fd289ae270..e288affda1 100644 --- a/src/scripting/ecmaapi/generated/REcmaSharedPointerCircle.cpp +++ b/src/scripting/ecmaapi/generated/REcmaSharedPointerCircle.cpp @@ -146,6 +146,8 @@ REcmaHelper::registerFunction(&engine, proto, getTransformed, "getTransformed"); + REcmaHelper::registerFunction(&engine, proto, getTangents, "getTangents"); + engine.setDefaultPrototype( qMetaTypeId(), *proto); @@ -2642,6 +2644,78 @@ } //REcmaHelper::functionEnd("REcmaSharedPointerCircle::getTransformed", context, engine); return result; + } + QScriptValue + REcmaSharedPointerCircle::getTangents + (QScriptContext* context, QScriptEngine* engine) + + { + //REcmaHelper::functionStart("REcmaSharedPointerCircle::getTangents", context, engine); + //qDebug() << "ECMAScript WRAPPER: REcmaSharedPointerCircle::getTangents"; + //QCoreApplication::processEvents(); + + QScriptValue result = engine->undefinedValue(); + + // public function: can be called from ECMA wrapper of ECMA shell: + RCircle* self = + getSelf("getTangents", context); + + + //Q_ASSERT(self!=NULL); + if (self==NULL) { + return REcmaHelper::throwError("self is NULL", context); + } + + + if( context->argumentCount() == + 1 && ( + context->argument(0).isVariant() || + context->argument(0).isQObject() || + context->argument(0).isNull() + ) /* type: RVector */ + + ){ + // prepare arguments: + + // argument isCopyable and has default constructor and isSimpleClass + RVector* + ap0 = + qscriptvalue_cast< + RVector* + >( + context->argument( + 0 + ) + ); + if (ap0 == NULL) { + return REcmaHelper::throwError("RCircle: Argument 0 is not of type RVector.", + context); + } + RVector + a0 = + *ap0; + + // end of arguments + + // call C++ function: + // return type 'QList < RLine >' + QList < RLine > cppResult = + + self->getTangents(a0); + // return type: QList < RLine > + // List of ...: + result = REcmaHelper::listToScriptValue(engine, cppResult); + + } else + + + + { + return REcmaHelper::throwError("Wrong number/types of arguments for RCircle.getTangents().", + context); + } + //REcmaHelper::functionEnd("REcmaSharedPointerCircle::getTangents", context, engine); + return result; } QScriptValue REcmaSharedPointerCircle::toString (QScriptContext *context, QScriptEngine *engine) diff --git a/src/scripting/ecmaapi/generated/REcmaSharedPointerCircle.h b/src/scripting/ecmaapi/generated/REcmaSharedPointerCircle.h index 9d51d1ddab..b17b1e9e1b 100644 --- a/src/scripting/ecmaapi/generated/REcmaSharedPointerCircle.h +++ b/src/scripting/ecmaapi/generated/REcmaSharedPointerCircle.h @@ -146,6 +146,9 @@ ;static QScriptValue getTransformed (QScriptContext* context, QScriptEngine* engine) + ;static QScriptValue + getTangents + (QScriptContext* context, QScriptEngine* engine) ;static QScriptValue toString (QScriptContext *context, QScriptEngine *engine) ;static QScriptValue copy diff --git a/src/scripting/ecmaapi/generated/REcmaShellSnap.cpp b/src/scripting/ecmaapi/generated/REcmaShellSnap.cpp index 2b62b756db..42fe5ce268 100644 --- a/src/scripting/ecmaapi/generated/REcmaShellSnap.cpp +++ b/src/scripting/ecmaapi/generated/REcmaShellSnap.cpp @@ -83,6 +83,7 @@ + // Constructors: diff --git a/src/scripting/ecmaapi/generated/REcmaShellSnap.h b/src/scripting/ecmaapi/generated/REcmaShellSnap.h index 61efad4625..b972f2414c 100644 --- a/src/scripting/ecmaapi/generated/REcmaShellSnap.h +++ b/src/scripting/ecmaapi/generated/REcmaShellSnap.h @@ -43,6 +43,7 @@ + // Constructors: diff --git a/src/scripting/ecmaapi/generated/REcmaSnap.cpp b/src/scripting/ecmaapi/generated/REcmaSnap.cpp index 7e12f1a733..473f499ed1 100644 --- a/src/scripting/ecmaapi/generated/REcmaSnap.cpp +++ b/src/scripting/ecmaapi/generated/REcmaSnap.cpp @@ -140,6 +140,11 @@ QScriptValue::ReadOnly); + ctor.setProperty("Tangential", + QScriptValue(RSnap::Tangential), + QScriptValue::ReadOnly); + + ctor.setProperty("Coordinate", QScriptValue(RSnap::Coordinate), QScriptValue::ReadOnly); diff --git a/src/scripting/ecmaapi/generated/generated.pri b/src/scripting/ecmaapi/generated/generated.pri index 3235e3a7a1..0b40c3d897 100644 --- a/src/scripting/ecmaapi/generated/generated.pri +++ b/src/scripting/ecmaapi/generated/generated.pri @@ -290,6 +290,7 @@ HEADERS += \ $$PWD/REcmaSnapPerpendicular.h \ $$PWD/REcmaSnapReference.h \ $$PWD/REcmaSnapRestriction.h \ + $$PWD/REcmaSnapTangential.h \ $$PWD/REcmaSolidData.h \ $$PWD/REcmaSolidEntity.h \ $$PWD/REcmaSpatialIndex.h \ @@ -630,6 +631,7 @@ SOURCES += \ $$PWD/REcmaSnapPerpendicular.cpp \ $$PWD/REcmaSnapReference.cpp \ $$PWD/REcmaSnapRestriction.cpp \ + $$PWD/REcmaSnapTangential.cpp \ $$PWD/REcmaSolidData.cpp \ $$PWD/REcmaSolidEntity.cpp \ $$PWD/REcmaSpatialIndex.cpp \ diff --git a/src/snap/RSnapAuto.cpp b/src/snap/RSnapAuto.cpp index a57d50cb83..465d9b2826 100644 --- a/src/snap/RSnapAuto.cpp +++ b/src/snap/RSnapAuto.cpp @@ -28,6 +28,7 @@ #include "RSnapMiddle.h" #include "RSnapOnEntity.h" #include "RSnapPerpendicular.h" +#include "RSnapTangential.h" #include "RSnapReference.h" bool RSnapAuto::initialized = false; @@ -37,6 +38,7 @@ bool RSnapAuto::endPoints = false; bool RSnapAuto::middlePoints = false; bool RSnapAuto::centerPoints = false; bool RSnapAuto::perpendicular = false; +bool RSnapAuto::tangential = false; bool RSnapAuto::referencePoints = false; bool RSnapAuto::gridPoints = false; bool RSnapAuto::pointsOnEntity = false; @@ -176,6 +178,24 @@ RVector RSnapAuto::snap(const RVector& position, RGraphicsView& view, double ran lastSnap = RVector::invalid; } + // tangential: + if (foundEntities && tangential) { + for (int k=0; k ids = idsList.at(k); + + RSnapTangential snapTangential; + lastSnap = snapTangential.snap(position, view, ids, queryBox); + if (lastSnap.isValid() && lastSnap.getDistanceTo2d(position) < range) { + status = RSnap::Tangential; + entityIds = snapTangential.getEntityIds(); + return lastSnap; + } + } + lastSnap = RVector::invalid; + } + // reference points: if (foundEntities && referencePoints) { for (int k=0; k RSnapPerpendicular::snapEntity( QSharedPointer entity, diff --git a/src/snap/RSnapPerpendicular.h b/src/snap/RSnapPerpendicular.h index 5bbf4cba76..3a4ff2886b 100644 --- a/src/snap/RSnapPerpendicular.h +++ b/src/snap/RSnapPerpendicular.h @@ -27,7 +27,7 @@ class RMouseEvent; /** - * \brief On entity snapper implementation. + * \brief Perpendicular snapper implementation. * * \scriptable * diff --git a/src/snap/snap.pro b/src/snap/snap.pro index d2436c2203..905d26aa91 100644 --- a/src/snap/snap.pro +++ b/src/snap/snap.pro @@ -16,7 +16,8 @@ SOURCES = \ RSnapMiddle.cpp \ RSnapOnEntity.cpp \ RSnapPerpendicular.cpp \ - RSnapReference.cpp + RSnapReference.cpp \ + RSnapTangential.cpp HEADERS = \ RRestrictAngleLength.h \ RRestrictHorizontal.h \ @@ -34,7 +35,8 @@ HEADERS = \ RSnapMiddle.h \ RSnapOnEntity.h \ RSnapPerpendicular.h \ - RSnapReference.h + RSnapReference.h \ + RSnapTangential.h TEMPLATE = lib r_static_libs { CONFIG += staticlib diff --git a/support/ecmagenerator/src/srcml/RArc.srcml b/support/ecmagenerator/src/srcml/RArc.srcml index 0c83b42d9c..aa39e80385 100644 --- a/support/ecmagenerator/src/srcml/RArc.srcml +++ b/support/ecmagenerator/src/srcml/RArc.srcml @@ -137,6 +137,8 @@ RPolyline approximateWithLines(double segmentLength); RPolyline approximateWithLinesTan(double segmentLength); + QList<RLine> getTangents(const RVector& point) const; + protected: virtual void print(QDebug dbg) const; diff --git a/support/ecmagenerator/src/srcml/RCircle.srcml b/support/ecmagenerator/src/srcml/RCircle.srcml index 2fe34e0d08..147087c2e7 100644 --- a/support/ecmagenerator/src/srcml/RCircle.srcml +++ b/support/ecmagenerator/src/srcml/RCircle.srcml @@ -95,6 +95,8 @@ virtual QSharedPointer<RShape> getTransformed(const QTransform& transform) const; + QList<RLine> getTangents(const RVector& point) const; + protected: virtual void print(QDebug dbg) const; diff --git a/support/ecmagenerator/src/srcml/RMetaTypes.srcml b/support/ecmagenerator/src/srcml/RMetaTypes.srcml index a704ea524c..8c6a7de079 100644 --- a/support/ecmagenerator/src/srcml/RMetaTypes.srcml +++ b/support/ecmagenerator/src/srcml/RMetaTypes.srcml @@ -334,6 +334,8 @@ Q_DECLARE_METATYPE(Qt::BrushStyle) Q_DECLARE_METATYPE(Qt::ItemDataRole) Q_DECLARE_METATYPE(Qt::WindowFlags) +Q_DECLARE_METATYPE(Qt::WidgetAttribute) +Q_DECLARE_METATYPE(Qt::WidgetAttribute*) #if !defined(Q_OS_IOS) Q_DECLARE_METATYPE(QPrinter::PaperSize) #endif diff --git a/support/ecmagenerator/src/srcml/RSnap.srcml b/support/ecmagenerator/src/srcml/RSnap.srcml index 9a678d48f2..f087c73a57 100644 --- a/support/ecmagenerator/src/srcml/RSnap.srcml +++ b/support/ecmagenerator/src/srcml/RSnap.srcml @@ -61,6 +61,7 @@ IntersectionManual, Reference, Perpendicular, + Tangential, Coordinate, CoordinatePolar }; diff --git a/support/ecmagenerator/src/srcml/RSnapAuto.srcml b/support/ecmagenerator/src/srcml/RSnapAuto.srcml index 28372f8f31..8bc560b715 100644 --- a/support/ecmagenerator/src/srcml/RSnapAuto.srcml +++ b/support/ecmagenerator/src/srcml/RSnapAuto.srcml @@ -55,6 +55,7 @@ static bool middlePoints; static bool centerPoints; static bool perpendicular; + static bool tangential; static bool referencePoints; static bool gridPoints; static bool pointsOnEntity; diff --git a/support/ecmagenerator/src/srcml/RSnapPerpendicular.srcml b/support/ecmagenerator/src/srcml/RSnapPerpendicular.srcml index c3ae7ccf49..5e0c29be23 100644 --- a/support/ecmagenerator/src/srcml/RSnapPerpendicular.srcml +++ b/support/ecmagenerator/src/srcml/RSnapPerpendicular.srcml @@ -28,7 +28,7 @@ class RMouseEvent; /** - * \brief On entity snapper implementation. + * \brief Perpendicular snapper implementation. * * \scriptable * diff --git a/support/ecmagenerator/src/srcml/RVersion.srcml b/support/ecmagenerator/src/srcml/RVersion.srcml index f7984436b8..800db76730 100644 --- a/support/ecmagenerator/src/srcml/RVersion.srcml +++ b/support/ecmagenerator/src/srcml/RVersion.srcml @@ -26,12 +26,12 @@ * x.x.x for releases * x.x.x.x for snapshots only */ -#define R_QCAD_VERSION_STRING "3.12.3.3" +#define R_QCAD_VERSION_STRING "3.12.3.4" #define R_QCAD_VERSION_MAJOR 3 #define R_QCAD_VERSION_MINOR 12 #define R_QCAD_VERSION_REV 3 -#define R_QCAD_VERSION_BUILD 3 +#define R_QCAD_VERSION_BUILD 4 #endif diff --git a/support/ecmagenerator/src/xml/RArc.xml b/support/ecmagenerator/src/xml/RArc.xml index d51b864798..c66c0d9537 100644 --- a/support/ecmagenerator/src/xml/RArc.xml +++ b/support/ecmagenerator/src/xml/RArc.xml @@ -455,6 +455,15 @@ xmlns:rs="http://www.ribbonsoft.com"> isConst="false" /> + + + + + diff --git a/support/ecmagenerator/src/xml/RCircle.xml b/support/ecmagenerator/src/xml/RCircle.xml index 574e488261..a400bf5194 100644 --- a/support/ecmagenerator/src/xml/RCircle.xml +++ b/support/ecmagenerator/src/xml/RCircle.xml @@ -239,6 +239,15 @@ xmlns:rs="http://www.ribbonsoft.com"> name="transform" isConst="true" /> + + + + + diff --git a/support/ecmagenerator/src/xml/RSnap.xml b/support/ecmagenerator/src/xml/RSnap.xml index e1ada58db1..0842a78345 100644 --- a/support/ecmagenerator/src/xml/RSnap.xml +++ b/support/ecmagenerator/src/xml/RSnap.xml @@ -19,6 +19,7 @@ xmlns:rs="http://www.ribbonsoft.com"> +