coordinate-system 4.0.0__cp313-cp313-win_amd64.whl → 4.0.2__cp313-cp313-win_amd64.whl
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.
- coordinate_system/coordinate_system.cp313-win_amd64.pyd +0 -0
- coordinate_system/differential_geometry.py +1 -1
- {coordinate_system-4.0.0.dist-info → coordinate_system-4.0.2.dist-info}/METADATA +26 -26
- coordinate_system-4.0.2.dist-info/RECORD +10 -0
- coordinate_system-4.0.0.dist-info/RECORD +0 -10
- {coordinate_system-4.0.0.dist-info → coordinate_system-4.0.2.dist-info}/LICENSE +0 -0
- {coordinate_system-4.0.0.dist-info → coordinate_system-4.0.2.dist-info}/WHEEL +0 -0
- {coordinate_system-4.0.0.dist-info → coordinate_system-4.0.2.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
@@ -6,7 +6,7 @@ This module provides tools for discrete differential geometry computations on su
|
|
|
6
6
|
using the CORRECT Intrinsic Gradient Operator framework based on the proven algorithm.
|
|
7
7
|
|
|
8
8
|
Key Formula:
|
|
9
|
-
G_μ = (c(u+h) - c(u-h)) / (2h)
|
|
9
|
+
G_μ = (c(u+h) - c(u-h)) / (2h) / c(u) then extract normal derivative using .VZ()
|
|
10
10
|
|
|
11
11
|
Author: PanGuoJun
|
|
12
12
|
Date: 2025-10-31
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: coordinate_system
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.2
|
|
4
4
|
Summary: High-performance 3D coordinate system library with right-handed conventions, Intrinsic Gradient Operator method for curvature computation, achieving machine-precision accuracy
|
|
5
5
|
Home-page: https://github.com/panguojun/Coordinate-System
|
|
6
6
|
Author: PanGuoJun
|
|
@@ -48,7 +48,7 @@ License-File: LICENSE
|
|
|
48
48
|
[](LICENSE)
|
|
49
49
|
|
|
50
50
|
**Author:** PanGuoJun
|
|
51
|
-
**Version:**
|
|
51
|
+
**Version:** 4.0.2
|
|
52
52
|
**License:** MIT
|
|
53
53
|
|
|
54
54
|
## 🆕 What's New in v4.0.0
|
|
@@ -71,24 +71,24 @@ License-File: LICENSE
|
|
|
71
71
|
|
|
72
72
|
## 🆕 What's New in v3.0.0
|
|
73
73
|
|
|
74
|
-
**Critical Coordinate System Update -
|
|
74
|
+
**Critical Coordinate System Update - Left-Hand System!**
|
|
75
75
|
|
|
76
|
-
- ⚠️ **BREAKING CHANGE:
|
|
77
|
-
- `vec3.cross()` now uses
|
|
78
|
-
- Quaternion rotations follow
|
|
76
|
+
- ⚠️ **BREAKING CHANGE: Left-Hand Coordinate System** - Unified all operations to standard left-hand coordinate system
|
|
77
|
+
- `vec3.cross()` now uses left-hand rule (common in computer graphics)
|
|
78
|
+
- Quaternion rotations follow left-hand convention (clockwise is positive)
|
|
79
79
|
- `coord3.look_at()` and `coord3.from_forward()` updated accordingly
|
|
80
80
|
- **Migration Guide:** See [HANDEDNESS_CHANGE.md](HANDEDNESS_CHANGE.md) for details
|
|
81
|
-
- `
|
|
82
|
-
- ✅ **Verified Correctness** - Complete test suite validates
|
|
81
|
+
- `cross_right()` method retained for backward compatibility
|
|
82
|
+
- ✅ **Verified Correctness** - Complete test suite validates left-hand system behavior
|
|
83
83
|
- 📚 **Updated Documentation** - All examples and documentation reflect new coordinate system
|
|
84
84
|
- 🎯 **Enhanced Clarity** - Comments and docstrings clarified throughout
|
|
85
85
|
|
|
86
86
|
**Why This Change:**
|
|
87
|
-
1.
|
|
88
|
-
2. Better Interoperability: Compatible with
|
|
89
|
-
3. Improved Readability: Standard cross product formulas match
|
|
87
|
+
1. Graphics Standard: Left-hand system is common in computer graphics and DirectX
|
|
88
|
+
2. Better Interoperability: Compatible with DirectX, Unity, and many game engines
|
|
89
|
+
3. Improved Readability: Standard cross product formulas match graphics pipeline definitions
|
|
90
90
|
|
|
91
|
-
Perfect for
|
|
91
|
+
Perfect for computer graphics, game development, and 3D visualization applications!
|
|
92
92
|
|
|
93
93
|
---
|
|
94
94
|
|
|
@@ -210,7 +210,7 @@ lerped = vec3.lerp(v1, v2, 0.5) # Linear interpolation
|
|
|
210
210
|
|
|
211
211
|
## Coordinate System Type
|
|
212
212
|
|
|
213
|
-
This library uses a **
|
|
213
|
+
This library uses a **left-handed coordinate system** for all vector and quaternion operations (as of v3.0.0).
|
|
214
214
|
|
|
215
215
|
```
|
|
216
216
|
+Y
|
|
@@ -218,18 +218,18 @@ This library uses a **right-handed coordinate system** for all vector and quater
|
|
|
218
218
|
|
|
|
219
219
|
|
|
|
220
220
|
+-----> +X
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
221
|
+
\
|
|
222
|
+
\
|
|
223
|
+
+Z
|
|
224
224
|
```
|
|
225
225
|
|
|
226
|
-
**
|
|
227
|
-
- Point your
|
|
226
|
+
**Left-Hand Rule:**
|
|
227
|
+
- Point your left hand's fingers along the +X axis
|
|
228
228
|
- Curl them toward the +Y axis
|
|
229
229
|
- Your thumb points along the +Z axis
|
|
230
|
-
- Cross product: **X × Y = Z** (
|
|
230
|
+
- Cross product: **X × Y = Z** (common in computer graphics)
|
|
231
231
|
|
|
232
|
-
**Migration from v2.x:** If your code relied on the previous
|
|
232
|
+
**Migration from v2.x:** If your code relied on the previous right-handed system, see [HANDEDNESS_CHANGE.md](HANDEDNESS_CHANGE.md) for migration instructions.
|
|
233
233
|
|
|
234
234
|
---
|
|
235
235
|
|
|
@@ -267,7 +267,7 @@ v3 = v1 * v2 # Component-wise multiplication
|
|
|
267
267
|
|
|
268
268
|
```python
|
|
269
269
|
dot = v1.dot(v2) # Dot product (float)
|
|
270
|
-
cross = v1.cross(v2) # Cross product (vec3)
|
|
270
|
+
cross = v1.cross(v2) # Cross product (vec3) - Left-hand rule
|
|
271
271
|
length = v.length() # Vector length
|
|
272
272
|
v.normalize() # Normalize in-place
|
|
273
273
|
normalized = v.normcopy() # Return normalized copy
|
|
@@ -451,7 +451,7 @@ v4 = v1 * 5 # vec3(5, 0, 0)
|
|
|
451
451
|
|
|
452
452
|
# Dot and cross products
|
|
453
453
|
dot = v1.dot(v2) # 0.0 (perpendicular)
|
|
454
|
-
cross = v1.cross(v2) # vec3(0, 0, 1) in
|
|
454
|
+
cross = v1.cross(v2) # vec3(0, 0, -1) in left-handed system (X × Y = -Z)
|
|
455
455
|
|
|
456
456
|
# Length and normalization
|
|
457
457
|
length = v1.length() # 1.0
|
|
@@ -516,8 +516,8 @@ child_in_world = child * parent
|
|
|
516
516
|
# Create look-at transformation (custom implementation needed)
|
|
517
517
|
def look_at(eye, target, up=vec3(0, 1, 0)):
|
|
518
518
|
forward = (target - eye).normcopy()
|
|
519
|
-
right =
|
|
520
|
-
up_corrected =
|
|
519
|
+
right = forward.cross(up).normcopy() # Left-hand cross product
|
|
520
|
+
up_corrected = right.cross(forward)
|
|
521
521
|
return coord3.from_axes(right, up_corrected, forward)
|
|
522
522
|
|
|
523
523
|
camera = look_at(vec3(10, 10, 10), vec3(0, 0, 0))
|
|
@@ -537,8 +537,8 @@ class Camera:
|
|
|
537
537
|
|
|
538
538
|
def create_look_at(self, eye, target, up):
|
|
539
539
|
forward = (target - eye).normcopy()
|
|
540
|
-
right =
|
|
541
|
-
up_corrected =
|
|
540
|
+
right = forward.cross(up).normcopy() # Left-hand cross product
|
|
541
|
+
up_corrected = right.cross(forward)
|
|
542
542
|
|
|
543
543
|
c = coord3()
|
|
544
544
|
c.o = eye
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
coordinate_system/__init__.py,sha256=Qhg-sS6SCHD0TMQ1MaATyEajuv9m8Ip91xewaohpAek,8600
|
|
2
|
+
coordinate_system/coordinate_system.cp313-win_amd64.pyd,sha256=8gN5GiIHPqfqe7xSP_QIWVM_p8nR7V_h2nrWNU7TbGk,497664
|
|
3
|
+
coordinate_system/curvature.py,sha256=zrgY9QEuFq2tz0HB4mvXfPV-GwMpeE-F5cM--U8Ihfo,11541
|
|
4
|
+
coordinate_system/differential_geometry.py,sha256=whbgMyWQB4AUbZbiaDDAY6YZD7CHs1BVtnvOLN_gqQE,20628
|
|
5
|
+
coordinate_system/fourier_spectral.py,sha256=0rA9_ZS7W-pSKQ1aD9Ds93An5rQ14EWZWM43mOC_UIc,16496
|
|
6
|
+
coordinate_system-4.0.2.dist-info/LICENSE,sha256=tDnRkJxBYPzWdfh2gArRqrUPJxQZRZHJVs68qqBHIq4,1083
|
|
7
|
+
coordinate_system-4.0.2.dist-info/METADATA,sha256=bhQ7YYQIyhh0Gcymoe0X6nCXHhEAC4jxXwkR0DJ6A0o,20872
|
|
8
|
+
coordinate_system-4.0.2.dist-info/WHEEL,sha256=4-iQBlRoDdX1wfPofc7KLWa5Cys4eZSgXs6GVU8fKlQ,101
|
|
9
|
+
coordinate_system-4.0.2.dist-info/top_level.txt,sha256=R6LguuPPZ5esrIsDTqPGi9UxCvZPIXwn7KRKX87c79M,18
|
|
10
|
+
coordinate_system-4.0.2.dist-info/RECORD,,
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
coordinate_system/__init__.py,sha256=Qhg-sS6SCHD0TMQ1MaATyEajuv9m8Ip91xewaohpAek,8600
|
|
2
|
-
coordinate_system/coordinate_system.cp313-win_amd64.pyd,sha256=efq0KtDzzNdBQWbkHMFMYlKvWQHQNR067sQkAsZZhW4,502272
|
|
3
|
-
coordinate_system/curvature.py,sha256=zrgY9QEuFq2tz0HB4mvXfPV-GwMpeE-F5cM--U8Ihfo,11541
|
|
4
|
-
coordinate_system/differential_geometry.py,sha256=Ih9hwpIntkZ0XNplXAvBfaR2PjBc5UZEV-PGmY9hj0U,20622
|
|
5
|
-
coordinate_system/fourier_spectral.py,sha256=0rA9_ZS7W-pSKQ1aD9Ds93An5rQ14EWZWM43mOC_UIc,16496
|
|
6
|
-
coordinate_system-4.0.0.dist-info/LICENSE,sha256=tDnRkJxBYPzWdfh2gArRqrUPJxQZRZHJVs68qqBHIq4,1083
|
|
7
|
-
coordinate_system-4.0.0.dist-info/METADATA,sha256=onWlDsYkn9B9Bys_QeUiWP5Q3BMIO9R03j0NP0HNUTI,20842
|
|
8
|
-
coordinate_system-4.0.0.dist-info/WHEEL,sha256=4-iQBlRoDdX1wfPofc7KLWa5Cys4eZSgXs6GVU8fKlQ,101
|
|
9
|
-
coordinate_system-4.0.0.dist-info/top_level.txt,sha256=R6LguuPPZ5esrIsDTqPGi9UxCvZPIXwn7KRKX87c79M,18
|
|
10
|
-
coordinate_system-4.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|