Commit Graph

2222 Commits

Author SHA1 Message Date
0penBrain
6bb1fb6732 [Sketcher] Disable constraint selectability on Shift press 2022-02-17 16:17:04 +01:00
0penBrain
a12f5f2691 [Sketcher] Disable constraints selection when geometry/constraint handler is active 2022-02-17 16:17:04 +01:00
wmayer
39261d2c6b Sketcher: for Linux systems put definition of GeoElementId members back to header file to fix possible linker errors 2022-02-15 22:01:51 +01:00
0penBrain
44edfa37c7 Sketcher: add GeoID on extended naming of geometries 2022-02-15 14:02:07 +01:00
0penBrain
9eb6ac2c4d Sketcher: add construction mode display for points in element list 2022-02-15 14:02:07 +01:00
Ajinkya Dahale
3d452d9396 [Sketcher] Add comment suggesting future segfault fixes
Apparently B-Spline knot insertion is challenging the sketcher update process
and spurious GUI updates sometimes occur in the intermediate step after the
knot is inserted but before the internal geometries are re-defined. This set of
comments points to a previous fix and related discussion as a suggestion.
2022-02-15 13:44:02 +01:00
Ajinkya Dahale
5c817bf5e4 [Sketcher] Check constraint type before drawing icons
Change is in `EditModeConstraintCoinManager::drawConstraintIcon` on the lines of 16a28614c86d01e2d70eeaf376861e25af579304.
2022-02-15 13:44:02 +01:00
Ajinkya Dahale
654d7c7b20 [Sketcher] Reformat statements in EditModeConstraintCoinManager.cpp 2022-02-15 13:44:02 +01:00
wmayer
7acad0a043 Sketcher: fix linking errors with Conda builds 2022-02-14 12:41:07 +01:00
Yorik van Havre
e1028eb65e Merged crowdin translations 2022-02-14 12:31:57 +01:00
Ajinkya Dahale
6f7df343db [Sketcher] Use proper formatting for knot list in dialog 2022-02-12 11:00:39 +01:00
Ajinkya Dahale
64224aa618 [Sketcher] Make B-Spline curvature comb piecewise
This allows for better display of discontinuity in curvature and tangent
information.
2022-02-12 11:00:39 +01:00
wmayer
4bc4997680 Sketcher: [skip ci] fix build failure with Qt 5.9 2022-02-09 17:45:24 +01:00
Ajinkya Dahale
f712461c8f [Sketcher] Fix some points mentioned in #6323
Knot insertions dialog uses decimal precision from preferences.

Sets the spinbox step for knot insertion dialog such that it goes from min to
max knot in 1000 steps.

Removes the mention of multiplicity option from the tooltip.
2022-02-09 13:53:46 +01:00
Abdullah Tahiri
faf8b8e6a6 Sketcher: remove extra semicolon 2022-02-06 07:02:25 +01:00
Ajinkya Dahale
0eb03ef734 [Sketcher] Give knot information in insert knot command 2022-02-06 07:01:47 +01:00
0penBrain
d6a314c4b9 [Sketcher] Fix section mode automation 2022-02-06 05:52:51 +01:00
0penBrain
d25a3e566c [Sketcher] Fix check for fixed items in tangent+perpendicular 2022-02-06 05:12:15 +01:00
Abdullah Tahiri
ebe788129a Sketcher: Correct comment
========================

e9e68d3d9d (r64179273)
2022-02-05 05:29:44 +01:00
Abdullah Tahiri
53d80b69f0 Sketcher: Control Polygon incomplete for periodic BSplines
==========================================================

Bug fix:
https://forum.freecadweb.org/viewtopic.php?p=565127#p565127

Incorrect indexing of lineset fixed
2022-02-05 05:25:01 +01:00
Yorik van Havre
d7c5800da2 Merged crowdin translations 2022-02-01 12:59:42 +01:00
wmayer
62734ca415 PD: PrefQuantitySpinBox now requires an explicit entry name for the parameter group 2022-01-31 16:47:08 +01:00
Yorik van Havre
233182dcd6 Merged crowdin translations 2022-01-26 14:15:14 +01:00
0penBrain
2a1f2588ec [Sketcher] set debug as cross platform 2022-01-20 13:03:16 +01:00
wmayer
659a55ffb9 Base: Exception handling:
* Harmonize FreeCAD with Python exception types
* Implement AbortException::getPyExceptionType() to avoid handling it in client code
* Remove catch block for plain C strings
2022-01-19 18:00:04 +01:00
mwganson
a4582d8d61 Sketcher: prevent crash when accessing null pointer 2022-01-16 15:14:05 +01:00
luz paz
6394fed4e6 Fix various typos
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childrens,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oce,oder,ontop,orgin,orginx,orginy,ot,pard,parm,parms,pres,programm,que,rady,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
2022-01-12 14:50:39 -06:00
Yorik van Havre
c24ca51a44 Merged crowdin translations 2022-01-10 11:23:59 +01:00
luz paz
28ab1bb68f Fix various superfluous whitespace in *.dox files 2022-01-09 21:01:42 -06:00
Abdullah Tahiri
d885bb7ef7 Sketcher: Remove unnecesary geometry touch 2022-01-09 11:40:49 +01:00
Abdullah Tahiri
5279bf68c7 Sketcher: EditCoinManager - Check constraint types on updating constraint color
===============================================================================

