Ajinkya Dahale
dbef3747eb
[Part] Do not assume default period in B-spline
2024-06-24 21:56:58 +05:30
bgbsww
42eb4fdda6
Guard all uses of basic_random_generator for thread safety
2024-06-10 11:10:57 -05:00
wmayer
7a7c0081c3
Part: Add overloaded methods of GeomBSplineCurve::approximate
2024-04-03 18:06:00 +02:00
wmayer
5eabeff94e
Mod: fix several compiler warnings:
...
* fix -Wsometimes-uninitialized
* fix -Wunused-parameter
* fix -Wunused-variable
* fix -Winconsistent-missing-override
* fix -Wsign-compare
* fix -Wreorder-ctor
* fix -Wtautological-overlap-compare
2024-02-12 11:39:32 -06:00
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
a78ba4b91c
Part: fix crash in Geometry::Restore()
...
If a project contains an unknown geometry extension then the attempt to create it returns a null pointer which isn't checked and causes a segmentation fault.
See also forum: https://forum.freecad.org/viewtopic.php?t=81091
2023-09-17 19:29:28 +02:00
wmayer
b9e9fe435a
Part: modernize C++: use equals default
2023-08-22 15:14:03 +02:00
wmayer
c8abd4a6d4
Part: modernize C++: return braced init list
2023-08-19 11:35:41 +02:00
wmayer
ec73caa40e
modernize C++: make unique
2023-08-07 19:51:30 -06:00
wmayer
7a3106d31b
modernize C++: use bool literals
2023-08-06 01:35:39 +02:00
luzpaz
38a01939e0
Migrate domain name from freecadweb to freecad ( #9352 )
...
* Migrate domain name from freecadweb to freecad
* Migrate src/Mod/Material files
* Migrate Stylesheet related files
* Migrate *.svg files
* Migrate miscellaneous files
* Migrate some build files
* Migrate recently added TD AR_IRAM template files
Closes #6415
2023-04-24 15:19:20 -05:00
wmayer
454c580457
Part: creating a NURBS of a circle or ellipse doesn't respect any transformation
...
Example:
mat = App.Matrix()
mat.rotateX(1)
mat.rotateY(1)
mat.rotateZ(1)
circle = Part.Circle()
circle.Radius = 5
circle.transform(mat)
circle.transform(mat)
Part.show(circle.toShape())
nurbs = circle.toNurbs()
Part.show(nurbs.toShape())
arc = circle.trim(0, 2)
nurbs = arc.toNurbs()
Part.show(nurbs.toShape())
spline = circle.toBSpline()
Part.show(spline.toShape())
#-------------------------
ellipse = Part.Ellipse()
ellipse.MajorRadius = 5
ellipse.MinorRadius = 3
ellipse.transform(mat)
ellipse.transform(mat)
Part.show(ellipse.toShape())
nurbs = ellipse.toNurbs()
Part.show(nurbs.toShape())
arc = ellipse.trim(0, 2)
nurbs = arc.toNurbs()
Part.show(nurbs.toShape())
spline = ellipse.toBSpline()
Part.show(spline.toShape())
2023-02-14 22:56:42 +01: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
Abdullah Tahiri
f49fc46051
Part: Geometry
...
==============
End parameter must be strictly higher to require a wrap.
Settling discussion:
https://github.com/FreeCAD/FreeCAD/pull/6971#discussion_r917295684
2022-12-21 16:01:23 +01:00
Ajinkya Dahale
2ca96161ed
[Part] Fix periodic b-spline trim
...
When `v == u` we want to "break" the b-spline at `u` (also OCC will raise an
exception if same parameter is provided).
The range of parameter can in general be different than 1.0, so use a general term.
2022-12-21 16:01:23 +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
marioalexis
acdfde774a
Part: Replace C cast
2022-09-18 11:06:51 -05: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
berniev
f4ffd15864
Mod: redundant void 2
2022-08-08 10:27:50 +02:00
wmayer
1f20e692ac
Mod: [skip ci] minor improvements
2022-08-06 20:32:37 +02:00
berniev
53ba98d636
Mod: use empty
2022-08-06 19:30:13 +02:00
tomate44
0398a684df
[Part] BSplineSurface: add setBounds method
2022-07-27 14:27:08 +02:00
wmayer
2b039d67fe
Part: Fix several clazy issues:
...
* Maybe you meant to call Primitive::onChanged() instead [-Wclazy-skipped-base-method]
* Maybe you meant to call Primitive::mustExecute() instead [-Wclazy-skipped-base-method]
* Missing reference in range-for with non trivial type [-Wclazy-range-loop-reference]
* Use multi-arg instead [-Wclazy-qstring-arg]
* Use midRef() instead [-Wclazy-qstring-ref]
2022-07-25 08:31:18 +02:00
wmayer
b6494085b4
Part: replace PyObject_IsTrue with Base::asBoolean
2022-07-16 13:31:10 +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
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
andrea
c66aadeb60
removed references to OCC<7
2022-06-25 14:29:24 +02:00
Benjamin Alterauge
b7ab1dc895
GeomBSplineCurve: Add interpolate without tangents
...
Now with description
Periodic selectable
2022-06-24 02:25:55 +02:00
wmayer
2303fd808a
Part: apply OCC's fix for ElSLib::ConeDN and write a unit test
2022-05-27 14:44:35 +02:00
wmayer
2a5c875c6f
Part: LGTM: Multiplication result may overflow 'int' before it is converted to 'unsigned int'.
2022-05-11 10:03:53 +02:00
wmayer
33cdb8c640
Part: implement persistence methods of all geometry classes and raise exception if needed (but no assert(0))
2022-04-08 11:48:10 +02:00
0penBrain
3c6d6dfea5
[CrashFix] Core: fix crash when dumping content of a Surface
2022-04-08 10:55:31 +02:00
wmayer
6d2d45ceb7
Part: modernize C++11
...
* use nullptr
2022-03-23 19:26:14 +01: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
marioalexis
83b55e577b
Part: Use Tools::getNormal to compute normal to surface
2022-01-20 13:01:27 +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
wmayer
a7f9c2f1b9
OCCT: port FreeCAD sources to version 7.6
...
SMESH is not yet ported
Although FreeCAD code compiles with OCCT 7.6 it doesn't work at the moment
2021-10-09 13:49:02 +02: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