sonolus.py 0.1.1__py3-none-any.whl → 0.1.2__py3-none-any.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.

Potentially problematic release.


This version of sonolus.py might be problematic. Click here for more details.

@@ -1,7 +1,7 @@
1
1
  # fmt: off
2
2
  from typing import Self
3
3
 
4
- from sonolus.script.graphics import Quad
4
+ from sonolus.script.graphics import Quad, QuadLike
5
5
  from sonolus.script.math import cos, sin
6
6
  from sonolus.script.record import Record
7
7
  from sonolus.script.vec import Vec2
@@ -40,27 +40,23 @@ class Transform2d(Record):
40
40
  a20 = self.a00 * b20 + self.a10 * b21 + b20
41
41
  a21 = self.a01 * b20 + self.a11 * b21 + b21
42
42
  a22 = self.a02 * b20 + self.a12 * b21 + 1
43
- self.a00 = a00 / a22
44
- self.a01 = a01 / a22
45
- self.a02 = a02 / a22
46
- self.a10 = a10 / a22
47
- self.a11 = a11 / a22
48
- self.a12 = a12 / a22
49
- self.a20 = a20 / a22
50
- self.a21 = a21 / a22
51
- return self
43
+ return Transform2d(
44
+ a00 / a22, a01 / a22, a02 / a22,
45
+ a10 / a22, a11 / a22, a12 / a22,
46
+ a20 / a22, a21 / a22,
47
+ )
52
48
 
53
- def translate(self, x: float = 0, y: float = 0) -> Self:
49
+ def translate(self, translation: Vec2, /) -> Self:
54
50
  return self._compose(
55
- 1, 0, x,
56
- 0, 1, y,
51
+ 1, 0, translation.x,
52
+ 0, 1, translation.y,
57
53
  0, 0,
58
54
  )
59
55
 
60
- def scale(self, x: float = 1, y: float = 1) -> Self:
56
+ def scale(self, factor: Vec2, /) -> Self:
61
57
  return self._compose(
62
- x, 0, 0,
63
- 0, y, 0,
58
+ factor.x, 0, 0,
59
+ 0, factor.y, 0,
64
60
  0, 0,
65
61
  )
66
62
 
@@ -109,7 +105,7 @@ class Transform2d(Record):
109
105
  w = self.a20 * v.x + self.a21 * v.y + 1
110
106
  return Vec2(x / w, y / w)
111
107
 
