Commit Graph

85 Commits

Author SHA1 Message Date
Benjamin Bræstrup Sayoc
1d7e7c86a0 [TechDraw] Use templates instead of duplicate code: toGp 2025-02-08 22:35:57 +01:00
wmayer
c9a586f34a Building: Boost dependency errors
Fixes #15999
2024-08-22 18:50:24 -05:00
wandererfan
131956e201 [TD]fix crash on Cosmetic line > 10m 2024-08-19 12:34:53 -04:00
bgbsww
d467236564 Guard all uses of basic_random_generator for thread safety 2024-06-10 11:10:57 -05:00
WandererFan
b71c2a3278 [TD]Cosmetic function overhaul (#14216)
* [TD]Cosmetic geometry and tools update

- all cosmetics to store geometry in same form
- all cosmetics to survive scaling and rotation
- extension functions to survive scaling and rotation

* [TD]overhaul leader point storage and editing

- add py routine makeLeader(points)

* [TD]add leader conversion utility

* [TD]Set Leader RotateWithView default to true

* [TD]fix intersection vertex position

* [TD]add CosmeticEdge::makeLineFromCanonicalPoints

* [TD]fix 2 Extension tools

- positioning in DrawCosmeticCircle
- mishandling of points in execLineParallelPerpendicular

* [TD]Remove duplicate constexpr

* [TD]fix 2x Cosmetic arc tools

* [TD]refactor LineFormat out of Cosmetic

* [TD]move cosmetic appearance settings to LineFormat

* [TD]remove 2 unused methods

* [TD]apply format to blue line & circle tools

* [TD]fix ballon arrowhead does not rotate with view

* [TD]fix CosmeticCircle3Points

* [TD]allow multiple cosmetic object deletions

* [TD]fix extend/shorten centerline
2024-05-23 09:41:42 -04:00
wandererfan
a63ed712f6 [TD]fix thread line alignment 2024-03-14 21:45:16 -04:00
wandererfan
deed6df1b2 [TD]fix line number not saved for cosmetic edge 2024-01-22 20:02:54 -05:00
wandererfan
e6517089df [TD]fix location of CV on rotated views 2023-12-24 12:27:25 -05:00
wandererfan
762e1b53ff [TD]Standard Line Styles - Gui components 2023-12-01 11:27:29 -05:00
wandererfan
8a7e8effb3 [TD]Standard Line Styles - App components 2023-12-01 11:27:29 -05:00
pavltom
4ea8558e09 [TechDraw] - Cosmetic circle fixes 2023-10-20 12:18:30 -04:00
wandererfan
afd06d09f7 [TD]fix omission in splitting GeometryObject 2023-08-19 17:18:42 -04:00
wandererfan
8e52a0baf8 [TD]Rotate CosmeticEdge with View 2023-08-19 17:18:42 -04:00
Benjamin Bræstrup Sayoc
5cb05ce3c1 [TechDraw] Improve Cosmetic.cpp typing
Make type safe by using const keywords when appropriate and improve memory handling by using references when appropriate.
2023-08-19 13:28:53 -04:00
wandererfan
3e164a5700 [TD]split GeometryObject 2023-08-18 15:18:42 -04:00
Benjamin Bræstrup Sayoc
70c9cf0fc0 [TechDraw] Simplify return logic
Easy warmup
2023-04-11 13:00:45 -04:00
Benjamin Bræstrup Sayoc
ef5fc4f237 [TechDraw] Simplify return logic 2023-04-10 23:34:05 -04:00
Benjamin Bræstrup Sayoc
15fe52a04b [TechDraw] Simplify retrievement of user preferences
for all TechDraw files
2023-04-10 23:34:05 -04:00
Benjamin Bræstrup Sayoc
a207822ee8 [TechDraw] Move CenterLine into own file 2023-04-06 13:51:35 -04:00
Benjamin Bræstrup Sayoc
124bbcdeb9 [TechDraw] Move CosmeticVertex into own file 2023-04-06 13:51:35 -04:00
Abdullah Tahiri
c604d1741d Console/ILogger: Refactor and extension
=======================================

Refactor:
 - Substitute the use of variadic templates with parameter packs.
 - Use recently incorporated external library "fmt" to handle printf like formating.
 - Extensive cleaning of pragmas and unnecessary forward declarations.
 - Parameter packs and libfmt provide a much stronger type checking now, so
   conversions that are by standard implicit as bool to int need an explicit static_cast
   to avoid compilation warnings.

Extension:
 - Include a notifier field, so that the originator of the message can be provided. E.g. Document#DocumentObject
 - Include a new type of message called CriticalMessage, this message is intended to have
   special behaviour in the future. Namely, it will be used to notify forward compatilibity issues.
   It will be used to substitute the current signal/slot mechanism.
 - Include two new types of messages for user notifications (Notification and TranslatedNotification). This messages
   will be use to convey UI notifications intended for the user (such as non-intrusive message about the usage of a tool). There
   are two versions to mark whether the string provided as a message is already translated or not. When using the console system for
   notifications, these notifications may originate from the App or the Gui. In the former, it is generally the case that the strings
   of messages are not (yet) translated (but they can be marked with QT_TRANSLATE_NOOP). In the latter, often the messages to be provided
   are already translated.

Python support for CriticalMessage, Notification and TranslatedNofification, including shortcuts:

    Crt = FreeCAD.Console.PrintCritical
    Ntf = FreeCAD.Console.PrintNotification
    Tnf = FreeCAD.Console.PrintTranslatedNotification
2023-03-07 16:13:23 +01:00
wandererfan
01641433c1 [TD]getters and setters for geometry
- make attributes private (or protected) and use
  getters and setters instead of accessing attributes
  directly.
2023-02-28 08:15:06 -05:00
Uwe
76ec5de64b [TD] A* - C*: remove unused includes
- also sort includes
- also sort PreCompiled.h
2022-10-03 23:05:36 +02:00
marioalexis
d206116c3d TechDraw: Replace C cast 2022-09-18 11:06:51 -05:00
wandererfan
86f61834ce [TD]default LineFormat ctor 2022-09-07 16:06:54 -04:00
wandererfan
acf17905ed [TD]CI clang warnings 2022-09-05 17:48:38 -04:00
wandererfan
3e7a22daef [TD]cosmetic vertex size consistency 2022-08-28 13:13:20 -04:00
berniev
da9ebc572f Mod: redundant void 2 2022-08-08 10:27:50 +02:00
Benjamin Bræstrup Sayoc
86dfd0a862 [TechDraw] Simplify code getting default line weights 2022-08-02 16:13:01 -04:00
Uwe
8304a0942e [TD] remove more superfluous nullptr checks 2022-07-20 02:32:52 +02:00
Uwe
93796e2d92 [TD] App: remove some superfluous nullptr checks 2022-07-19 02:03:50 +02:00
Benjamin Bræstrup Sayoc
0421d7cc5d [TechDraw] Gather rotation calculations in a single function 2022-07-16 16:00:10 -04:00
Benjamin Bræstrup Sayoc
137a4e0ee6 [TechDraw] Improve readability of Cosmetic.cpp 2022-07-16 16:00:10 -04:00
Benjamin Bræstrup Sayoc
568cc79186 [TechDraw] Refactor CosmeticEdge constructors
Use constructor delegation and default parameters for CosmeticEdge
2022-07-16 16:00:10 -04:00
Benjamin Bræstrup Sayoc
fac4e72ea4 [TechDraw] Use constructor delegation for CosmeticEdge 2022-07-16 16:00:10 -04:00
Benjamin Bræstrup Sayoc
eb3a04f30e [TechDraw] Use default parameters for LineFormat constructor 2022-07-16 16:00:10 -04:00
Wanderer Fan
d36cbb522a [TD]fix ExtendShorten handling of CenterLine 2022-04-23 18:43:27 -04:00
Uwe
b219c50ed6 [TD] App Headers: remove unused header - part 3/3 2022-03-25 01:13:34 +01:00
wmayer
a99be14233 TD: modernize C++11
* use nullptr
2022-03-23 19:26:14 +01:00
Wanderer Fan
913fb21502 [TD]fix misplaced section line
- BRepBndLib::Add results in wrong bbox center.
- replaced with BRepBndLib::AddOptimal
2022-03-03 09:31:29 -05:00
edi271
c46a4f776b [TD] Move Circulation method to DrawUtil 2022-01-21 11:22:40 -05:00
Wanderer Fan
e91cc8e329 [TD] avoid memory leaks by using shared_ptr
TD geometry objects are sometimes double deleted.  This
change uses shared_ptr instead of raw pointers to manage
deletions.
2022-01-07 13:34:20 -05:00
wmayer
c11d5df80a TD: replace usage of raw pointers of Vertex and Face with shared pointers.
This fixes issue 4741: Broken File After Using Landmark Dimension in TechDraw
2021-12-10 14:25:24 +01:00
wmayer
378dec720c Gui: fix -Winconsistent-missing-override, TD: fix -Wunused-parameter 2021-08-21 12:15:43 +02:00
Uwe
f5aea33548 Update src/Mod/TechDraw/App/Cosmetic.cpp
Co-authored-by: 0penBrain <48731257+0penBrain@users.noreply.github.com>
2021-08-03 13:23:14 +02:00
donovaly
b817ade2a8 [TD] comment the new centerline behavior
add missing info to understand the new centerline behavior as introduced with commit b981f905
2021-08-03 13:23:14 +02:00
donovaly
b981f9056c [TD] fix centerline crashes and bugs
the PR fixes the following things:
- change the way centerlines between 2 lines are calculated. The current implementation leads to many bugs and even crashes (e.g. when the 2 selected lines are parallel ones of a square). There are different forum threads from the last 1.5 years.
The new endpoint line sorting is the one described here: https://forum.freecadweb.org/viewtopic.php?f=35&start=20&t=44255&sid=989a668890f954c13ef81e4a04ee6912#p501179

- as consequence the erroneous and misleading line end flipping can go and is removed (only used internally)

- when creating a new centerline, you see it immediately

- when creating a new or editing an existing centerline and press Cancel, the creation/editing is aborted

- fix crash when the 2 selected lines are bot horizontal and one tries to create a vertical centerline

- fix crash when changing the orientation  of an existing centerline and the result would be invalid

- cleanup the code a bit
2021-05-15 05:21:29 +02:00
donovaly
a1915d313a [TD] make LineGroup selectable
At the moment one has to specify the LineGroup as string. But one doesn't know what groups exist. So one has to check the Wiki, learn there where the groups are defined and then open the definition file with a text editor.

This PR simplifies this by reading the existing groups out of the definition file and fill the combobox accordingly.
It also give the user info what the selected LineGroup defines via the tooltip.

A nice side effect is that no typos can occur since you don't have to enter the LineGroup name as text.
2020-12-03 17:24:49 +01:00
wandererfan
1cad17c5f5 [TD]draw line through 2 points 2020-08-19 09:02:25 -04:00
wmayer
cbb5f99ade PVS: V730 Not all members of a class are initialized inside the constructor 2020-07-18 10:59:27 +02:00