Commit Graph

26583 Commits

Author SHA1 Message Date
luz paz
bcc2873fb9 Draft: fix doxygen typos 2021-12-07 22:53:54 -06:00
Paul Lee
c5c5c8a880 [ArchWall] Do not copy shape
Discussions-
https://forum.freecadweb.org/viewtopic.php?style=1&t=62968&p=540585
234899409f
2021-12-07 18:55:43 -06:00
Abdullah Tahiri
f7deb780a5 Sketcher: Addition of layerId field to SketcherGeometryExtension, GeometryFacade and ExternalGeometryFacade, and their Python wrappers 2021-12-07 16:30:55 +01:00
Abdullah Tahiri
01d37cdaad Sketcher: move GUI common utility functions to a new file Utils.h
=================================================================

Common utility functions used by almost all Command classes were previous in Constraint.h.

Aside from providing a very bad intent, it created unnecessary header dependencies.

This commit separates these common functions into a new header, utils.h, which is then
used in all command classes where it is necessary.
2021-12-07 16:30:55 +01:00
Abdullah Tahiri
ffa6f0c50f Sketcher: CommandSketcherTools add missing include that was indirectly satisfied 2021-12-07 16:30:53 +01:00
Abdullah Tahiri
0e286af509 Sketcher: ConstraintType enum indicate underlying type
======================================================

This enables forward declaration
2021-12-07 16:30:53 +01:00
Abdullah Tahiri
0331b8a0ab Sketcher: SketchObject - method to getCompleteGeometry as GeometryFacade
========================================================================

As GeometryFacade is provided with more sketcher specific functionality, the demand
for to get GeometryFacades instead of Part::Geometry object increases too. This
addition reflects this increase of demand.
2021-12-07 16:30:53 +01:00
Abdullah Tahiri
9a6e12b73d Sketcher: Move GeoEnum struct to separate file
==============================================

Separate struct into own file to avoid having to include all the dependencies of SketchObject in other code that relies on GeoEnum.
2021-12-07 16:30:53 +01:00
Abdullah Tahiri
feba33a9b8 Sketcher: Create GeoList class
==============================

Class for managing internal and external geometry as a single object. This is a light-weight alternative to
passing the whole SketchObject.

It reflects the format used in getCompleteGeometry of SketchObject and Sketch solver facade class, while providing
several convenient conversion functions to map indices.

Internal and external geometries are present in a single geometry vector one after the other.

The index of the geomlist (all layers) and the GeoId can be converted from each other at needed
using the member fuctions (and sometimes the static member functions).

Internal implementation is as a template GeoListModel<T>.

The following types are instantiated. Specialisation is provided where necessary.

GeoList = GeoListModel<Part::Geometry *>;
GeoListFacade = GeoListModel<std::unique_ptr<const Sketcher::GeometryFacade>>;

This enables to use the lighter GeoList were sufficient, while enabling off-the-shelf replacement
when switching to a GeoListFacade is necessary.
2021-12-07 16:30:53 +01:00
Abdullah Tahiri
cc94820a06 Sketcher: GeometryFacade Improvements
===============================================

1. Correct GeometryFacade getGeometry for const objects.
2. Modifications to avoid exceptions on the constructors.
3. Add default move constructor and move assignment operator.
4. Delete default copy constructor and copy assigment operator.
2021-12-07 16:30:53 +01:00
Abdullah Tahiri
a16cbdc7a4 Part: Geometry - Curve member to calculate the normal at Point
==============================================================

Convenience member function combining closestParameter and normalAt using parameter.
2021-12-07 16:30:53 +01:00
Abdullah Tahiri
80f9793344 Part: Geometry - Extend Geometry Curve to query the value at parameter point directly from D0
=============================================================================================

Use the geometry specific D0 to calculate value at parameter point.
2021-12-07 16:30:53 +01:00
Abdullah Tahiri
70757f8ae3 Sketcher: Constraint.h - add underlying type to PointPos enum
==============================================================

This enables forward declarations.
2021-12-07 16:30:53 +01:00
wmayer
a6838cf58f Gui: rename methods of SelectionObserver to clarify intention in client code 2021-12-07 14:17:07 +01:00
wmayer
8424c9323b PD: enable selection only on request and disable it after selecting an object 2021-12-07 13:06:48 +01:00
wmayer
90db4c885b PD: eliminate the boolean argument from TaskSketchBasedParameters::onSelectReference 2021-12-07 11:04:22 +01:00
wmayer
c1289a0d6f PD: 0004759: Bad error message when creating pad with 0 length 2021-12-07 10:09:11 +01:00
Uwe
242531b1c2 [PD] improve selection mode exit for Helix
exit the selection mode if selection was got - like we do it for all other PD features
2021-12-07 04:18:33 +01:00
Uwe
31abf0a3e6 [PD] fix calculation of possible Helix intersections
the current routine fails for the growth mode.

