coordinate-system 4.0.1__cp313-cp313-win_amd64.whl → 4.0.3__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: coordinate_system
3
- Version: 4.0.1
3
+ Version: 4.0.3
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](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
49
49
 
50
50
  **Author:** PanGuoJun
51
- **Version:** 3.0.0
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 - Right-Hand System!**
74
+ **Critical Coordinate System Update - Left-Hand System!**
75
75
 
76
- - ⚠️ **BREAKING CHANGE: Right-Hand Coordinate System** - Unified all operations to standard right-hand coordinate system
77
- - `vec3.cross()` now uses right-hand rule (standard mathematical definition)
78
- - Quaternion rotations follow right-hand convention (counter-clockwise is positive)
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
- - `cross_left()` method retained for backward compatibility
82
- - ✅ **Verified Correctness** - Complete test suite validates right-hand system behavior
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. Mathematical Standard: Right-hand system is the standard in mathematics and physics
88
- 2. Better Interoperability: Compatible with OpenGL, NumPy, SciPy, and most scientific libraries
89
- 3. Improved Readability: Standard cross product formulas match textbook definitions
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 computational geometry, geometric analysis, and discrete differential geometry research!
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 **right-handed coordinate system** for all vector and quaternion operations (as of v3.0.0).
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
- +Z
221
+ \
222
+ \
223
+ +Z
224
224
  ```
225
225
 
226
- **Right-Hand Rule:**
227
- - Point your right hand's fingers along the +X axis
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** (standard mathematical definition)
230
+ - Cross product: **X × Y = Z** (common in computer graphics)
231
231
 
232
- **Migration from v2.x:** If your code relied on the previous left-handed system, see [HANDEDNESS_CHANGE.md](HANDEDNESS_CHANGE.md) for migration instructions.
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 right-handed system (X × Y = Z)
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 = up.cross(forward).normcopy()
520
- up_corrected = forward.cross(right)
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 = up.cross(forward).normcopy()
541
- up_corrected = forward.cross(right)
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
@@ -1,10 +1,10 @@
1
1
  coordinate_system/__init__.py,sha256=Qhg-sS6SCHD0TMQ1MaATyEajuv9m8Ip91xewaohpAek,8600
2
- coordinate_system/coordinate_system.cp313-win_amd64.pyd,sha256=8gN5GiIHPqfqe7xSP_QIWVM_p8nR7V_h2nrWNU7TbGk,497664
2
+ coordinate_system/coordinate_system.cp313-win_amd64.pyd,sha256=K7z-jG4p_jSYxjii1ZZ5Bs3lOjCTC5AZGT1VR-vbUyY,495616
3
3
  coordinate_system/curvature.py,sha256=zrgY9QEuFq2tz0HB4mvXfPV-GwMpeE-F5cM--U8Ihfo,11541
4
4
  coordinate_system/differential_geometry.py,sha256=whbgMyWQB4AUbZbiaDDAY6YZD7CHs1BVtnvOLN_gqQE,20628
5
5
  coordinate_system/fourier_spectral.py,sha256=0rA9_ZS7W-pSKQ1aD9Ds93An5rQ14EWZWM43mOC_UIc,16496
6
- coordinate_system-4.0.1.dist-info/LICENSE,sha256=tDnRkJxBYPzWdfh2gArRqrUPJxQZRZHJVs68qqBHIq4,1083
7
- coordinate_system-4.0.1.dist-info/METADATA,sha256=40U-bAEARpHXbih07RmFStFcfo8VaSuEVlnO9NdZ_i4,20842
8
- coordinate_system-4.0.1.dist-info/WHEEL,sha256=4-iQBlRoDdX1wfPofc7KLWa5Cys4eZSgXs6GVU8fKlQ,101
9
- coordinate_system-4.0.1.dist-info/top_level.txt,sha256=R6LguuPPZ5esrIsDTqPGi9UxCvZPIXwn7KRKX87c79M,18
10
- coordinate_system-4.0.1.dist-info/RECORD,,
6
+ coordinate_system-4.0.3.dist-info/LICENSE,sha256=tDnRkJxBYPzWdfh2gArRqrUPJxQZRZHJVs68qqBHIq4,1083
7
+ coordinate_system-4.0.3.dist-info/METADATA,sha256=0_Pgr__XrTeISK7jJS6gS8ANFJSJW2r2IKCdPsIb-wg,20872
8
+ coordinate_system-4.0.3.dist-info/WHEEL,sha256=4-iQBlRoDdX1wfPofc7KLWa5Cys4eZSgXs6GVU8fKlQ,101
9
+ coordinate_system-4.0.3.dist-info/top_level.txt,sha256=R6LguuPPZ5esrIsDTqPGi9UxCvZPIXwn7KRKX87c79M,18
10
+ coordinate_system-4.0.3.dist-info/RECORD,,