Commit Graph

103 Commits

Author SHA1 Message Date
bgbsww
d0a636ad7a Delinting pass 2024-02-03 18:33:07 -05:00
Zheng, Lei
c8061df71b Transfer in Geometry.x changes from RT branch 2024-02-01 17:48:32 -05:00
Paddle
30e2a109e6 PythonConverter: Extend for Hyperbola/Parabola/BSpline 2023-12-20 06:59:47 +01:00
Paddle
b97a2ef6dc Adds a small convenience function to get arc of circle angle. 2023-09-18 21:33:24 +02:00
wmayer
7fe0d5b9a6 modernize C++: use equals delete 2023-08-10 17:29:05 +02:00
wmayer
d6208d9b9a Part: fixes to create a NURBS for the arc of a conic
See forum: https://forum.freecad.org/viewtopic.php?t=75846
2023-02-12 19:45:00 +01:00
Abdullah Tahiri
152dda172c Part/Sketcher: Geometry/Geometry facade pass by const-reference instead of by value 2023-01-09 17:13:26 +01:00
Ajinkya Dahale
06b30e1ec1 [Part] Add/change some methods in GeomBSplineCurve
Add `setPeriodic` to turn a b-spline periodic.
Allow `join` to join any bounded curve not just b-spline.
2022-12-04 08:17:20 +01:00
berniev
180edfa3cc Mod: Single arg ctors must be explicit 2022-08-24 16:55:20 +02:00
tomate44
bb8f8d4647 [Part] Change BSplineCurve/Surface setBounds() method name to scaleKnotsToBounds() 2022-08-23 12:41:55 +02:00
tomate44
e1ce35de14 [Part] Add setBounds method to BSplineCurve
and change BSplineSurface.setBounds() to use dedicated OCCT function
2022-08-23 12:41:55 +02:00
wmayer
c87e1cc1c2 clang: fix warnings [-Winconsistent-missing-override] 2022-08-09 17:36:25 +02:00
berniev
71dc5ead2f Mod: Use override etc 2 2022-08-09 12:52:26 +02:00
berniev
f4ffd15864 Mod: redundant void 2 2022-08-08 10:27:50 +02:00
tomate44
0398a684df [Part] BSplineSurface: add setBounds method 2022-07-27 14:27:08 +02:00
Uwe
6b00cc31c7 [Part] Geometry*: remove unneeded includes
- also sort includes
2022-07-04 10:25:05 +02:00
wmayer
2c3ef52dba Part: move BiArcs algorithm to its own class 2022-06-28 12:42:15 +02:00
wmayer
523d364c92 Part: fix GeomBSplineCurve::toBiArcs
If tangent of start and end point are parallel then also check a tangent in between to make sure that it can be considered a straight line
See https://forum.freecadweb.org/viewtopic.php?f=8&t=69710
2022-06-28 11:26:35 +02:00
Abdullah Tahiri
088ca8ee03 Part: Geometry - Add Ellipse minor radio convenience function 2022-06-25 19:03:11 +02:00
Abdullah Tahiri
30f46d3a34 Part: Geometry - function to get the conic axis direction 2022-06-25 19:03:11 +02:00
Benjamin Alterauge
b7ab1dc895 GeomBSplineCurve: Add interpolate without tangents
Now with description

Periodic selectable
2022-06-24 02:25:55 +02:00
wmayer
135379e618 Part: issue #6488: Cone surface returns wrong dv derivative
This is a workaround to fix a bug in ElSLib::ConeDN
2022-03-01 14:59:26 +01:00
Ajinkya Dahale
ff2e246a55 [Part] Support insertion of knots in b-splines 2022-01-09 11:33:53 +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
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
Tomas Pavlicek
a7d83b5e15 Sketcher - Add new Split Edge action 2021-04-24 14:30:35 +02:00
Abdullah Tahiri
5ea99f4786 Part: Geometry - Add function to trim a B-Spline
================================================

Supports both non-periodic and periodic case
2021-03-21 06:56:23 +01:00
Abdullah Tahiri
6d0c845208 Part: Geometry - BSpline - fix weight assignment
================================================

If during assignment of weights (during the for loop iteratively setting the poles) all weights
become (temporarily) equal even though weights does not have equal values
OCCT will convert all the weights (the already assigned and those not yet assigned)
to 1.0 (nonrational b-splines have 1.0 weights). This may lead to the assignment of wrong
of weight values.