112
- def transform_quad(self, quad: Quad) -> Quad:
108
+ def transform_quad(self, quad: QuadLike) -> Quad:
113
109
  return Quad(
114
110
  bl=self.transform_vec(quad.bl),
115
111
  br=self.transform_vec(quad.br),
sonolus/script/vec.py CHANGED
@@ -9,6 +9,30 @@ class Vec2(Record):
9
9
  x: float
10
10
  y: float
11
11
 
12
+ @classmethod
13
+ def zero(cls) -> Self:
14
+ return cls(x=0, y=0)
15
+
16
+ @classmethod
17
+ def one(cls) -> Self:
18
+ return cls(x=1, y=1)
19
+
20
+ @classmethod
21
+ def up(cls) -> Self:
22
+ return cls(x=0, y=1)
23
+
24
+ @classmethod
25
+ def down(cls) -> Self:
26
+ return cls(x=0, y=-1)
27
+
28
+ @classmethod
29
+ def left(cls) -> Self:
30
+ return cls(x=-1, y=0)
31
+
32
+ @classmethod
33
+ def right(cls) -> Self:
34
+ return cls(x=1, y=0)
35
+
12
36
  @property
13
37
  def magnitude(self) -> Num:
14
38
  return (self.x**2 + self.y**2) ** 0.5
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sonolus.py
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Sonolus engine development in Python
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.13
@@ -8,7 +8,7 @@ sonolus/backend/finalize.py,sha256=4At9fA7zaZsrFSfz9uyYCZIFUb10u16o6d-3wfg2XLw,3
8
8
  sonolus/backend/flow.py,sha256=NtejFHC2LAmCwlYfyfnDZLnwvEyrVV_Dm4RGglBG6U0,3216
9
9
  sonolus/backend/interpret.py,sha256=EDpkv3ASzteDhYjTkzoriGYHYepcoHKZusrU_FX0DS4,14247
10
10
  sonolus/backend/ir.py,sha256=_D5CXsUxUX2VWkWU1z5ji8czrhTz0ieQ8L6VjtuxaKs,1994
11
- sonolus/backend/mode.py,sha256=LMrsMwZ4fe7idvXXI-D5-kBeUWMdFVw84JT_OZdHuQI,637
11
+ sonolus/backend/mode.py,sha256=H2sjHaEtBxslUGdqBW-9AT444DuR6B6IzVdcHRlz_BE,637
12
12
  sonolus/backend/node.py,sha256=BJqEaI_u8pdPNjgUZO9o8dGTn_vyo9x71AN5v4zJjdc,1039
13
13
  sonolus/backend/ops.py,sha256=k2YPLSDl4RagJ2Hyz91nZKlrWflMoXovCRjcwyhWmY0,10319
14
14
  sonolus/backend/optimize.py,sha256=qLOJ6XEZsOKOTQhzHWPNObsBKTHDHhVke9ZGmnukrhY,284
@@ -16,60 +16,61 @@ sonolus/backend/passes.py,sha256=3NiVnT0KQA1lVEuR9wzcGB6CccVe4A-C3D_JOnGsetI,137
16
16
  sonolus/backend/place.py,sha256=61mWyPQ6i59bmV9RtQfUy6mJE0pMAmFoL1W-MyY79ug,2536
17
17
  sonolus/backend/simplify.py,sha256=0SLsReWyxwpI2qyGn0JtQWyv3J-4DDyCkmiqP5ZvSV8,1122
18
18
  sonolus/backend/utils.py,sha256=AVYidUYSp5H8pbPKEzAZ0Ccorb3nYDU6zFcc6JBtuLs,1430
19
- sonolus/backend/visitor.py,sha256=y4_5GgOb54g0QrQRNV14b0lOpQtLDtku2iMBG5jNbKg,36420
19
+ sonolus/backend/visitor.py,sha256=8tWHPHLZ--_9XPwz2xg49OmqwXfpd0fwBpXth7PQAdM,36419
20
20
  sonolus/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  sonolus/build/cli.py,sha256=8PSn8h-UmYGCjE2LAFU_5J3tMapKxCw09kzRTBomSFs,5545
22
22
  sonolus/build/collection.py,sha256=IsDgedsAJ-foHzQ4LnQ9zSVXSz5wVVt4sgqiUICBvCU,10573
23
- sonolus/build/compile.py,sha256=GPIT1gBoGvmTL-JA0hxnRzdr19nm9DdnXrQp6mMXkH0,3685
23
+ sonolus/build/compile.py,sha256=a1NjzvjFT2y6x9fL9kaiZgIus3egY8gk_WBr7EeSS68,3679
24
24
  sonolus/build/defaults.py,sha256=MDQuJUDRtCeNGbwn9ZgQAPiKJx7q-EH8hb7M6ToFcSU,718
25
- sonolus/build/engine.py,sha256=zJI-1UM_n_bFoXT1pajVFYWjh0Fp-BKeHrejT1iFPQc,4680
25
+ sonolus/build/engine.py,sha256=7hlz2gScNZNlpHpovpWdU9ygs1paBp-CZXgTXfC9EUQ,5046
26
26
  sonolus/build/level.py,sha256=Ko3XI3T8dpUmUOnxpAW27-1QCT2bkqXaW5GCiVKsfP0,546
27
27
  sonolus/build/node.py,sha256=3217uAzOz1KZ9VjOkcGO_Tdarvqwvl-F4sKPwx42QQ0,1205
28
28
  sonolus/build/project.py,sha256=x350tPcwKCYakdbrP796b545hVUaBwrzY0yEcQR7ut4,4023
29
29
  sonolus/script/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- sonolus/script/archetype.py,sha256=ktCJWh7bl3skzY-l8tF3Tmw7-G3SXR2wqCivb2zHkOo,23858
30
+ sonolus/script/archetype.py,sha256=q2WXhKuVGWnbBf9EjCRVhVOx6_N8nW1IV1AQaGVWurE,24812
31
31
  sonolus/script/array.py,sha256=ithYhBG69KTqooZlV7nVQXqrqKtgKL4KJKQ3ZzxTZwg,8914
32
- sonolus/script/bucket.py,sha256=LhqOPMJLN_OKsaVsLqgT0E0XSLAw5Tugr1jtHxb3aK0,5547
33
- sonolus/script/callbacks.py,sha256=UESpsFWuyk9EDBWrwStBakbjtIsGDE39myeTQsCWKMg,2444
34
- sonolus/script/comptime.py,sha256=qaUpaWWfZ3vwkZ43VjGK9hWb9sZepuDQHtGHdioos6U,4249
32
+ sonolus/script/bucket.py,sha256=HD1DbthZbqvU_7Iy5nw0_Ua3Fm00QIQkx019CHBp--I,5547
33
+ sonolus/script/callbacks.py,sha256=ETNTENlYa_7dNuBkoe1IirQ9k08zPWDbaLZhtw668M4,2658
34
+ sonolus/script/comptime.py,sha256=hR-rF9GXHcWBWIs9IsSr2V5ZZmHGotyzwEJqDJJGj10,4692
35
35
  sonolus/script/containers.py,sha256=yl6PlX840Km4SQRPGqy95h9Ol32Z-dYEO3ZzJB14dKc,7093
36
- sonolus/script/debug.py,sha256=nivmdVyowjppxzRUjuIHG2fkTMrurlpFrxJ83L0e348,1969
37
- sonolus/script/effect.py,sha256=aoyIuN-oTKi190pZkjYKRgqBDJTiQDsSFUrLo8LJmbY,4141
38
- sonolus/script/engine.py,sha256=W53NTA0KrG8hPFljLx7upsh2ghME4zYxnMqPhXoOMB8,2776
39
- sonolus/script/globals.py,sha256=PCPPy1sHH6NO737MtOyXLUXF0DYiG-WSFSWhXRlRd_A,7609
40
- sonolus/script/graphics.py,sha256=D821LmnUwOaElg8cGFPHPA1qRTYPVYsKBPR-vUPtBc0,2851
36
+ sonolus/script/debug.py,sha256=WrfVFyQsirTu1q87_xhu3mPhFE1ZQXv9EbGCIhY4Hqs,1969
37
+ sonolus/script/effect.py,sha256=m_S--gubthQgoKHdMjZ4t4SAcjF72lxa614p9b1T7vE,4146
38
+ sonolus/script/engine.py,sha256=cweR8KwT8sxfWsepcaQM1hUVjcojPuzqUeLwye1FC2c,3628
39
+ sonolus/script/globals.py,sha256=3lvPCy9bA_0dARkTy-xrpQUXTQfynojWWhveuRMdLyI,8666
40
+ sonolus/script/graphics.py,sha256=C82hg9cu7sgs0tuWeta7l_ki6pYhaKpnBBPGfwYXozY,3334
41
41
  sonolus/script/icon.py,sha256=f-KJNpHGi804C5dA0G2MdvEYUmv7A01HqARUJlREEF0,1767
42
- sonolus/script/interval.py,sha256=yhCWAvuI2WrvC8wtx2MX7pnRY920AvPkZ_SXTC3LqVk,2783
42
+ sonolus/script/interval.py,sha256=KD3Rf8VGCTjVbt8aFUYRM46oJA3rpULhlZXYFhs-ECM,3194
43
43
  sonolus/script/iterator.py,sha256=tWdTWoV4pMZC74qCuWWNKV4n3yGFs1m4QRG3hY-VQok,5443
44
- sonolus/script/level.py,sha256=mKkH3aSwMmYZbyVp7-2nEWpLJhT_1PHsqy-3JK6UyGI,1188
44
+ sonolus/script/level.py,sha256=lcC6zHg3kp8Vm-pG96zASVPG16JeOp3ZR907snXdy18,1249
45
45
  sonolus/script/math.py,sha256=2HNKoIN6CV8J_1jsnxItXWQn8eUjlfvbPbMEav9li10,1636
46
- sonolus/script/num.py,sha256=dfg76xvMn21H0OJJkquajNayP78So-Ov3TWMImDtqDI,11695
47
- sonolus/script/options.py,sha256=BOwEX_KNzqvypD4X-EHSuCqF9aKdODH_MyGF-g_PDLQ,5702
48
- sonolus/script/particle.py,sha256=EjBqChV_S-Al-m-0A5QIuxW-vyh8CwQGyKMK8m1HOW8,7410
49
- sonolus/script/pointer.py,sha256=L4qnJumjYgdZ0rs6lg19MVZivk4Yz0gMGNMsYXvv-ac,1155
46
+ sonolus/script/num.py,sha256=RQv0VhX3nk69hh5sGsBaF_ZiNl9sr_xAnIt0Arjh_e4,12449
47
+ sonolus/script/options.py,sha256=qoY_IcwnchqUPaw9IE_-j1vNPC3j0yuGVUqitCdzSk0,5702
48
+ sonolus/script/particle.py,sha256=4ZLNymqORniHnczm3_yRPrVjy_tx4TXTpGO-BMfLmhg,7544
49
+ sonolus/script/pointer.py,sha256=bN4UzR7gwe3N_qJ0CXr9NLsuDKzgdkHJxKtOzNokAiE,1145
50
+ sonolus/script/preview.py,sha256=s3yJ0jj9xxkkOg1PimO5PyIfD0WnSZkS8q9X8juSTTo,1645
50
51
  sonolus/script/project.py,sha256=7K3iwUdSXAQyEAwcZvtfxgv3M0IaUaXSroUBEj4dnuA,416
51
52
  sonolus/script/range.py,sha256=EgdEJYeoq2chD0xCJs2oZZhM_ubWHOzZZwvAZmXxQLs,1753
52
53
  sonolus/script/record.py,sha256=l4h4mubPevUAW4oKQpz-ZNXea9EbsbSv9je_KV5CIPE,10381
53
- sonolus/script/runtime.py,sha256=fXEGd7qD9vpofSlfjlIdzxO-RpPgy2p3zTLEDDuf6FU,14178
54
- sonolus/script/sprite.py,sha256=HuOWrWcU73L0rVStgBeLWfumAqlBGaGOwGRjH15LPag,13119
55
- sonolus/script/text.py,sha256=CYiqsyRgzCsCggOBp2RwGGT4QpGo15k1WZx6P5xuwyM,13121
54
+ sonolus/script/runtime.py,sha256=2cRmy-6-9Z7SF_Xi8pgQ6bu4zj9ipx80G4Pf43FRpdM,16071
55
+ sonolus/script/sprite.py,sha256=-tKIeOVkX1tIcAn0sgbuaURiFA_dKiHt3aDeDCgHY2Y,13322
56
+ sonolus/script/text.py,sha256=V2ijaTp9SJF-bThyZFn70M7wm6ZQrUtZv6uUprcZYBY,13396
56
57
  sonolus/script/timing.py,sha256=qSkoU7bVNaCFPUwpVUMr44xP75h2bapPoIHDsGEReWU,1070
57
- sonolus/script/transform.py,sha256=Oa0baFc1eBv0Rj6GxmpLCTiTW83-CQ0w1HIJwt-Y_e8,3203
58
+ sonolus/script/transform.py,sha256=9c6DKd8SF1KwVLU7Q2M4rOup8QGSuCVIA8UA9SOzx08,3148
58
59
  sonolus/script/ui.py,sha256=eOVqH-6BeRwMbe7ePQWjMIJEvrP1gKQMXhWt7v2OClo,4648
59
60
  sonolus/script/values.py,sha256=TyRxHjuvtXlQpKGyVRg0T8fJgXMboKY4TZxQ3lFR4bs,1261
60
- sonolus/script/vec.py,sha256=ipjKOxx5YCwbIjRMlVJlESiuRCE5zX1bYY32UGi88HY,1414
61
+ sonolus/script/vec.py,sha256=zMQpK47cBC5CK6KGxoqJ_VYLAIGtDwtMwW8iQ24w7RU,1882
61
62
  sonolus/script/internal/__init__.py,sha256=ZMWLy_WIuYQv0HRquCLoeCidiOpar4J2GojnhBSrxGs,141
62
- sonolus/script/internal/builtin_impls.py,sha256=PfxpcW1H8pmHsrsuOW70o4V3BZ9JuQxiAagZ23kdf2U,4171
63
+ sonolus/script/internal/builtin_impls.py,sha256=tKg_iZoeGCSAL667_V3euZrf0K0wc4nY9__8Q0AIwYM,4156
63
64
  sonolus/script/internal/context.py,sha256=r6Igx4rXT7_aBB04GJjJolDdCbyZX39qVKRl8vG_bjc,12650
64
65
  sonolus/script/internal/descriptor.py,sha256=mlgUVKS2R4Nt1gpDH-Q1YyJHuZDR5i6TcjiszfY-yzE,409
65
66
  sonolus/script/internal/error.py,sha256=ZNnsvQVQAnFKzcvsm6-sste2lo-tP5pPI8sD7XlAZWc,490
66
67
  sonolus/script/internal/generic.py,sha256=-rhFatYZLrDE3RFgDWu_Zto3funHXmMr3QuyxajaWKU,7356
67
68
  sonolus/script/internal/impl.py,sha256=tnIaQCmw0SlFpmnSJp2aEys9XVxoj0Vi8Yf6SP-oUAQ,2321
68
69
  sonolus/script/internal/introspection.py,sha256=9e_flldywaB5g1FdLnfLfQcL3s4nQ50E5iFlA-5FF_w,558
69
- sonolus/script/internal/native.py,sha256=Iib3iqt9OfSnuOUGa9L9jMNDNuApQDnZd0vNKOk52hE,1392
70
+ sonolus/script/internal/native.py,sha256=af2YokZLtt30Jipo2dAY9PU9Fajz-12VoFOrnCgxSvk,1391
70
71
  sonolus/script/internal/value.py,sha256=ftmxr228XRSt2KNsR8KsXMw7vDP1jdwKEMb1PE0bpCA,4214
71
- sonolus_py-0.1.1.dist-info/METADATA,sha256=_j0JWT-xpmus8h125yO13zTQWk3dSuETUgP0ZbrGejI,238
72
- sonolus_py-0.1.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
73
- sonolus_py-0.1.1.dist-info/entry_points.txt,sha256=oTYspY_b7SA8TptEMTDxh4-Aj-ZVPnYC9f1lqH6s9G4,54
74
- sonolus_py-0.1.1.dist-info/licenses/LICENSE,sha256=AhIgObMNjnAgjfJIea2c-0PDItKwP71hg4WFVAKh1ew,1088
75
- sonolus_py-0.1.1.dist-info/RECORD,,
72
+ sonolus_py-0.1.2.dist-info/METADATA,sha256=jksU9Qk-ie2JcUAGSpQ26PwEZIZn9v7kTUIuAhVTJ-k,238
73
+ sonolus_py-0.1.2.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
74
+ sonolus_py-0.1.2.dist-info/entry_points.txt,sha256=oTYspY_b7SA8TptEMTDxh4-Aj-ZVPnYC9f1lqH6s9G4,54
75
+ sonolus_py-0.1.2.dist-info/licenses/LICENSE,sha256=AhIgObMNjnAgjfJIea2c-0PDItKwP71hg4WFVAKh1ew,1088
76
+ sonolus_py-0.1.2.dist-info/RECORD,,