@fi4f/hg 0.0.0

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.
Files changed (74) hide show
  1. package/.gitattributes +2 -0
  2. package/.github/workflows/publish.yml +23 -0
  3. package/dist/asset.d.ts +111 -0
  4. package/dist/asset.d.ts.map +1 -0
  5. package/dist/asset.js +188 -0
  6. package/dist/asset.js.map +1 -0
  7. package/dist/event.d.ts +69 -0
  8. package/dist/event.d.ts.map +1 -0
  9. package/dist/event.js +133 -0
  10. package/dist/event.js.map +1 -0
  11. package/dist/hg.d.ts +18 -0
  12. package/dist/hg.d.ts.map +1 -0
  13. package/dist/hg.js +19 -0
  14. package/dist/hg.js.map +1 -0
  15. package/dist/math.d.ts +6 -0
  16. package/dist/math.d.ts.map +1 -0
  17. package/dist/math.js +6 -0
  18. package/dist/math.js.map +1 -0
  19. package/dist/matrix2.d.ts +91 -0
  20. package/dist/matrix2.d.ts.map +1 -0
  21. package/dist/matrix2.js +178 -0
  22. package/dist/matrix2.js.map +1 -0
  23. package/dist/matrix3.d.ts +146 -0
  24. package/dist/matrix3.d.ts.map +1 -0
  25. package/dist/matrix3.js +255 -0
  26. package/dist/matrix3.js.map +1 -0
  27. package/dist/matrix4.d.ts +219 -0
  28. package/dist/matrix4.d.ts.map +1 -0
  29. package/dist/matrix4.js +352 -0
  30. package/dist/matrix4.js.map +1 -0
  31. package/dist/scene.d.ts +34 -0
  32. package/dist/scene.d.ts.map +1 -0
  33. package/dist/scene.js +9 -0
  34. package/dist/scene.js.map +1 -0
  35. package/dist/stage.d.ts +128 -0
  36. package/dist/stage.d.ts.map +1 -0
  37. package/dist/stage.js +299 -0
  38. package/dist/stage.js.map +1 -0
  39. package/dist/types.d.ts +2 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +2 -0
  42. package/dist/types.js.map +1 -0
  43. package/dist/vector2.d.ts +38 -0
  44. package/dist/vector2.d.ts.map +1 -0
  45. package/dist/vector2.js +67 -0
  46. package/dist/vector2.js.map +1 -0
  47. package/dist/vector3.d.ts +46 -0
  48. package/dist/vector3.d.ts.map +1 -0
  49. package/dist/vector3.js +74 -0
  50. package/dist/vector3.js.map +1 -0
  51. package/dist/vector4.d.ts +54 -0
  52. package/dist/vector4.d.ts.map +1 -0
  53. package/dist/vector4.js +81 -0
  54. package/dist/vector4.js.map +1 -0
  55. package/dist/version.d.ts +21 -0
  56. package/dist/version.d.ts.map +1 -0
  57. package/dist/version.js +14 -0
  58. package/dist/version.js.map +1 -0
  59. package/package.json +29 -0
  60. package/src/asset.ts +249 -0
  61. package/src/event.ts +174 -0
  62. package/src/hg.ts +21 -0
  63. package/src/math.ts +5 -0
  64. package/src/matrix2.ts +215 -0
  65. package/src/matrix3.ts +302 -0
  66. package/src/matrix4.ts +415 -0
  67. package/src/scene.ts +45 -0
  68. package/src/stage.ts +481 -0
  69. package/src/types.ts +1 -0
  70. package/src/vector2.ts +80 -0
  71. package/src/vector3.ts +88 -0
  72. package/src/vector4.ts +96 -0
  73. package/src/version.ts +26 -0
  74. package/tsconfig.json +44 -0