The work-around is to temporarily set the last weight to be assigned to a value different from
the current value and the to-be-assigned value for the weight at position last-to-be-assign but one.

Fixes:
https://forum.freecadweb.org/viewtopic.php?p=478701#p478702
2021-02-18 17:28:38 +01:00
Abdullah Tahiri
f7be6f5051 Part: Geometry - BSplineCurve - add IsRational member function 2020-12-19 11:58:54 +01:00
Abdullah Tahiri
994bd9d92b Part/Sketcher - Construction Migration - step 3: Removal of Geometry construction data member
=============================================================================================

This commits removes the Geometry construction data member and adapts sketcher code to use
GeometryFacade to access construction information via the SketchGeometryExtension.
2020-12-10 18:34:06 +01:00
Abdullah Tahiri
2c47b340bb Part: Geometry - Add non-const getters for extensions 2020-12-10 18:34:06 +01:00
Abdullah Tahiri
a15fd629e1 Part: Geometry refactor member copy
===================================

Encapsulate Part::Geometry data member copy process in a single function (copyNonTag).

Part::Geometry derived classes need not know the specifics of the data member of Part::Geometry.

Change the delegation of the copy of extensions from clone() to copyNonTag. Because clone() relies on
copy() and now copy() of Part::Geometry data member relies on copyNonTag(), there is no actual change
to the clone() functionality, but the copy() funcionality gains the copy of the extensions via copyNonTag().
2020-12-10 18:34:06 +01:00
wmayer
f384202b93 Part: [skip ci] make arguments const references 2020-11-03 13:12:23 +01:00
Abdullah Tahiri
88e542b345 Part: Geometry extensions constness correction 2020-11-03 12:01:22 +01:00
Abdullah Tahiri
5c492f727c Part: Geometry - refactor py functions into class for code reuse 2020-11-03 12:01:22 +01:00
Abdullah Tahiri
00a1aa6225 Part: Geometry - encapsulate construction access 2020-10-25 03:52:51 +01:00
wmayer
4fbc693014 Part: [skip ci] add method to approximate a B-spline curve with a given max. degree 2020-10-23 00:06:31 +02:00
wmayer
343639640c Part: converter from Adaptor3d_Curve to GeomCurve 2020-09-28 14:53:42 +02:00
wmayer
1f8296736b Part: improve Python interface
+ rename getCurve2dFromGeom2d to makeFromCurve2d
+ add function makeFromCurve and makeFromTrimmedCurve like makeFromSurface
+ implement OffsetCurve.BasisCurve
+ fix memory leak in BRepOffsetAPI_MakePipeShellPy
2020-09-27 23:34:45 +02:00
wmayer
2c8f78b299 Part: [skip ci] return std::unique_ptr from Part::makeFromSurface() to avoid memory leaks 2020-08-29 23:56:12 +02:00
Abdullah Tahiri
006b470a20 Part: geometry extensions minor code clean up 2019-07-14 12:37:35 +02:00
Abdullah Tahiri
8618dfd3c6 Part Geometry: get an extension from type or name, also from python 2019-07-14 12:37:33 +02:00
Abdullah Tahiri
d8e99c1923 Part:: Geometry container extend hasExtension to type and name 2019-07-14 12:37:33 +02:00
Abdullah Tahiri
4d9d3b0c83 Part: Geometry - methods to remove extensions by name and type 2019-07-14 12:37:33 +02:00
Abdullah Tahiri
7488faa99f Part: Geometry extensions set interface
=======================================

unique_ptr is a move only type. Therefore it may only take an rvalue.

It does not make sense a pass by value for move only types (Item 41).
2019-07-14 12:37:31 +02:00
Abdullah Tahiri
d082a42351 Part: Excise GeometryExtension from Geometry 2019-07-14 12:37:30 +02:00
Abdullah Tahiri
55be6fdb7f Geometry Extension based on smart pointers 2019-07-14 12:37:28 +02:00
Abdullah Tahiri
622f249dcd Part: Geometry Extensions 2019-07-14 12:37:28 +02:00
wmayer
92716f1361 fix minor issues 2019-02-12 11:16:52 +01:00