This PR fixes this by handling this case separately from the other modes.
2021-12-07 03:19:35 +01:00
wmayer
a20383af34 Part: 0004742: Editing features by context menu may not be undoable 2021-12-06 19:34:52 +01:00
wmayer
a12695e44f Gui: move methods startDefaultEditMode() and addDefaultAction() to ViewProviderDocumentObject 2021-12-06 19:24:26 +01:00
wmayer
d360917583 PD: 0004742: Editing features by context menu may not be undoable 2021-12-06 14:11:10 +01:00
Brent Roettger
8b6a8b4e20 Added back defaults for SpaceExplorer 2021-12-06 11:02:26 +01:00
luz paz
6c265d0453 Use correct name spacemouse so it's uniform and searchable in our code
Make all mentions of `spacemouse` in the code a single word (with no whitespace) so we can parse the source code more accurately to find mentions of it if necessary.
2021-12-06 10:31:06 +01:00
Uwe
dd639cbe8d [PD] fix division by zero in Helix
- when a helix is defined in the growth mode it can have a pitch of zero

This commit fixes the resulting division by zero by directly setting the known turns
2021-12-06 02:40:34 +01:00
Uwe
9abe56741a [PD] Helix: improve variable naming
use unique variable names
2021-12-05 21:59:06 +01:00
Uwe
6dc5358a2e [PD] rewrite a Helix function
rewrite the function to check if helix might intersect itself to make it better readable/understandable
2021-12-05 21:28:52 +01:00
Uwe
45db2195d3 [PD] add missing tooltips for Helix dialog 2021-12-05 19:21:27 +01:00
wmayer
45de32c4e1 Spreadsheet: fix format of table cells when used for printing, by default use landscape orientation 2021-12-05 12:16:54 +01:00
wmayer
1d3822822d Spreadsheet: issue 0002957: spreadsheet direct printing 2021-12-04 23:36:11 +01:00
Brent Roetger
a857d99adf Added SpaceNavigator defaults 2021-12-04 11:49:02 +01:00
Uwe
450fb1f48a [GUI] code style fixes for Tree.cpp
tons of style fixes by MSVC

(the idea was initially just to fix the code style issues from commit 82c46586e67c9 and then MSVC found many more)
2021-12-04 02:57:34 +01:00
wmayer
b9d2aca09f PD: refactor ReferenceSelection 2021-12-03 21:38:28 +01:00
wmayer
0579052cbc PD: comment out dead code 2021-12-03 20:18:46 +01:00
0penBrain
89706839e0 [Gui] Tree: implement collapse/expand system with keys
Implemented using Alt modifier + arrow keys
 * Alt+Left : collapse selected items
 * Alt+Right : expand selected items
 * Alt+Up : expand selected items with all tier-1 children collapsed
 * Alt+Down : expand selected items with all tier-1 children expanded
2021-12-03 18:08:47 +01:00
0penBrain
2f8f4d6a7f [Gui] UserEditMode : fix operating on PartDesignObject 2021-12-03 16:53:30 +01:00
wmayer
945028847a PD: avoid include generated .ui file in header file 2021-12-03 15:59:15 +01:00
wmayer
e9c4f4acc1 PD: minor cleanup in view provider headers 2021-12-03 15:58:23 +01:00
wmayer
b165947625 PD: cleanup the mess with boolean arguments and replace them with a bitmask 2021-12-03 14:46:19 +01:00
Yorik van Havre
9135b5ec90 Merge pull request #5219 from luzpaz/gender-neutral-fixes
Make source code comments use gender neutral pronouns
2021-12-03 13:36:17 +01:00
wmayer
0711f6003b PD: use button group to make mid-plane and reversed option mutual exclusive 2021-12-03 00:01:49 +01:00
sliptonic
8a5aaf35a3 Merge pull request #5217 from sliptonic/feature/rotationgenerator
[PATH] rotation generator and tests
2021-12-02 15:40:06 -06:00
luz paz
d877ee4d47 Make source code comments use gender neutral pronouns
The changes also include some grammatical fixes as well.
2021-12-02 16:18:04 -05:00
wmayer
d4f0eb5bfb PD: fix ProfileBased::getAxis
Introduce an enum to verify the axis depending on the used context.
* For helix no restriction is needed
* For Pad/Pocket the axis must not be parallel with the sketch plane
* For Revolve/Groove the axis must not be perpendicular with the sketch plane
2021-12-02 17:24:18 +01:00
wmayer
5824a64b61 App: expose more methods of Document class to Python 2021-12-02 11:46:13 +01:00
wmayer
74c4d17695 TD: fix C++20 warning: bitwise operation between different enumeration types [-Wdeprecated-enum-enum-conversion] 2021-12-02 10:12:35 +01:00
wmayer
b2c1b574d4 Gui: fix C++20 warning: bitwise operation between different enumeration types [-Wdeprecated-enum-enum-conversion] 2021-12-02 09:59:31 +01:00
Syres916
32a01cab14 Change macro path selection from File to Folder 2021-12-02 02:09:51 +01:00
wmayer
8dd1101506 Gui: fix C++20 warning: bitwise operation between different enumeration types [-Wdeprecated-enum-enum-conversion] 2021-12-01 23:45:26 +01:00
wmayer
5e66475757 PD: fix build failure with C++20 2021-12-01 23:24:16 +01:00