geometrykit 0.6.0__tar.gz → 0.6.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {geometrykit-0.6.0/python/geometrykit.egg-info → geometrykit-0.6.1}/PKG-INFO +10 -1
- {geometrykit-0.6.0 → geometrykit-0.6.1}/README.md +7 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/pyproject.toml +7 -1
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/__init__.py +1 -1
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/frames.py +3 -4
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/path.py +25 -10
- {geometrykit-0.6.0 → geometrykit-0.6.1/python/geometrykit.egg-info}/PKG-INFO +10 -1
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit.egg-info/requires.txt +3 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/COPYING +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/COPYING.LESSER +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/cage.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/contract.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/engine.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/export.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/__init__.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/_bridge.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/biarc.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/curve.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/field.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/intersection.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/panel.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/patterns.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/primitives.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/spiral.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/subdivision.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/surface.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/geometry/transform.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/__init__.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/__init__.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/curve_np.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/fit_np.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/linalg_np.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/patch_g1.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/patch_np.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/section_np.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/surface_np.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/_npu/tessellate_np.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit/runtimes/dispatch.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit.egg-info/SOURCES.txt +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit.egg-info/dependency_links.txt +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/python/geometrykit.egg-info/top_level.txt +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/setup.cfg +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/tests/test_cage.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/tests/test_contract.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/tests/test_engine_parity.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/tests/test_engine_probe.py +0 -0
- {geometrykit-0.6.0 → geometrykit-0.6.1}/tests/test_repo_boundary.py +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: geometrykit
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: Geometry primitives and NURBS data model — the geometry substrate for the ifckit family
|
|
5
5
|
Author: Sander Boer
|
|
6
6
|
License-Expression: LGPL-3.0-or-later
|
|
7
7
|
Project-URL: Homepage, https://github.com/maucworks/geometrykit
|
|
8
8
|
Project-URL: Changelog, https://github.com/maucworks/geometrykit/blob/master/CHANGELOG.md
|
|
9
|
+
Project-URL: Documentation, https://maucworks.github.io/geometrykit/
|
|
9
10
|
Keywords: geometry,nurbs,vector,curve,surface,splines
|
|
10
11
|
Classifier: Development Status :: 3 - Alpha
|
|
11
12
|
Classifier: Intended Audience :: Developers
|
|
@@ -25,6 +26,7 @@ Provides-Extra: dev
|
|
|
25
26
|
Requires-Dist: pytest<10,>=7; extra == "dev"
|
|
26
27
|
Requires-Dist: pytest-cov<8,>=7; extra == "dev"
|
|
27
28
|
Requires-Dist: hypothesis<8,>=6; extra == "dev"
|
|
29
|
+
Requires-Dist: pdoc<17,>=15; python_version >= "3.10" and extra == "dev"
|
|
28
30
|
Dynamic: license-file
|
|
29
31
|
|
|
30
32
|
# geometrykit
|
|
@@ -36,6 +38,13 @@ fills with G1/G2 continuity options, plane × surface sections with
|
|
|
36
38
|
pcurve tracks, and STEP/OBJ/STL writers. No OCCT, no compiled
|
|
37
39
|
toolchain required to install.
|
|
38
40
|
|
|
41
|
+

|
|
42
|
+