package/dist/stage.js ADDED
@@ -0,0 +1,299 @@
1
+ import { Event } from "./event.js";
2
+ import { Scene } from "./scene.js";
3
+ import { Vector2 } from "./vector2.js";
4
+ export const Stage = {
5
+ new(c, o) {
6
+ const configureDebug = o?.debug ?? false;
7
+ const configureW = o?.w ?? 0;
8
+ const configureH = o?.h ?? 0;
9
+ const configureUpdatesPerSecond = o?.ups ?? 0;
10
+ const configureRendersPerSecond = o?.rps ?? 0;
11
+ const configureLogicalBackground = o?.lbg ?? "#000";
12
+ const configureVirtualBackground = o?.vbg ?? "#fff";
13
+ const configureScaleIncrement = o?.si;
14
+ const configureImageSmoothing = o?.is;
15
+ const logicalCanvasElement = c;
16
+ const virtualCanvasElement = new OffscreenCanvas(configureW || logicalCanvasElement.width, configureH || logicalCanvasElement.height);
17
+ const logicalCanvasContext = logicalCanvasElement.getContext("2d");
18
+ const virtualCanvasContext = virtualCanvasElement.getContext("2d");
19
+ logicalCanvasContext.imageSmoothingEnabled = !!configureImageSmoothing;
20
+ virtualCanvasContext.imageSmoothingEnabled = !!configureImageSmoothing;
21
+ if (configureImageSmoothing) {
22
+ logicalCanvasContext.imageSmoothingQuality = configureImageSmoothing;
23
+ virtualCanvasContext.imageSmoothingQuality = configureImageSmoothing;
24
+ }
25
+ let virtualScale = Math.min(logicalCanvasElement.width / virtualCanvasElement.width, logicalCanvasElement.height / virtualCanvasElement.height);
26
+ if (configureScaleIncrement)
27
+ virtualScale = Math.floor(virtualScale / configureScaleIncrement) * configureScaleIncrement;
28
+ const millisPerUpdate = configureUpdatesPerSecond ? 1000 / configureUpdatesPerSecond : 0;
29
+ const millisPerRender = configureRendersPerSecond ? 1000 / configureRendersPerSecond : 0;
30
+ const stage = {
31
+ configureDebug,
32
+ configureW,
33
+ configureH,
34
+ configureUpdatesPerSecond,
35
+ configureRendersPerSecond,
36
+ configureLogicalBackground,
37
+ configureVirtualBackground,
38
+ configureScaleIncrement,
39
+ configureImageSmoothing,
40
+ logicalCanvasElement,
41
+ virtualCanvasElement,
42
+ logicalCanvasContext,
43
+ virtualCanvasContext,
44
+ virtualScale,
45
+ events: Event.Tree.new(),
46
+ debugs: new Map(),
47
+ lastUpdate: 0,
48
+ lastRender: 0,
49
+ millisPerUpdate,
50
+ millisPerRender,
51
+ framesPerSecond: 0,
52
+ updatesPerSecond: 0,
53
+ rendersPerSecond: 0,
54
+ averageMillisPerUpdate: 0,
55
+ minimumMillisPerUpdate: 0,
56
+ maximumMillisPerUpdate: 0,
57
+ averageMillisPerRender: 0,
58
+ minimumMillisPerRender: 0,
59
+ maximumMillisPerRender: 0,
60
+ oneSecondAccumulator: 0,
61
+ updateAccumulator: 0,
62
+ renderAccumulator: 0,
63
+ framesPerSecondAccumulator: 0,
64
+ updatesPerSecondAccumulator: 0,
65
+ rendersPerSecondAccumulator: 0,
66
+ averageMillisPerUpdateAccumulator: 0,
67
+ minimumMillisPerUpdateAccumulator: Infinity,
68
+ maximumMillisPerUpdateAccumulator: 0,
69
+ averageMillisPerRenderAccumulator: 0,
70
+ minimumMillisPerRenderAccumulator: Infinity,
71
+ maximumMillisPerRenderAccumulator: 0,
72
+ };
73
+ Stage.setDebugInfo(stage, "stage:frame", undefined);
74
+ Stage.setDebugInfo(stage, "stage:update", undefined);
75
+ Stage.setDebugInfo(stage, "stage:render", undefined);
76
+ Stage.setDebugInfo(stage, "stage:canvas", undefined);
77
+ new ResizeObserver(() => resize(stage)).observe(c);
78
+ Stage.listen(stage, "stage:resize", wh => onResize(stage, wh));
79
+ Stage.listen(stage, "stage:change", sc => onChange(stage, sc));
80
+ requestAnimationFrame(firstFrame => requestAnimationFrame(lastFrame => requestAnimationFrame(thisFrame => animate(stage, firstFrame, lastFrame, thisFrame))));
81
+ return stage;
82
+ },
83
+ getLogicalSize(stage) {
84
+ return Vector2.new(stage.logicalCanvasElement.width, stage.logicalCanvasElement.height);
85
+ },
86
+ getVirtualSize(stage) {
87
+ return Vector2.new(stage.virtualCanvasElement.width, stage.virtualCanvasElement.height);
88
+ },
89
+ getVirtualScale(stage) {
90
+ return stage.virtualScale;
91
+ },
92
+ change(stage, scene) {
93
+ Stage.dispatch(stage, "stage:change", scene);
94
+ },
95
+ listen(stage, type, listener, o) {
96
+ Event.listen(stage.events, type, listener, o);
97
+ },
98
+ deafen(stage, type, listener, o) {
99
+ Event.deafen(stage.events, type, listener, o);
100
+ },
101
+ dispatch(stage, type, event, o) {
102
+ Event.dispatch(stage.events, type, event, o);
103
+ },
104
+ poll(stage) {
105
+ Event.poll(stage.events);
106
+ },
107
+ getDebugInfo(stage, id) {
108
+ return stage.debugs.get(id);
109
+ },
110
+ setDebugInfo(stage, id, info) {
111
+ stage.debugs.set(id, info);
112
+ }
113
+ };
114
+ function resize(stage) {
115
+ const w = stage.logicalCanvasElement.getBoundingClientRect().width;
116
+ const h = stage.logicalCanvasElement.getBoundingClientRect().height;
117
+ Stage.dispatch(stage, "stage:resize", [w, h]);
118
+ }
119
+ function onResize(stage, [w, h]) {
120
+ stage.logicalCanvasElement.width = w;
121
+ stage.logicalCanvasElement.height = h;
122
+ stage.virtualCanvasElement = new OffscreenCanvas(stage.configureW || stage.logicalCanvasElement.width, stage.configureH || stage.logicalCanvasElement.height);
123
+ stage.logicalCanvasContext = stage.logicalCanvasElement.getContext("2d");
124
+ stage.virtualCanvasContext = stage.virtualCanvasElement.getContext("2d");
125
+ stage.logicalCanvasContext.imageSmoothingEnabled = !!stage.configureImageSmoothing;
126
+ stage.virtualCanvasContext.imageSmoothingEnabled = !!stage.configureImageSmoothing;
127
+ if (stage.configureImageSmoothing) {
128
+ stage.logicalCanvasContext.imageSmoothingQuality = stage.configureImageSmoothing;
129
+ stage.virtualCanvasContext.imageSmoothingQuality = stage.configureImageSmoothing;
130
+ }
131
+ stage.virtualScale = Math.min(stage.logicalCanvasElement.width / stage.virtualCanvasElement.width, stage.logicalCanvasElement.height / stage.virtualCanvasElement.height);
132
+ if (stage.configureScaleIncrement)
133
+ stage.virtualScale = Math.floor(stage.virtualScale / stage.configureScaleIncrement) * stage.configureScaleIncrement;
134
+ }
135
+ function onChange(stage, scene) {
136
+ if (stage.scene && stage.scene.onDetach)
137
+ stage.scene.onDetach(stage);
138
+ stage.scene = scene;
139
+ if (stage.scene && stage.scene.onAttach)
140
+ stage.scene.onAttach(stage);
141
+ }
142
+ function update(stage, t, dt) {
143
+ Stage.poll(stage);
144
+ if (Scene.doesUpdate(stage.scene))
145
+ stage.scene.onUpdate({ stage, t, dt });
146
+ }
147
+ function render(stage, t, dt) {
148
+ const f = stage.logicalCanvasContext;
149
+ const g = stage.virtualCanvasContext;
150
+ f.resetTransform();
151
+ g.resetTransform();
152
+ f.fillStyle = stage.configureLogicalBackground;
153
+ const [lw, lh] = Stage.getLogicalSize(stage);
154
+ f.fillRect(0, 0, lw, lh);
155
+ g.fillStyle = stage.configureVirtualBackground;
156
+ const [vw, vh] = Stage.getVirtualSize(stage);
157
+ g.fillRect(0, 0, vw, vh);
158
+ const vs = Stage.getVirtualScale(stage);
159
+ f.translate(lw / 2 - vw * vs / 2, lh / 2 - vh * vs / 2);
160
+ f.scale(vs, vs);
161
+ if (Scene.doesRender(stage.scene))
162
+ stage.scene.onRender({ stage, t, dt, g });
163
+ f.drawImage(stage.virtualCanvasElement, 0, 0);
164
+ if (stage.configureDebug && stage.configureDebug !== "print")
165
+ paintDebugInfos(stage);
166
+ }
167
+ function animate(stage, firstFrame, lastFrame, thisFrame) {
168
+ const delta = thisFrame - lastFrame;
169
+ stage.oneSecondAccumulator += delta;
170
+ stage.updateAccumulator += delta;
171
+ stage.renderAccumulator += delta;
172
+ stage.framesPerSecondAccumulator += 1;
173
+ if (stage.updateAccumulator >= stage.millisPerUpdate) {
174
+ const t = (thisFrame - firstFrame) / 1000;
175
+ const dt = (thisFrame - stage.lastUpdate) / 1000;
176
+ const a = performance.now();
177
+ update(stage, t, dt);
178
+ const b = performance.now();
179
+ const millisThisUpdate = b - a;
180
+ stage.lastUpdate = thisFrame;
181
+ stage.updatesPerSecondAccumulator += 1;
182
+ stage.updateAccumulator -= stage.millisPerUpdate;
183
+ stage.averageMillisPerUpdateAccumulator += millisThisUpdate;
184
+ stage.minimumMillisPerUpdateAccumulator = Math.min(millisThisUpdate, stage.minimumMillisPerUpdateAccumulator);
185
+ stage.maximumMillisPerUpdateAccumulator = Math.max(millisThisUpdate, stage.maximumMillisPerUpdateAccumulator);
186
+ }
187
+ if (stage.renderAccumulator >= stage.millisPerRender) {
188
+ const t = (thisFrame - firstFrame) / 1000;
189
+ const dt = (thisFrame - stage.lastRender) / 1000;
190
+ const a = performance.now();
191
+ render(stage, t, dt);
192
+ const b = performance.now();
193
+ const millisThisRender = b - a;
194
+ stage.lastRender = thisFrame;
195
+ stage.rendersPerSecondAccumulator += 1;
196
+ stage.renderAccumulator -= stage.millisPerRender;
197
+ stage.averageMillisPerRenderAccumulator += millisThisRender;
198
+ stage.minimumMillisPerRenderAccumulator = Math.min(millisThisRender, stage.minimumMillisPerRenderAccumulator);
199
+ stage.maximumMillisPerRenderAccumulator = Math.max(millisThisRender, stage.maximumMillisPerRenderAccumulator);
200
+ }
201
+ if (stage.oneSecondAccumulator >= 1000) {
202
+ // update metrics
203
+ stage.framesPerSecond = stage.framesPerSecondAccumulator;
204
+ stage.updatesPerSecond = stage.updatesPerSecondAccumulator;
205
+ stage.rendersPerSecond = stage.rendersPerSecondAccumulator;
206
+ stage.averageMillisPerUpdate = stage.averageMillisPerUpdateAccumulator / stage.updatesPerSecondAccumulator;
207
+ stage.minimumMillisPerUpdate = stage.minimumMillisPerUpdateAccumulator;
208
+ stage.maximumMillisPerUpdate = stage.maximumMillisPerUpdateAccumulator;
209
+ stage.averageMillisPerRender = stage.averageMillisPerRenderAccumulator / stage.rendersPerSecondAccumulator;
210
+ stage.minimumMillisPerRender = stage.minimumMillisPerRenderAccumulator;
211
+ stage.maximumMillisPerRender = stage.maximumMillisPerRenderAccumulator;
212
+ // reset accumulators
213
+ stage.framesPerSecondAccumulator = 0;
214
+ stage.updatesPerSecondAccumulator = 0;
215
+ stage.rendersPerSecondAccumulator = 0;
216
+ stage.averageMillisPerUpdateAccumulator = 0;
217
+ stage.minimumMillisPerUpdateAccumulator = Infinity;
218
+ stage.maximumMillisPerUpdateAccumulator = 0;
219
+ stage.averageMillisPerRenderAccumulator = 0;
220
+ stage.minimumMillisPerRenderAccumulator = Infinity;
221
+ stage.maximumMillisPerRenderAccumulator = 0;
222
+ stage.oneSecondAccumulator -= 1000;
223
+ Stage.setDebugInfo(stage, "stage:frame", getFrameInfo(stage));
224
+ Stage.setDebugInfo(stage, "stage:update", getUpdateInfo(stage));
225
+ Stage.setDebugInfo(stage, "stage:render", getRenderInfo(stage));
226
+ Stage.setDebugInfo(stage, "stage:canvas", getCanvasInfo(stage));
227
+ if (stage.configureDebug && stage.configureDebug !== "paint")
228
+ printDebugInfos(stage);
229
+ }
230
+ requestAnimationFrame(nextFrame => animate(stage, firstFrame, thisFrame, nextFrame));
231
+ }
232
+ function getFrameInfo(stage) {
233
+ return `FRAME ${stage.framesPerSecond.toFixed(0)} hz`;
234
+ }
235
+ function getUpdateInfo(stage) {
236
+ return `UPDATE ${stage.updatesPerSecond.toFixed(0)} hz @ ${stage.averageMillisPerUpdate.toFixed(2)} [${stage.minimumMillisPerUpdate.toFixed(2)} - ${stage.maximumMillisPerUpdate.toFixed(2)}] of ${stage.millisPerUpdate.toFixed(2)} ms`;
237
+ }
238
+ function getRenderInfo(stage) {
239
+ return `RENDER ${stage.rendersPerSecond.toFixed(0)} hz @ ${stage.averageMillisPerRender.toFixed(2)} [${stage.minimumMillisPerRender.toFixed(2)} - ${stage.maximumMillisPerRender.toFixed(2)}] of ${stage.millisPerRender.toFixed(2)} ms`;
240
+ }
241
+ function getCanvasInfo(stage) {
242
+ const [lw, lh] = Stage.getLogicalSize(stage);
243
+ const [vw, vh] = Stage.getVirtualSize(stage);
244
+ const vs = Stage.getVirtualScale(stage);
245
+ return `CANVAS ${lw}x${lh} ${vw}x${vh} ${(100 * vs).toFixed(2)}%`;
246
+ }
247
+ function printDebugInfos(stage) {
248
+ let infos = "*** DEBUG ***\n";
249
+ for (const [id, info] of stage.debugs) {
250
+ if (!info)
251
+ continue;
252
+ infos += `${info}\n`;
253
+ }
254
+ console.log(infos);
255
+ }
256
+ function paintDebugInfos(stage) {
257
+ const g = stage.logicalCanvasContext;
258
+ const configureDebugBackground = "#000a";
259
+ const configureDebugForeground = "#ffff";
260
+ const configurePaddingX = 10;
261
+ const configurePaddingY = 10;
262
+ const configureSpacingY = 0;
263
+ const configureFont = "16px monospace";
264
+ g.resetTransform();
265
+ g.font = configureFont;
266
+ let w = 0;
267
+ let h = 0;
268
+ for (const [id, info] of stage.debugs) {
269
+ if (!info)
270
+ continue;
271
+ const tm = g.measureText(info);
272
+ w = Math.max(w, tm.width);
273
+ h += (tm.fontBoundingBoxAscent +
274
+ tm.fontBoundingBoxDescent +
275
+ configureSpacingY);
276
+ }
277
+ if (h > 0) {
278
+ w += configurePaddingX * 2;
279
+ h += configurePaddingY * 2;
280
+ h -= configureSpacingY;
281
+ }
282
+ // draw background
283
+ g.fillStyle = configureDebugBackground;
284
+ g.fillRect(0, 0, w, h);
285
+ // draw foreground
286
+ g.fillStyle = configureDebugForeground;
287
+ let x = configurePaddingX;
288
+ let y = configurePaddingY;
289
+ for (const [id, info] of stage.debugs) {
290
+ if (!info)
291
+ continue;
292
+ const tm = g.measureText(info);
293
+ g.fillText(info, x, y + tm.fontBoundingBoxAscent);
294
+ y += (configureSpacingY +
295
+ tm.fontBoundingBoxAscent +
296
+ tm.fontBoundingBoxDescent);
297
+ }
298
+ }
299
+ //# sourceMappingURL=stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage.js","sourceRoot":"","sources":["../src/stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type Maybe<T> = T | undefined;
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ export type Vector2 = [number, number];
2
+ export declare const X: 0;
3
+ export declare const Y: 1;
4
+ export declare const __get__: {
5
+ x(a: Vector2): number;
6
+ y(a: Vector2): number;
7
+ };
8
+ export declare const __set__: {
9
+ x(a: Vector2, x: number): number;
10
+ y(a: Vector2, y: number): number;
11
+ };
12
+ export declare function x(a: Vector2, x?: number): number;
13
+ export declare function y(a: Vector2, y?: number): number;
14
+ export declare const Vector2: {
15
+ X: 0;
16
+ Y: 1;
17
+ __get__: {
18
+ x(a: Vector2): number;
19
+ y(a: Vector2): number;
20
+ };
21
+ __set__: {
22
+ x(a: Vector2, x: number): number;
23
+ y(a: Vector2, y: number): number;
24
+ };
25
+ x: typeof x;
26
+ y: typeof y;
27
+ "new"(...a: Array<number>): [number, number];
28
+ from(a: number | Array<number>): [number, number];
29
+ el(op: (a: number, b: number) => number, a: number | Vector2, b: number | Vector2, out?: Vector2): Vector2;
30
+ add(a: number | Vector2, b: number | Vector2, out?: Vector2): Vector2;
31
+ sub(a: number | Vector2, b: number | Vector2, out?: Vector2): Vector2;
32
+ hmul(a: number | Vector2, b: number | Vector2, out?: Vector2): Vector2;
33
+ hdiv(a: number | Vector2, b: number | Vector2, out?: Vector2): Vector2;
34
+ hmod(a: number | Vector2, b: number | Vector2, out?: Vector2): Vector2;
35
+ dot(a: number | Vector2, b?: number | Vector2): number;
36
+ toString(a: number | Vector2): string;
37
+ };
38
+ //# sourceMappingURL=vector2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector2.d.ts","sourceRoot":"","sources":["../src/vector2.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEtC,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAC5B,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAE5B,eAAO,MAAM,OAAO;SACb,OAAO;SACP,OAAO;CACb,CAAA;AAED,eAAO,MAAM,OAAO;SACb,OAAO,KAAK,MAAM;SAClB,OAAO,KAAK,MAAM;CACxB,CAAA;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,eAAO,MAAM,OAAO;;;;aAjBb,OAAO;aACP,OAAO;;;aAIP,OAAO,KAAK,MAAM;aAClB,OAAO,KAAK,MAAM;;;;gBAiBb,KAAK,CAAC,MAAM,CAAC;YAKf,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;WAKvB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,KAAK,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WAQxF,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAIlD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WAIpD,MAAM,GAAG,OAAO,MAAK,MAAM,GAAG,OAAO;gBAMhC,MAAM,GAAG,OAAO;CAI7B,CAAA"}
@@ -0,0 +1,67 @@
1
+ import { ADD, SUB, MUL, DIV, MOD } from "./math.js";
2
+ export const X = 0;
3
+ export const Y = 1;
4
+ export const __get__ = {
5
+ x(a) { return a[X]; },
6
+ y(a) { return a[Y]; },
7
+ };
8
+ export const __set__ = {
9
+ x(a, x) { return a[X] = x; },
10
+ y(a, y) { return a[Y] = y; },
11
+ };
12
+ export function x(a, x) {
13
+ return x === undefined ? __get__.x(a) : __set__.x(a, x);
14
+ }
15
+ export function y(a, y) {
16
+ return y === undefined ? __get__.y(a) : __set__.y(a, y);
17
+ }
18
+ export const Vector2 = {
19
+ X, Y,
20
+ __get__,
21
+ __set__,
22
+ x, y,
23
+ new(...a) {
24
+ if (a.length === 1)
25
+ return [a[X], a[X]];
26
+ else
27
+ return [a[X] ?? 0, a[Y] ?? 0];
28
+ },
29
+ from(a) {
30
+ if (typeof a === "number")
31
+ return [a, a];
32
+ else
33
+ return [a[X] ?? 0, a[Y] ?? 0];
34
+ },
35
+ el(op, a, b, out = Vector2.new()) {
36
+ const [xa, ya] = Vector2.from(a);
37
+ const [xb, yb] = Vector2.from(b);
38
+ __set__.x(out, op(xa, xb));
39
+ __set__.y(out, op(ya, yb));
40
+ return out;
41
+ },
42
+ add(a, b, out = Vector2.new()) {
43
+ return Vector2.el(ADD, a, b, out);
44
+ },
45
+ sub(a, b, out = Vector2.new()) {
46
+ return Vector2.el(SUB, a, b, out);
47
+ },
48
+ hmul(a, b, out = Vector2.new()) {
49
+ return Vector2.el(MUL, a, b, out);
50
+ },
51
+ hdiv(a, b, out = Vector2.new()) {
52
+ return Vector2.el(DIV, a, b, out);
53
+ },
54
+ hmod(a, b, out = Vector2.new()) {
55
+ return Vector2.el(MOD, a, b, out);
56
+ },
57
+ dot(a, b = a) {
58
+ const [xa, ya] = Vector2.from(a);
59
+ const [xb, yb] = Vector2.from(b);
60
+ return xa * xb + ya * yb;
61
+ },
62
+ toString(a) {
63
+ const [x, y] = Vector2.from(a);
64
+ return `vec2<${x}, ${y}>`;
65
+ }
66
+ };
67
+ //# sourceMappingURL=vector2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector2.js","sourceRoot":"","sources":["../src/vector2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ export type Vector3 = [number, number, number];
2
+ export declare const X: 0;
3
+ export declare const Y: 1;
4
+ export declare const Z: 2;
5
+ export declare const __get__: {
6
+ x(a: Vector3): number;
7
+ y(a: Vector3): number;
8
+ z(a: Vector3): number;
9
+ };
10
+ export declare const __set__: {
11
+ x(a: Vector3, x: number): number;
12
+ y(a: Vector3, y: number): number;
13
+ z(a: Vector3, z: number): number;
14
+ };
15
+ export declare function x(a: Vector3, x?: number): number;
16
+ export declare function y(a: Vector3, y?: number): number;
17
+ export declare function z(a: Vector3, z?: number): number;
18
+ export declare const Vector3: {
19
+ X: 0;
20
+ Y: 1;
21
+ Z: 2;
22
+ __get__: {
23
+ x(a: Vector3): number;
24
+ y(a: Vector3): number;
25
+ z(a: Vector3): number;
26
+ };
27
+ __set__: {
28
+ x(a: Vector3, x: number): number;
29
+ y(a: Vector3, y: number): number;
30
+ z(a: Vector3, z: number): number;
31
+ };
32
+ x: typeof x;
33
+ y: typeof y;
34
+ z: typeof z;
35
+ "new"(...a: Array<number>): [number, number, number];
36
+ from(a: number | Array<number>): [number, number, number];
37
+ el(op: (a: number, b: number) => number, a: number | Vector3, b: number | Vector3, out?: Vector3): Vector3;
38
+ add(a: number | Vector3, b: number | Vector3, out?: Vector3): Vector3;
39
+ sub(a: number | Vector3, b: number | Vector3, out?: Vector3): Vector3;
40
+ hmul(a: number | Vector3, b: number | Vector3, out?: Vector3): Vector3;
41
+ hdiv(a: number | Vector3, b: number | Vector3, out?: Vector3): Vector3;
42
+ hmod(a: number | Vector3, b: number | Vector3, out?: Vector3): Vector3;
43
+ dot(a: number | Vector3, b?: number | Vector3): number;
44
+ toString(a: number | Vector3): string;
45
+ };
46
+ //# sourceMappingURL=vector3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector3.d.ts","sourceRoot":"","sources":["../src/vector3.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAE9C,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAC5B,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAC5B,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAE5B,eAAO,MAAM,OAAO;SACb,OAAO;SACP,OAAO;SACP,OAAO;CACb,CAAA;AAED,eAAO,MAAM,OAAO;SACb,OAAO,KAAK,MAAM;SAClB,OAAO,KAAK,MAAM;SAClB,OAAO,KAAK,MAAM;CACxB,CAAA;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,eAAO,MAAM,OAAO;;;;;aAvBb,OAAO;aACP,OAAO;aACP,OAAO;;;aAIP,OAAO,KAAK,MAAM;aAClB,OAAO,KAAK,MAAM;aAClB,OAAO,KAAK,MAAM;;;;;gBAqBb,KAAK,CAAC,MAAM,CAAC;YAKf,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;WAKvB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,KAAK,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WASxF,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAIlD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WAIpD,MAAM,GAAG,OAAO,MAAK,MAAM,GAAG,OAAO;gBAMhC,MAAM,GAAG,OAAO;CAI7B,CAAA"}
@@ -0,0 +1,74 @@
1
+ import { ADD, SUB, MUL, DIV, MOD } from "./math.js";
2
+ export const X = 0;
3
+ export const Y = 1;
4
+ export const Z = 2;
5
+ export const __get__ = {
6
+ x(a) { return a[X]; },
7
+ y(a) { return a[Y]; },
8
+ z(a) { return a[Z]; },
9
+ };
10
+ export const __set__ = {
11
+ x(a, x) { return a[X] = x; },
12
+ y(a, y) { return a[Y] = y; },
13
+ z(a, z) { return a[Z] = z; },
14
+ };
15
+ export function x(a, x) {
16
+ return x === undefined ? __get__.x(a) : __set__.x(a, x);
17
+ }
18
+ export function y(a, y) {
19
+ return y === undefined ? __get__.y(a) : __set__.y(a, y);
20
+ }
21
+ export function z(a, z) {
22
+ return z === undefined ? __get__.z(a) : __set__.z(a, z);
23
+ }
24
+ export const Vector3 = {
25
+ X, Y, Z,
26
+ __get__,
27
+ __set__,
28
+ x, y, z,
29
+ new(...a) {
30
+ if (a.length === 1)
31
+ return [a[X], a[X], a[X]];
32
+ else
33
+ return [a[X] ?? 0, a[Y] ?? 0, a[Z] ?? 0];
34
+ },
35
+ from(a) {
36
+ if (typeof a === "number")
37
+ return [a, a, a];
38
+ else
39
+ return [a[X] ?? 0, a[Y] ?? 0, a[Z] ?? 0];
40
+ },
41
+ el(op, a, b, out = Vector3.new()) {
42
+ const [xa, ya, za] = Vector3.from(a);
43
+ const [xb, yb, zb] = Vector3.from(b);
44
+ __set__.x(out, op(xa, xb));
45
+ __set__.y(out, op(ya, yb));
46
+ __set__.z(out, op(za, zb));
47
+ return out;
48
+ },
49
+ add(a, b, out = Vector3.new()) {
50
+ return Vector3.el(ADD, a, b, out);
51
+ },
52
+ sub(a, b, out = Vector3.new()) {
53
+ return Vector3.el(SUB, a, b, out);
54
+ },
55
+ hmul(a, b, out = Vector3.new()) {
56
+ return Vector3.el(MUL, a, b, out);
57
+ },
58
+ hdiv(a, b, out = Vector3.new()) {
59
+ return Vector3.el(DIV, a, b, out);
60
+ },
61
+ hmod(a, b, out = Vector3.new()) {
62
+ return Vector3.el(MOD, a, b, out);
63
+ },
64
+ dot(a, b = a) {
65
+ const [xa, ya, za] = Vector3.from(a);
66
+ const [xb, yb, zb] = Vector3.from(b);
67
+ return xa * xb + ya * yb + za * zb;
68
+ },
69
+ toString(a) {
70
+ const [x, y, z] = Vector3.from(a);
71
+ return `vec3<${x}, ${y}, ${z}>`;
72
+ }
73
+ };
74
+ //# sourceMappingURL=vector3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector3.js","sourceRoot":"","sources":["../src/vector3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ export type Vector4 = [number, number, number, number];
2
+ export declare const X: 0;
3
+ export declare const Y: 1;
4
+ export declare const Z: 2;
5
+ export declare const W: 3;
6
+ export declare const __get__: {
7
+ x(a: Vector4): number;
8
+ y(a: Vector4): number;
9
+ z(a: Vector4): number;
10
+ w(a: Vector4): number;
11
+ };
12
+ export declare const __set__: {
13
+ x(a: Vector4, x: number): number;
14
+ y(a: Vector4, y: number): number;
15
+ z(a: Vector4, z: number): number;
16
+ w(a: Vector4, w: number): number;
17
+ };
18
+ export declare function x(a: Vector4, x?: number): number;
19
+ export declare function y(a: Vector4, y?: number): number;
20
+ export declare function z(a: Vector4, z?: number): number;
21
+ export declare function w(a: Vector4, w?: number): number;
22
+ export declare const Vector4: {
23
+ X: 0;
24
+ Y: 1;
25
+ Z: 2;
26
+ W: 3;
27
+ __get__: {
28
+ x(a: Vector4): number;
29
+ y(a: Vector4): number;
30
+ z(a: Vector4): number;
31
+ w(a: Vector4): number;
32
+ };
33
+ __set__: {
34
+ x(a: Vector4, x: number): number;
35
+ y(a: Vector4, y: number): number;
36
+ z(a: Vector4, z: number): number;
37
+ w(a: Vector4, w: number): number;
38
+ };
39
+ x: typeof x;
40
+ y: typeof y;
41
+ z: typeof z;
42
+ w: typeof w;
43
+ "new"(...a: Array<number>): [number, number, number, number];
44
+ from(a: number | Array<number>): [number, number, number, number];
45
+ el(op: (a: number, b: number) => number, a: number | Vector4, b: number | Vector4, out?: Vector4): Vector4;
46
+ add(a: number | Vector4, b: number | Vector4, out?: Vector4): Vector4;
47
+ sub(a: number | Vector4, b: number | Vector4, out?: Vector4): Vector4;
48
+ hmul(a: number | Vector4, b: number | Vector4, out?: Vector4): Vector4;
49
+ hdiv(a: number | Vector4, b: number | Vector4, out?: Vector4): Vector4;
50
+ hmod(a: number | Vector4, b: number | Vector4, out?: Vector4): Vector4;
51
+ dot(a: number | Vector4, b?: number | Vector4): number;
52
+ toString(a: number | Vector4): string;
53
+ };
54
+ //# sourceMappingURL=vector4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector4.d.ts","sourceRoot":"","sources":["../src/vector4.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEtD,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAC5B,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAC5B,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAC5B,eAAO,MAAM,CAAC,EAAG,CAAU,CAAC;AAE5B,eAAO,MAAM,OAAO;SACb,OAAO;SACP,OAAO;SACP,OAAO;SACP,OAAO;CACb,CAAA;AAED,eAAO,MAAM,OAAO;SACb,OAAO,KAAK,MAAM;SAClB,OAAO,KAAK,MAAM;SAClB,OAAO,KAAK,MAAM;SAClB,OAAO,KAAK,MAAM;CACxB,CAAA;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,wBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAE,CAAC,EAAE,MAAM,UAExC;AAED,eAAO,MAAM,OAAO;;;;;;aA7Bb,OAAO;aACP,OAAO;aACP,OAAO;aACP,OAAO;;;aAIP,OAAO,KAAK,MAAM;aAClB,OAAO,KAAK,MAAM;aAClB,OAAO,KAAK,MAAM;aAClB,OAAO,KAAK,MAAM;;;;;;gBAyBb,KAAK,CAAC,MAAM,CAAC;YAKf,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;WAKvB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,KAAK,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WAUxF,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAIlD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;YAInD,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,OAAO,QAAO,OAAO;WAIpD,MAAM,GAAG,OAAO,MAAK,MAAM,GAAG,OAAO;gBAMhC,MAAM,GAAG,OAAO;CAI7B,CAAA"}