Problem:
- While SketchObject inhibits intermediate updates during internal command execution, sometimes
a change in the selection (clear selection) in an intermediary step triggers an spurious update colour.

- There will be a final draw and this update colours at the end of the internal command.

- If the types of the constraints changed during the intermediary steps, it may happen that the constraint
coin nodes at a given position no longer correspond to the constraint type in the SketchObject property. This
may cause a attempt to access to a non-existing node or static casting a existing node to the wrong type.

Solution:
- Check the type of the constraint against the cached type. If not matching, cancel the color update.
2022-01-09 11:40:49 +01:00
Ajinkya Dahale
37e93cc167 [Sketcher] Add knot insertion command in Sketcher workbench 2022-01-09 11:33:53 +01:00
Ajinkya Dahale
07cad4ab64 [Sketcher] Add insertBSplineKnot to SketcherObject
[Sketcher] Workaround for segfault on knot insertion
2022-01-09 11:33:53 +01:00
wmayer
bd93c0a5cc Sketcher: improve exception handling
* if determining the normal raises an exception then fall back to a default value
* when handling a Base::Exception then call its ReportException() function to get as much information as possible
2022-01-08 13:48:01 +01:00
Abdullah Tahiri
44414e74d3 Sketcher: ViewProvider parameter color subscription
===================================================

Bug:

Subscription/Unsubscription of outside of edit mode parameters was missing.

So changing the edge color from settings required to restart FreeCAD.

Fix:

Subscribe/Unsubscribe from the relevant parameter group
2022-01-07 10:19:22 +01:00
wmayer
52fc10a59f Sketcher: avoid attaching to/detaching from the same parameter group twice 2022-01-06 00:35:36 +01:00
wmayer
922582d036 Sketcher: avoid attaching to/detaching from the same parameter group twice 2022-01-05 14:05:05 +01:00
wmayer
dfa202c234 Sketcher: fix build failures with MinGW 2021-12-30 15:12:56 +01:00
wmayer
e01ab89317 Sketcher: fix build failures with MSVC 2021-12-30 14:54:37 +01:00
Yorik van Havre
91bfb0fbb6 Merged crowdin translations 2021-12-29 12:20:12 +01:00
luz paz
df55155c27 Sketcher: fix source comment typos
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childrens,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,ontop,orgin,orginx,orginy,ot,pard,parm,parms,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
2021-12-28 10:26:37 -06:00
Abdullah Tahiri
22c31aeac6 Sketcher: Adapt Typed Facade to new behaviour of automatic taking ownership of emplaced pointer 2021-12-27 21:03:51 +01:00
Abdullah Tahiri
69c31dce82 Sketcher: GeoList improvements
==============================

- Constructor from const vector reference is not allowed to take ownership (as it should not delete the const pointer). The ownership parameter is removed.

- Factory method for const objects cannot either. So the ownership parameter is also removed.
2021-12-27 21:03:51 +01:00
Abdullah Tahiri
bbf9c34c2f Sketcher: GeometryFacade improvements
=====================================

- GeometryFacade will throw when instantiated with a const Part::Geometry * that does not have a SketchGeometryExtension. It
cannot create it because it is not supposed to modify a pointer to a const object.

- Static functions will check the passed Part::Geometry * parameters and will throw if nullptr.

- GeometryTypedFacade constructor and factory methods to take owner parameter (defaulted to false) for consistency with GeometryFacade.

- The emplace style factory method will make the GeometryFacade take ownership of the emplaced Part::Geometry *. This should avoid memory leaks. The
user shall setOwner(false) if it needs to release() the underlying Part::Geometry * (to transfer ownership).

- Code comments made into doxygen documentation.
2021-12-27 21:03:51 +01:00
Abdullah Tahiri
31832e6c8e EditCoinManager: Ensure rootpoint is higher than constraints
============================================================

Following new behaviour of highlighting root point on full constrained:
https://forum.freecadweb.org/viewtopic.php?p=555663#p555663

the rootpoint was lowered in virtual height with respect to the rest of points, so that
the color of any other overlapping point takes precedence.

However, this made it the same height as constraints, causing it to be unpickable in presence of
a colocated constraint:
https://forum.freecadweb.org/viewtopic.php?p=556114#p556114

Solution: Raise all points by one
2021-12-27 21:03:51 +01:00
Abdullah Tahiri
84898bd9a8 Part: Geometry and Sketcher: GeometryFacade and ExternalGeometryFacade
======================================================================

Change pass-by-value to const reference.

Thanks Kunda!

https://lgtm.com/projects/g/FreeCAD/FreeCAD/alerts/?mode=tree&ruleFocus=2163210742
https://forum.freecadweb.org/viewtopic.php?p=555658#p555658
2021-12-27 21:03:51 +01:00
Abdullah Tahiri
0df17613b1 EditCoinManager: root point full constrained only when there is another point on top 2021-12-27 21:03:51 +01:00
Abdullah Tahiri
053cc36541 EditCoinManager: Additional refactoring 2021-12-27 21:03:51 +01:00
Abdullah Tahiri
e91dcf39c1 Sketcher: Sketch - extraction of geometry as GeoList with owned memory allocation
=================================================================================

Apart from simplifying code, the allocated memory is not managed by the lifetime of the unique pointer owned by the GeometryFacade, preventing memory leaks.
2021-12-27 21:03:51 +01:00
Abdullah Tahiri
bc6e4c1355 Sketcher: GeometryFacade - Add ownership parameter to factory method 2021-12-27 21:03:51 +01:00