|
|
43
|
+
[](https://maucworks.github.io/geometrykit/)
|
|
44
|
+
|
|
45
|
+
API reference: **[maucworks.github.io/geometrykit](https://maucworks.github.io/geometrykit/)**
|
|
46
|
+
(pdoc, generated from the docstrings)
|
|
47
|
+
|
|
39
48
|
## Install
|
|
40
49
|
|
|
41
50
|
```bash
|
|
@@ -7,6 +7,13 @@ fills with G1/G2 continuity options, plane × surface sections with
|
|
|
7
7
|
pcurve tracks, and STEP/OBJ/STL writers. No OCCT, no compiled
|
|
8
8
|
toolchain required to install.
|
|
9
9
|
|
|
10
|
+

|
|
11
|
+

|
|
12
|
+
[](https://maucworks.github.io/geometrykit/)
|
|
13
|
+
|
|
14
|
+
API reference: **[maucworks.github.io/geometrykit](https://maucworks.github.io/geometrykit/)**
|
|
15
|
+
(pdoc, generated from the docstrings)
|
|
16
|
+
|
|
10
17
|
## Install
|
|
11
18
|
|
|
12
19
|
```bash
|
|
@@ -12,7 +12,7 @@ build-backend = "setuptools.build_meta"
|
|
|
12
12
|
|
|
13
13
|
[project]
|
|
14
14
|
name = "geometrykit"
|
|
15
|
-
version = "0.6.
|
|
15
|
+
version = "0.6.1"
|
|
16
16
|
description = "Geometry primitives and NURBS data model — the geometry substrate for the ifckit family"
|
|
17
17
|
readme = "README.md"
|
|
18
18
|
requires-python = ">=3.9"
|
|
@@ -40,11 +40,17 @@ dev = [
|
|
|
40
40
|
"pytest>=7,<10",
|
|
41
41
|
"pytest-cov>=7,<8",
|
|
42
42
|
"hypothesis>=6,<8",
|
|
43
|
+
"pdoc>=15,<17; python_version >= '3.10'",
|
|
43
44
|
]
|
|
44
45
|
|
|
45
46
|
[project.urls]
|
|
46
47
|
Homepage = "https://github.com/maucworks/geometrykit"
|
|
47
48
|
Changelog = "https://github.com/maucworks/geometrykit/blob/master/CHANGELOG.md"
|
|
49
|
+
Documentation = "https://maucworks.github.io/geometrykit/"
|
|
50
|
+
|
|
51
|
+
[tool.pdoc]
|
|
52
|
+
search = true
|
|
53
|
+
template_directory = "docs/pdoc_templates"
|
|
48
54
|
|
|
49
55
|
[tool.setuptools.packages.find]
|
|
50
56
|
where = ["python"]
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Ported from ifckit/ifckit/geometry/frames.py (LGPL-3.0-or-later heritage;
|
|
1
|
+
# Promoted from ifckit/ifckit/geometry/frames.py (LGPL-3.0-or-later heritage;
|
|
3
2
|
# ifckit is authored by the same copyright holder as geometrykit).
|
|
4
3
|
"""
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
geometrykit.geometry.frames
|
|
5
|
+
===========================
|
|
7
6
|
|
|
8
7
|
Transport frames, reference frames, and miter-scale computation for
|
|
9
8
|
sweeping profiles along 3D spine paths.
|
|
@@ -994,18 +994,29 @@ class Path:
|
|
|
994
994
|
if isinstance(seg, Arc): # safe: Arc never reloaded independently
|
|
995
995
|
return seg.normal
|
|
996
996
|
|
|
997
|
-
# For Lines only:
|
|
998
|
-
#
|
|
999
|
-
#
|
|
997
|
+
# For Lines only: normal from the first two non-parallel segments
|
|
998
|
+
# (the true path-plane normal). Collinear paths have no unique
|
|
999
|
+
# normal: fall back to an arbitrary perpendicular, against which
|
|
1000
|
+
# a single straight line frames fine.
|
|
1000
1001
|
if len(self._segments) > 0 and isinstance(
|
|
1001
1002
|
self._segments[0], Line
|
|
1002
1003
|
): # safe: Line never reloaded
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1004
|
+
dirs = []
|
|
1005
|
+
for seg in self._segments:
|
|
1006
|
+
if isinstance(seg, Line): # safe: Line never reloaded
|
|
1007
|
+
try:
|
|
1008
|
+
dirs.append(seg.direction.normalized())
|
|
1009
|
+
except ValueError:
|
|
1010
|
+
continue # degenerate segment: no direction
|
|
1011
|
+
if dirs:
|
|
1012
|
+
ref = dirs[0]
|
|
1013
|
+
for d in dirs[1:]:
|
|
1014
|
+
n = ref**d
|
|
1015
|
+
if n.length() > 1e-9:
|
|
1016
|
+
return n.normalized()
|
|
1017
|
+
if abs(ref.z) < 0.9:
|
|
1018
|
+
return (Vec(0, 0, 1) ** ref).normalized()
|
|
1019
|
+
return (Vec(0, 1, 0) ** ref).normalized()
|
|
1009
1020
|
|
|
1010
1021
|
return None
|
|
1011
1022
|
|
|
@@ -1032,7 +1043,11 @@ class Path:
|
|
|
1032
1043
|
# Ensure x_axis is perfectly orthogonal to normal (floating point safety).
|
|
1033
1044
|
x_axis = x_axis - normal * (normal @ x_axis)
|
|
1034
1045
|
x_axis = x_axis.normalized()
|
|
1035
|
-
|
|
1046
|
+
# y_axis completes the right-handed frame so the plane normal
|
|
1047
|
+
# (z_axis = x_axis x y_axis) equals the path normal. Passing
|
|
1048
|
+
# `normal` as y_axis here would stand the plane edge-on to the path.
|
|
1049
|
+
y_axis = normal**x_axis
|
|
1050
|
+
return Plane(origin, x_axis, y_axis)
|
|
1036
1051
|
|
|
1037
1052
|
@classmethod
|
|
1038
1053
|
def assemble(
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: geometrykit
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: Geometry primitives and NURBS data model — the geometry substrate for the ifckit family
|
|
5
5
|
Author: Sander Boer
|
|
6
6
|
License-Expression: LGPL-3.0-or-later
|
|
7
7
|
Project-URL: Homepage, https://github.com/maucworks/geometrykit
|
|
8
8
|
Project-URL: Changelog, https://github.com/maucworks/geometrykit/blob/master/CHANGELOG.md
|
|
9
|
+
Project-URL: Documentation, https://maucworks.github.io/geometrykit/
|
|
9
10
|
Keywords: geometry,nurbs,vector,curve,surface,splines
|
|
10
11
|
Classifier: Development Status :: 3 - Alpha
|
|
11
12
|
Classifier: Intended Audience :: Developers
|
|
@@ -25,6 +26,7 @@ Provides-Extra: dev
|
|
|
25
26
|
Requires-Dist: pytest<10,>=7; extra == "dev"
|
|
26
27
|
Requires-Dist: pytest-cov<8,>=7; extra == "dev"
|
|
27
28
|
Requires-Dist: hypothesis<8,>=6; extra == "dev"
|
|
29
|
+
Requires-Dist: pdoc<17,>=15; python_version >= "3.10" and extra == "dev"
|
|
28
30
|
Dynamic: license-file
|
|
29
31
|
|
|
30
32
|
# geometrykit
|
|
@@ -36,6 +38,13 @@ fills with G1/G2 continuity options, plane × surface sections with
|
|
|
36
38
|
pcurve tracks, and STEP/OBJ/STL writers. No OCCT, no compiled
|
|
37
39
|
toolchain required to install.
|
|
38
40
|
|
|
41
|
+

|
|
42
|
+

|
|
43
|
+
[](https://maucworks.github.io/geometrykit/)
|
|
44
|
+
|
|
45
|
+
API reference: **[maucworks.github.io/geometrykit](https://maucworks.github.io/geometrykit/)**
|
|
46
|
+
(pdoc, generated from the docstrings)
|
|
47
|
+
|
|
39
48
|
## Install
|
|
40
49
|
|
|
41
50
|
```bash
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|