@multiplekex/shallot 0.1.0 → 0.1.1

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 (158) hide show
  1. package/package.json +8 -23
  2. package/src/standard/compute/index.ts +36 -0
  3. package/src/standard/render/camera.ts +1 -1
  4. package/dist/core/builder.d.ts +0 -25
  5. package/dist/core/builder.d.ts.map +0 -1
  6. package/dist/core/builder.js +0 -88
  7. package/dist/core/builder.js.map +0 -1
  8. package/dist/core/component.d.ts +0 -29
  9. package/dist/core/component.d.ts.map +0 -1
  10. package/dist/core/component.js +0 -36
  11. package/dist/core/component.js.map +0 -1
  12. package/dist/core/index.d.ts +0 -13
  13. package/dist/core/index.d.ts.map +0 -1
  14. package/dist/core/math.d.ts +0 -32
  15. package/dist/core/math.d.ts.map +0 -1
  16. package/dist/core/math.js +0 -39
  17. package/dist/core/math.js.map +0 -1
  18. package/dist/core/relation.d.ts +0 -16
  19. package/dist/core/relation.d.ts.map +0 -1
  20. package/dist/core/relation.js +0 -32
  21. package/dist/core/relation.js.map +0 -1
  22. package/dist/core/resource.d.ts +0 -9
  23. package/dist/core/resource.d.ts.map +0 -1
  24. package/dist/core/resource.js +0 -12
  25. package/dist/core/resource.js.map +0 -1
  26. package/dist/core/runtime.d.ts +0 -13
  27. package/dist/core/runtime.d.ts.map +0 -1
  28. package/dist/core/runtime.js +0 -118
  29. package/dist/core/runtime.js.map +0 -1
  30. package/dist/core/scheduler.d.ts +0 -47
  31. package/dist/core/scheduler.d.ts.map +0 -1
  32. package/dist/core/scheduler.js +0 -138
  33. package/dist/core/scheduler.js.map +0 -1
  34. package/dist/core/state.d.ts +0 -62
  35. package/dist/core/state.d.ts.map +0 -1
  36. package/dist/core/state.js +0 -185
  37. package/dist/core/state.js.map +0 -1
  38. package/dist/core/strings.d.ts +0 -3
  39. package/dist/core/strings.d.ts.map +0 -1
  40. package/dist/core/strings.js +0 -11
  41. package/dist/core/strings.js.map +0 -1
  42. package/dist/core/types.d.ts +0 -33
  43. package/dist/core/types.d.ts.map +0 -1
  44. package/dist/core/xml.d.ts +0 -42
  45. package/dist/core/xml.d.ts.map +0 -1
  46. package/dist/core/xml.js +0 -349
  47. package/dist/core/xml.js.map +0 -1
  48. package/dist/extras/arrows/index.d.ts +0 -33
  49. package/dist/extras/arrows/index.d.ts.map +0 -1
  50. package/dist/extras/arrows/index.js +0 -288
  51. package/dist/extras/arrows/index.js.map +0 -1
  52. package/dist/extras/index.d.ts +0 -5
  53. package/dist/extras/index.d.ts.map +0 -1
  54. package/dist/extras/index.js +0 -31
  55. package/dist/extras/index.js.map +0 -1
  56. package/dist/extras/lines/index.d.ts +0 -36
  57. package/dist/extras/lines/index.d.ts.map +0 -1
  58. package/dist/extras/lines/index.js +0 -288
  59. package/dist/extras/lines/index.js.map +0 -1
  60. package/dist/extras/orbit/index.d.ts +0 -20
  61. package/dist/extras/orbit/index.d.ts.map +0 -1
  62. package/dist/extras/orbit/index.js +0 -93
  63. package/dist/extras/orbit/index.js.map +0 -1
  64. package/dist/extras/text/index.d.ts +0 -64
  65. package/dist/extras/text/index.d.ts.map +0 -1
  66. package/dist/extras/text/index.js +0 -423
  67. package/dist/extras/text/index.js.map +0 -1
  68. package/dist/index.d.ts +0 -4
  69. package/dist/index.d.ts.map +0 -1
  70. package/dist/index.js +0 -187
  71. package/dist/index.js.map +0 -1
  72. package/dist/rust/transforms/pkg/shallot_transforms.js +0 -107
  73. package/dist/rust/transforms/pkg/shallot_transforms.js.map +0 -1
  74. package/dist/standard/compute/graph.d.ts +0 -37
  75. package/dist/standard/compute/graph.d.ts.map +0 -1
  76. package/dist/standard/compute/graph.js +0 -85
  77. package/dist/standard/compute/graph.js.map +0 -1
  78. package/dist/standard/compute/index.d.ts +0 -21
  79. package/dist/standard/compute/index.d.ts.map +0 -1
  80. package/dist/standard/compute/index.js +0 -81
  81. package/dist/standard/compute/index.js.map +0 -1
  82. package/dist/standard/defaults.d.ts +0 -3
  83. package/dist/standard/defaults.d.ts.map +0 -1
  84. package/dist/standard/defaults.js +0 -18
  85. package/dist/standard/defaults.js.map +0 -1
  86. package/dist/standard/index.d.ts +0 -8
  87. package/dist/standard/index.d.ts.map +0 -1
  88. package/dist/standard/input/index.d.ts +0 -5
  89. package/dist/standard/input/index.d.ts.map +0 -1
  90. package/dist/standard/input/index.js +0 -70
  91. package/dist/standard/input/index.js.map +0 -1
  92. package/dist/standard/loading/index.d.ts +0 -7
  93. package/dist/standard/loading/index.d.ts.map +0 -1
  94. package/dist/standard/loading/index.js +0 -91
  95. package/dist/standard/loading/index.js.map +0 -1
  96. package/dist/standard/render/camera.d.ts +0 -36
  97. package/dist/standard/render/camera.d.ts.map +0 -1
  98. package/dist/standard/render/camera.js +0 -71
  99. package/dist/standard/render/camera.js.map +0 -1
  100. package/dist/standard/render/forward.d.ts +0 -30
  101. package/dist/standard/render/forward.d.ts.map +0 -1
  102. package/dist/standard/render/forward.js +0 -158
  103. package/dist/standard/render/forward.js.map +0 -1
  104. package/dist/standard/render/index.d.ts +0 -22
  105. package/dist/standard/render/index.d.ts.map +0 -1
  106. package/dist/standard/render/index.js +0 -153
  107. package/dist/standard/render/index.js.map +0 -1
  108. package/dist/standard/render/light.d.ts +0 -25
  109. package/dist/standard/render/light.d.ts.map +0 -1
  110. package/dist/standard/render/light.js +0 -48
  111. package/dist/standard/render/light.js.map +0 -1
  112. package/dist/standard/render/mesh/box.d.ts +0 -3
  113. package/dist/standard/render/mesh/box.d.ts.map +0 -1
  114. package/dist/standard/render/mesh/box.js +0 -190
  115. package/dist/standard/render/mesh/box.js.map +0 -1
  116. package/dist/standard/render/mesh/index.d.ts +0 -52
  117. package/dist/standard/render/mesh/index.d.ts.map +0 -1
  118. package/dist/standard/render/mesh/index.js +0 -158
  119. package/dist/standard/render/mesh/index.js.map +0 -1
  120. package/dist/standard/render/mesh/plane.d.ts +0 -3
  121. package/dist/standard/render/mesh/plane.d.ts.map +0 -1
  122. package/dist/standard/render/mesh/plane.js +0 -33
  123. package/dist/standard/render/mesh/plane.js.map +0 -1
  124. package/dist/standard/render/mesh/sphere.d.ts +0 -3
  125. package/dist/standard/render/mesh/sphere.d.ts.map +0 -1
  126. package/dist/standard/render/mesh/sphere.js +0 -25
  127. package/dist/standard/render/mesh/sphere.js.map +0 -1
  128. package/dist/standard/render/postprocess.d.ts +0 -11
  129. package/dist/standard/render/postprocess.d.ts.map +0 -1
  130. package/dist/standard/render/postprocess.js +0 -190
  131. package/dist/standard/render/postprocess.js.map +0 -1
  132. package/dist/standard/render/scene.d.ts +0 -8
  133. package/dist/standard/render/scene.d.ts.map +0 -1
  134. package/dist/standard/render/scene.js +0 -67
  135. package/dist/standard/render/scene.js.map +0 -1
  136. package/dist/standard/transforms/index.d.ts +0 -27
  137. package/dist/standard/transforms/index.d.ts.map +0 -1
  138. package/dist/standard/transforms/index.js +0 -122
  139. package/dist/standard/transforms/index.js.map +0 -1
  140. package/dist/standard/transforms/wasm.d.ts +0 -17
  141. package/dist/standard/transforms/wasm.d.ts.map +0 -1
  142. package/dist/standard/transforms/wasm.js +0 -31
  143. package/dist/standard/transforms/wasm.js.map +0 -1
  144. package/dist/standard/tween/easing.d.ts +0 -5
  145. package/dist/standard/tween/easing.d.ts.map +0 -1
  146. package/dist/standard/tween/easing.js +0 -80
  147. package/dist/standard/tween/easing.js.map +0 -1
  148. package/dist/standard/tween/index.d.ts +0 -4
  149. package/dist/standard/tween/index.d.ts.map +0 -1
  150. package/dist/standard/tween/sequence.d.ts +0 -20
  151. package/dist/standard/tween/sequence.d.ts.map +0 -1
  152. package/dist/standard/tween/sequence.js +0 -95
  153. package/dist/standard/tween/sequence.js.map +0 -1
  154. package/dist/standard/tween/tween.d.ts +0 -28
  155. package/dist/standard/tween/tween.d.ts.map +0 -1
  156. package/dist/standard/tween/tween.js +0 -136
  157. package/dist/standard/tween/tween.js.map +0 -1
  158. package/src/vite-env.d.ts +0 -6
@@ -1,190 +0,0 @@
1
- const E = (
2
- /* wgsl */
3
- `
4
- struct VertexOutput {
5
- @builtin(position) position: vec4f,
6
- @location(0) uv: vec2f,
7
- }
8
-
9
- @vertex
10
- fn vertexMain(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
11
- var positions = array<vec2f, 3>(
12
- vec2f(-1.0, -1.0),
13
- vec2f(3.0, -1.0),
14
- vec2f(-1.0, 3.0)
15
- );
16
-
17
- let pos = positions[vertexIndex];
18
-
19
- var output: VertexOutput;
20
- output.position = vec4f(pos, 0.0, 1.0);
21
- output.uv = (pos + 1.0) * 0.5;
22
- output.uv.y = 1.0 - output.uv.y;
23
- return output;
24
- }
25
-
26
- @group(0) @binding(0) var inputTexture: texture_2d<f32>;
27
- @group(0) @binding(1) var inputSampler: sampler;
28
-
29
- struct Uniforms {
30
- exposure: f32,
31
- vignetteStrength: f32,
32
- vignetteInner: f32,
33
- vignetteOuter: f32,
34
- texelSizeX: f32,
35
- texelSizeY: f32,
36
- flags: u32,
37
- _pad: u32,
38
- }
39
-
40
- @group(0) @binding(2) var<uniform> uniforms: Uniforms;
41
-
42
- const FLAG_TONEMAP: u32 = 1u;
43
- const FLAG_FXAA: u32 = 2u;
44
- const FLAG_VIGNETTE: u32 = 4u;
45
-
46
- fn aces(x: vec3f) -> vec3f {
47
- let a = 2.51;
48
- let b = 0.03;
49
- let c = 2.43;
50
- let d = 0.59;
51
- let e = 0.14;
52
- return saturate((x * (a * x + b)) / (x * (c * x + d) + e));
53
- }
54
-
55
- fn luma(color: vec3f) -> f32 {
56
- return dot(color, vec3f(0.299, 0.587, 0.114));
57
- }
58
-
59
- const FXAA_REDUCE_MIN: f32 = 1.0 / 128.0;
60
- const FXAA_REDUCE_MUL: f32 = 1.0 / 8.0;
61
- const FXAA_SPAN_MAX: f32 = 8.0;
62
-
63
- fn applyFXAA(uv: vec2f, colorM: vec3f) -> vec3f {
64
- let texelSize = vec2f(uniforms.texelSizeX, uniforms.texelSizeY);
65
-
66
- let colorNW = textureSample(inputTexture, inputSampler, uv + vec2f(-1.0, -1.0) * texelSize).rgb;
67
- let colorNE = textureSample(inputTexture, inputSampler, uv + vec2f(1.0, -1.0) * texelSize).rgb;
68
- let colorSW = textureSample(inputTexture, inputSampler, uv + vec2f(-1.0, 1.0) * texelSize).rgb;
69
- let colorSE = textureSample(inputTexture, inputSampler, uv + vec2f(1.0, 1.0) * texelSize).rgb;
70
-
71
- let lumaM = luma(colorM);
72
- let lumaNW = luma(colorNW);
73
- let lumaNE = luma(colorNE);
74
- let lumaSW = luma(colorSW);
75
- let lumaSE = luma(colorSE);
76
-
77
- let lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
78
- let lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
79
-
80
- var dir: vec2f;
81
- dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
82
- dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
83
-
84
- let dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * 0.25 * FXAA_REDUCE_MUL, FXAA_REDUCE_MIN);
85
- let rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);
86
- dir = clamp(dir * rcpDirMin, vec2f(-FXAA_SPAN_MAX), vec2f(FXAA_SPAN_MAX)) * texelSize;
87
-
88
- let colorA = 0.5 * (
89
- textureSample(inputTexture, inputSampler, uv + dir * (1.0 / 3.0 - 0.5)).rgb +
90
- textureSample(inputTexture, inputSampler, uv + dir * (2.0 / 3.0 - 0.5)).rgb
91
- );
92
-
93
- let colorB = colorA * 0.5 + 0.25 * (
94
- textureSample(inputTexture, inputSampler, uv + dir * -0.5).rgb +
95
- textureSample(inputTexture, inputSampler, uv + dir * 0.5).rgb
96
- );
97
-
98
- let lumaB = luma(colorB);
99
-
100
- if lumaB < lumaMin || lumaB > lumaMax {
101
- return colorA;
102
- }
103
- return colorB;
104
- }
105
-
106
- fn applyVignette(color: vec3f, uv: vec2f) -> vec3f {
107
- let center = vec2f(0.5, 0.5);
108
- let dist = distance(uv, center);
109
- let vignette = 1.0 - smoothstep(uniforms.vignetteInner, uniforms.vignetteOuter, dist) * uniforms.vignetteStrength;
110
- return color * vignette;
111
- }
112
-
113
- @fragment
114
- fn fragmentMain(@location(0) uv: vec2f) -> @location(0) vec4f {
115
- var color = textureSample(inputTexture, inputSampler, uv).rgb;
116
-
117
- if (uniforms.flags & FLAG_FXAA) != 0u {
118
- color = applyFXAA(uv, color);
119
- }
120
-
121
- if (uniforms.flags & FLAG_TONEMAP) != 0u {
122
- color = aces(color * uniforms.exposure);
123
- }
124
-
125
- if (uniforms.flags & FLAG_VIGNETTE) != 0u {
126
- color = applyVignette(color, uv);
127
- }
128
-
129
- return vec4f(color, 1.0);
130
- }
131
- `
132
- );
133
- function N(e) {
134
- let u = null, l = null, a = null;
135
- return {
136
- id: "postprocess",
137
- phase: "postprocess",
138
- inputs: [{ id: "scene", access: "read" }],
139
- outputs: [{ id: "framebuffer", access: "write" }],
140
- execute(c) {
141
- const { device: t, encoder: m, canvasView: f, format: v, context: s } = c, x = s.canvas.width, g = s.canvas.height, d = c.getTextureView("scene");
142
- if (!u) {
143
- const p = t.createShaderModule({ code: E });
144
- u = t.createRenderPipeline({
145
- layout: "auto",
146
- vertex: { module: p, entryPoint: "vertexMain" },
147
- fragment: {
148
- module: p,
149
- entryPoint: "fragmentMain",
150
- targets: [{ format: v }]
151
- },
152
- primitive: { topology: "triangle-list" }
153
- });
154
- }
155
- l || (l = t.createBuffer({
156
- size: 32,
157
- usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST
158
- })), a || (a = t.createSampler({
159
- magFilter: "linear",
160
- minFilter: "linear"
161
- }));
162
- let n = 0;
163
- e.tonemap && (n |= 1), e.fxaa && (n |= 2), e.vignetteStrength > 0 && (n |= 4);
164
- const o = new ArrayBuffer(32), r = new Float32Array(o), A = new Uint32Array(o);
165
- r[0] = e.exposure, r[1] = e.vignetteStrength, r[2] = e.vignetteInner, r[3] = e.vignetteOuter, r[4] = 1 / x, r[5] = 1 / g, A[6] = n, t.queue.writeBuffer(l, 0, o);
166
- const S = t.createBindGroup({
167
- layout: u.getBindGroupLayout(0),
168
- entries: [
169
- { binding: 0, resource: d },
170
- { binding: 1, resource: a },
171
- { binding: 2, resource: { buffer: l } }
172
- ]
173
- }), i = m.beginRenderPass({
174
- colorAttachments: [
175
- {
176
- view: f,
177
- loadOp: "clear",
178
- storeOp: "store",
179
- clearValue: { r: 0, g: 0, b: 0, a: 1 }
180
- }
181
- ]
182
- });
183
- i.setPipeline(u), i.setBindGroup(0, S), i.draw(3), i.end();
184
- }
185
- };
186
- }
187
- export {
188
- N as createPostProcessNode
189
- };
190
- //# sourceMappingURL=postprocess.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postprocess.js","sources":["../../../src/standard/render/postprocess.ts"],"sourcesContent":["import type { ComputeNode, ExecutionContext } from \"../compute\";\n\nconst shader = /* wgsl */ `\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) uv: vec2f,\n}\n\n@vertex\nfn vertexMain(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {\n var positions = array<vec2f, 3>(\n vec2f(-1.0, -1.0),\n vec2f(3.0, -1.0),\n vec2f(-1.0, 3.0)\n );\n\n let pos = positions[vertexIndex];\n\n var output: VertexOutput;\n output.position = vec4f(pos, 0.0, 1.0);\n output.uv = (pos + 1.0) * 0.5;\n output.uv.y = 1.0 - output.uv.y;\n return output;\n}\n\n@group(0) @binding(0) var inputTexture: texture_2d<f32>;\n@group(0) @binding(1) var inputSampler: sampler;\n\nstruct Uniforms {\n exposure: f32,\n vignetteStrength: f32,\n vignetteInner: f32,\n vignetteOuter: f32,\n texelSizeX: f32,\n texelSizeY: f32,\n flags: u32,\n _pad: u32,\n}\n\n@group(0) @binding(2) var<uniform> uniforms: Uniforms;\n\nconst FLAG_TONEMAP: u32 = 1u;\nconst FLAG_FXAA: u32 = 2u;\nconst FLAG_VIGNETTE: u32 = 4u;\n\nfn aces(x: vec3f) -> vec3f {\n let a = 2.51;\n let b = 0.03;\n let c = 2.43;\n let d = 0.59;\n let e = 0.14;\n return saturate((x * (a * x + b)) / (x * (c * x + d) + e));\n}\n\nfn luma(color: vec3f) -> f32 {\n return dot(color, vec3f(0.299, 0.587, 0.114));\n}\n\nconst FXAA_REDUCE_MIN: f32 = 1.0 / 128.0;\nconst FXAA_REDUCE_MUL: f32 = 1.0 / 8.0;\nconst FXAA_SPAN_MAX: f32 = 8.0;\n\nfn applyFXAA(uv: vec2f, colorM: vec3f) -> vec3f {\n let texelSize = vec2f(uniforms.texelSizeX, uniforms.texelSizeY);\n\n let colorNW = textureSample(inputTexture, inputSampler, uv + vec2f(-1.0, -1.0) * texelSize).rgb;\n let colorNE = textureSample(inputTexture, inputSampler, uv + vec2f(1.0, -1.0) * texelSize).rgb;\n let colorSW = textureSample(inputTexture, inputSampler, uv + vec2f(-1.0, 1.0) * texelSize).rgb;\n let colorSE = textureSample(inputTexture, inputSampler, uv + vec2f(1.0, 1.0) * texelSize).rgb;\n\n let lumaM = luma(colorM);\n let lumaNW = luma(colorNW);\n let lumaNE = luma(colorNE);\n let lumaSW = luma(colorSW);\n let lumaSE = luma(colorSE);\n\n let lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));\n let lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));\n\n var dir: vec2f;\n dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n\n let dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * 0.25 * FXAA_REDUCE_MUL, FXAA_REDUCE_MIN);\n let rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);\n dir = clamp(dir * rcpDirMin, vec2f(-FXAA_SPAN_MAX), vec2f(FXAA_SPAN_MAX)) * texelSize;\n\n let colorA = 0.5 * (\n textureSample(inputTexture, inputSampler, uv + dir * (1.0 / 3.0 - 0.5)).rgb +\n textureSample(inputTexture, inputSampler, uv + dir * (2.0 / 3.0 - 0.5)).rgb\n );\n\n let colorB = colorA * 0.5 + 0.25 * (\n textureSample(inputTexture, inputSampler, uv + dir * -0.5).rgb +\n textureSample(inputTexture, inputSampler, uv + dir * 0.5).rgb\n );\n\n let lumaB = luma(colorB);\n\n if lumaB < lumaMin || lumaB > lumaMax {\n return colorA;\n }\n return colorB;\n}\n\nfn applyVignette(color: vec3f, uv: vec2f) -> vec3f {\n let center = vec2f(0.5, 0.5);\n let dist = distance(uv, center);\n let vignette = 1.0 - smoothstep(uniforms.vignetteInner, uniforms.vignetteOuter, dist) * uniforms.vignetteStrength;\n return color * vignette;\n}\n\n@fragment\nfn fragmentMain(@location(0) uv: vec2f) -> @location(0) vec4f {\n var color = textureSample(inputTexture, inputSampler, uv).rgb;\n\n if (uniforms.flags & FLAG_FXAA) != 0u {\n color = applyFXAA(uv, color);\n }\n\n if (uniforms.flags & FLAG_TONEMAP) != 0u {\n color = aces(color * uniforms.exposure);\n }\n\n if (uniforms.flags & FLAG_VIGNETTE) != 0u {\n color = applyVignette(color, uv);\n }\n\n return vec4f(color, 1.0);\n}\n`;\n\nconst FLAG_TONEMAP = 1;\nconst FLAG_FXAA = 2;\nconst FLAG_VIGNETTE = 4;\n\nexport interface PostProcessUniforms {\n tonemap: boolean;\n exposure: number;\n fxaa: boolean;\n vignetteStrength: number;\n vignetteInner: number;\n vignetteOuter: number;\n}\n\nexport function createPostProcessNode(uniforms: PostProcessUniforms): ComputeNode {\n let pipeline: GPURenderPipeline | null = null;\n let uniformBuffer: GPUBuffer | null = null;\n let sampler: GPUSampler | null = null;\n\n return {\n id: \"postprocess\",\n phase: \"postprocess\",\n inputs: [{ id: \"scene\", access: \"read\" }],\n outputs: [{ id: \"framebuffer\", access: \"write\" }],\n\n execute(ctx: ExecutionContext) {\n const { device, encoder, canvasView, format, context } = ctx;\n const width = context.canvas.width;\n const height = context.canvas.height;\n const sceneView = ctx.getTextureView(\"scene\")!;\n\n if (!pipeline) {\n const module = device.createShaderModule({ code: shader });\n pipeline = device.createRenderPipeline({\n layout: \"auto\",\n vertex: { module, entryPoint: \"vertexMain\" },\n fragment: {\n module,\n entryPoint: \"fragmentMain\",\n targets: [{ format }],\n },\n primitive: { topology: \"triangle-list\" },\n });\n }\n\n if (!uniformBuffer) {\n uniformBuffer = device.createBuffer({\n size: 32,\n usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n });\n }\n\n if (!sampler) {\n sampler = device.createSampler({\n magFilter: \"linear\",\n minFilter: \"linear\",\n });\n }\n\n let flags = 0;\n if (uniforms.tonemap) flags |= FLAG_TONEMAP;\n if (uniforms.fxaa) flags |= FLAG_FXAA;\n if (uniforms.vignetteStrength > 0) flags |= FLAG_VIGNETTE;\n\n const data = new ArrayBuffer(32);\n const floats = new Float32Array(data);\n const uints = new Uint32Array(data);\n floats[0] = uniforms.exposure;\n floats[1] = uniforms.vignetteStrength;\n floats[2] = uniforms.vignetteInner;\n floats[3] = uniforms.vignetteOuter;\n floats[4] = 1.0 / width;\n floats[5] = 1.0 / height;\n uints[6] = flags;\n\n device.queue.writeBuffer(uniformBuffer, 0, data);\n\n const bindGroup = device.createBindGroup({\n layout: pipeline.getBindGroupLayout(0),\n entries: [\n { binding: 0, resource: sceneView },\n { binding: 1, resource: sampler },\n { binding: 2, resource: { buffer: uniformBuffer } },\n ],\n });\n\n const pass = encoder.beginRenderPass({\n colorAttachments: [\n {\n view: canvasView,\n loadOp: \"clear\" as const,\n storeOp: \"store\" as const,\n clearValue: { r: 0, g: 0, b: 0, a: 1 },\n },\n ],\n });\n\n pass.setPipeline(pipeline);\n pass.setBindGroup(0, bindGroup);\n pass.draw(3);\n pass.end();\n },\n };\n}\n"],"names":["shader","createPostProcessNode","uniforms","pipeline","uniformBuffer","sampler","ctx","device","encoder","canvasView","format","context","width","height","sceneView","module","flags","data","floats","uints","bindGroup","pass"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export declare const SCENE_UNIFORM_SIZE = 176;
2
- export declare const DEPTH_FORMAT: GPUTextureFormat;
3
- export declare function createSceneBuffer(device: GPUDevice): GPUBuffer;
4
- export declare function ensureRenderTextures(device: GPUDevice, format: GPUTextureFormat, width: number, height: number, textures: Map<string, GPUTexture>, textureViews: Map<string, GPUTextureView>): void;
5
- export declare function perspective(fov: number, aspect: number, near: number, far: number): Float32Array;
6
- export declare function multiply(a: Float32Array, b: Float32Array): Float32Array;
7
- export declare function invert(m: Float32Array): Float32Array;
8
- //# sourceMappingURL=scene.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/standard/render/scene.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,YAAY,EAAE,gBAAgC,CAAC;AAE5D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAM9D;AAED,wBAAgB,oBAAoB,CAChC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAC1C,IAAI,CAyBN;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAqBhG;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAYvE;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAiCpD"}
@@ -1,67 +0,0 @@
1
- const g = 176, i = "depth24plus";
2
- function p(t) {
3
- return t.createBuffer({
4
- label: "scene",
5
- size: 176,
6
- usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC
7
- });
8
- }
9
- function N(t, e, s, r, n, c) {
10
- const o = n.get("scene");
11
- if (o && o.width === s && o.height === r) return;
12
- o?.destroy(), n.get("depth")?.destroy();
13
- const u = t.createTexture({
14
- label: "scene",
15
- size: { width: s, height: r },
16
- format: e,
17
- usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING
18
- }), a = t.createTexture({
19
- label: "depth",
20
- size: { width: s, height: r },
21
- format: i,
22
- usage: GPUTextureUsage.RENDER_ATTACHMENT
23
- });
24
- n.set("scene", u), c.set("scene", u.createView()), n.set("depth", a), c.set("depth", a.createView());
25
- }
26
- function R(t, e, s, r) {
27
- const n = 1 / Math.tan(t * Math.PI / 360), c = 1 / (s - r);
28
- return new Float32Array([
29
- n / e,
30
- 0,
31
- 0,
32
- 0,
33
- 0,
34
- n,
35
- 0,
36
- 0,
37
- 0,
38
- 0,
39
- (r + s) * c,
40
- -1,
41
- 0,
42
- 0,
43
- 2 * r * s * c,
44
- 0
45
- ]);
46
- }
47
- function P(t, e) {
48
- const s = new Float32Array(16);
49
- for (let r = 0; r < 4; r++)
50
- for (let n = 0; n < 4; n++)
51
- s[n * 4 + r] = t[r] * e[n * 4] + t[r + 4] * e[n * 4 + 1] + t[r + 8] * e[n * 4 + 2] + t[r + 12] * e[n * 4 + 3];
52
- return s;
53
- }
54
- function _(t) {
55
- const e = new Float32Array(16), s = t[0], r = t[1], n = t[2], c = t[4], o = t[5], u = t[6], a = t[8], E = t[9], l = t[10], f = t[12], T = t[13], U = t[14];
56
- return e[0] = s, e[1] = c, e[2] = a, e[3] = 0, e[4] = r, e[5] = o, e[6] = E, e[7] = 0, e[8] = n, e[9] = u, e[10] = l, e[11] = 0, e[12] = -(s * f + r * T + n * U), e[13] = -(c * f + o * T + u * U), e[14] = -(a * f + E * T + l * U), e[15] = 1, e;
57
- }
58
- export {
59
- i as DEPTH_FORMAT,
60
- g as SCENE_UNIFORM_SIZE,
61
- p as createSceneBuffer,
62
- N as ensureRenderTextures,
63
- _ as invert,
64
- P as multiply,
65
- R as perspective
66
- };
67
- //# sourceMappingURL=scene.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scene.js","sources":["../../../src/standard/render/scene.ts"],"sourcesContent":["export const SCENE_UNIFORM_SIZE = 176; // viewProj (64) + cameraWorld (64) + ambient (16) + sunDir (16) + sunColor (16)\nexport const DEPTH_FORMAT: GPUTextureFormat = \"depth24plus\";\n\nexport function createSceneBuffer(device: GPUDevice): GPUBuffer {\n return device.createBuffer({\n label: \"scene\",\n size: SCENE_UNIFORM_SIZE,\n usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC,\n });\n}\n\nexport function ensureRenderTextures(\n device: GPUDevice,\n format: GPUTextureFormat,\n width: number,\n height: number,\n textures: Map<string, GPUTexture>,\n textureViews: Map<string, GPUTextureView>\n): void {\n const existing = textures.get(\"scene\");\n if (existing && existing.width === width && existing.height === height) return;\n\n existing?.destroy();\n textures.get(\"depth\")?.destroy();\n\n const scene = device.createTexture({\n label: \"scene\",\n size: { width, height },\n format,\n usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TEXTURE_BINDING,\n });\n\n const depth = device.createTexture({\n label: \"depth\",\n size: { width, height },\n format: DEPTH_FORMAT,\n usage: GPUTextureUsage.RENDER_ATTACHMENT,\n });\n\n textures.set(\"scene\", scene);\n textureViews.set(\"scene\", scene.createView());\n textures.set(\"depth\", depth);\n textureViews.set(\"depth\", depth.createView());\n}\n\nexport function perspective(fov: number, aspect: number, near: number, far: number): Float32Array {\n const f = 1 / Math.tan((fov * Math.PI) / 360);\n const nf = 1 / (near - far);\n return new Float32Array([\n f / aspect,\n 0,\n 0,\n 0,\n 0,\n f,\n 0,\n 0,\n 0,\n 0,\n (far + near) * nf,\n -1,\n 0,\n 0,\n 2 * far * near * nf,\n 0,\n ]);\n}\n\nexport function multiply(a: Float32Array, b: Float32Array): Float32Array {\n const out = new Float32Array(16);\n for (let i = 0; i < 4; i++) {\n for (let j = 0; j < 4; j++) {\n out[j * 4 + i] =\n a[i] * b[j * 4] +\n a[i + 4] * b[j * 4 + 1] +\n a[i + 8] * b[j * 4 + 2] +\n a[i + 12] * b[j * 4 + 3];\n }\n }\n return out;\n}\n\nexport function invert(m: Float32Array): Float32Array {\n const out = new Float32Array(16);\n const r00 = m[0],\n r01 = m[1],\n r02 = m[2];\n const r10 = m[4],\n r11 = m[5],\n r12 = m[6];\n const r20 = m[8],\n r21 = m[9],\n r22 = m[10];\n const tx = m[12],\n ty = m[13],\n tz = m[14];\n\n out[0] = r00;\n out[1] = r10;\n out[2] = r20;\n out[3] = 0;\n out[4] = r01;\n out[5] = r11;\n out[6] = r21;\n out[7] = 0;\n out[8] = r02;\n out[9] = r12;\n out[10] = r22;\n out[11] = 0;\n out[12] = -(r00 * tx + r01 * ty + r02 * tz);\n out[13] = -(r10 * tx + r11 * ty + r12 * tz);\n out[14] = -(r20 * tx + r21 * ty + r22 * tz);\n out[15] = 1;\n\n return out;\n}\n"],"names":["SCENE_UNIFORM_SIZE","DEPTH_FORMAT","createSceneBuffer","device","ensureRenderTextures","format","width","height","textures","textureViews","existing","scene","depth","perspective","fov","aspect","near","far","f","nf","multiply","a","b","out","i","j","invert","m","r00","r01","r02","r10","r11","r12","r20","r21","r22","tx","ty","tz"],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { Plugin } from '../../core';
2
- export declare function rotate(eid: number, dx: number, dy: number, dz: number): void;
3
- interface EulerProxy extends Array<number> {
4
- get(eid: number): number;
5
- set(eid: number, value: number): void;
6
- }
7
- export declare const Transform: {
8
- posX: Float32Array;
9
- posY: Float32Array;
10
- posZ: Float32Array;
11
- quatX: Float32Array;
12
- quatY: Float32Array;
13
- quatZ: Float32Array;
14
- quatW: Float32Array;
15
- scaleX: Float32Array;
16
- scaleY: Float32Array;
17
- scaleZ: Float32Array;
18
- eulerX: EulerProxy;
19
- eulerY: EulerProxy;
20
- eulerZ: EulerProxy;
21
- };
22
- export declare const WorldTransform: {
23
- data: Float32Array;
24
- };
25
- export declare const TransformsPlugin: Plugin;
26
- export {};
27
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/standard/transforms/index.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,KAAK,MAAM,EACd,MAAM,YAAY,CAAC;AAIpB,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAc5E;AAED,UAAU,UAAW,SAAQ,KAAK,CAAC,MAAM,CAAC;IACtC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AA6CD,eAAO,MAAM,SAAS,EAAE;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CAetB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAEhD,CAAC;AAqEF,eAAO,MAAM,gBAAgB,EAAE,MAI9B,CAAC"}
@@ -1,122 +0,0 @@
1
- import { Not as m, Wildcard as f, Hierarchy as Y } from "bitecs";
2
- import { MAX_ENTITIES as n } from "../../core/state.js";
3
- import "../../core/builder.js";
4
- import { setTraits as Z } from "../../core/component.js";
5
- import { ChildOf as q } from "../../core/relation.js";
6
- import { quaternionToEuler as y, eulerToQuaternion as w, rotateQuaternion as A } from "../../core/math.js";
7
- import "fast-xml-parser";
8
- import { init as F, posX as N, posY as W, posZ as T, quatX as g, quatY as x, quatZ as z, quatW as b, scaleX as P, scaleY as E, scaleZ as _, matrices as h, indices as p, NoParent as C, parents as X, compute as I } from "./wasm.js";
9
- function j(a, e, u, r) {
10
- const o = A(
11
- t.quatX[a],
12
- t.quatY[a],
13
- t.quatZ[a],
14
- t.quatW[a],
15
- e,
16
- u,
17
- r
18
- );
19
- t.quatX[a] = o.x, t.quatY[a] = o.y, t.quatZ[a] = o.z, t.quatW[a] = o.w;
20
- }
21
- function i(a) {
22
- function e(r) {
23
- return y(
24
- t.quatX[r],
25
- t.quatY[r],
26
- t.quatZ[r],
27
- t.quatW[r]
28
- )[a];
29
- }
30
- function u(r, o) {
31
- const s = y(
32
- t.quatX[r],
33
- t.quatY[r],
34
- t.quatZ[r],
35
- t.quatW[r]
36
- );
37
- s[a] = o;
38
- const l = w(s.x, s.y, s.z);
39
- t.quatX[r] = l.x, t.quatY[r] = l.y, t.quatZ[r] = l.z, t.quatW[r] = l.w;
40
- }
41
- return new Proxy([], {
42
- get(r, o) {
43
- if (o === "get") return e;
44
- if (o === "set") return u;
45
- const s = Number(o);
46
- if (!Number.isNaN(s))
47
- return e(s);
48
- },
49
- set(r, o, s) {
50
- const l = Number(o);
51
- return Number.isNaN(l) ? !1 : (u(l, s), !0);
52
- }
53
- });
54
- }
55
- const t = {
56
- posX: new Float32Array(n),
57
- posY: new Float32Array(n),
58
- posZ: new Float32Array(n),
59
- quatX: new Float32Array(n),
60
- quatY: new Float32Array(n),
61
- quatZ: new Float32Array(n),
62
- quatW: new Float32Array(n),
63
- scaleX: new Float32Array(n),
64
- scaleY: new Float32Array(n),
65
- scaleZ: new Float32Array(n),
66
- eulerX: i("x"),
67
- eulerY: i("y"),
68
- eulerZ: i("z")
69
- }, c = {
70
- data: new Float32Array(n * 16)
71
- };
72
- Z(t, {
73
- defaults: () => ({
74
- posX: 0,
75
- posY: 0,
76
- posZ: 0,
77
- quatX: 0,
78
- quatY: 0,
79
- quatZ: 0,
80
- quatW: 1,
81
- scaleX: 1,
82
- scaleY: 1,
83
- scaleZ: 1
84
- }),
85
- accessors: {
86
- eulerX: t.eulerX,
87
- eulerY: t.eulerY,
88
- eulerZ: t.eulerZ
89
- }
90
- });
91
- async function Q() {
92
- await F(), t.posX = N, t.posY = W, t.posZ = T, t.quatX = g, t.quatY = x, t.quatZ = z, t.quatW = b, t.scaleX = P, t.scaleY = E, t.scaleZ = _, c.data = h;
93
- }
94
- const S = {
95
- group: "simulation",
96
- last: !0,
97
- update(a) {
98
- for (const u of a.query([t, m(c)]))
99
- a.addComponent(u, c);
100
- let e = 0;
101
- for (const u of a.query([t, m(q.relation(f))]))
102
- p[e] = u, X[e] = C, e++;
103
- for (const u of a.query([
104
- t,
105
- q.relation(f),
106
- Y(q.relation)
107
- ]))
108
- p[e] = u, X[e] = a.getRelationTargets(u, q)[0], e++;
109
- I(e);
110
- }
111
- }, k = {
112
- systems: [S],
113
- components: { Transform: t, WorldTransform: c },
114
- initialize: Q
115
- };
116
- export {
117
- t as Transform,
118
- k as TransformsPlugin,
119
- c as WorldTransform,
120
- j as rotate
121
- };
122
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/standard/transforms/index.ts"],"sourcesContent":["import { Hierarchy, Not, Wildcard } from \"bitecs\";\nimport {\n ChildOf,\n MAX_ENTITIES,\n rotateQuaternion,\n eulerToQuaternion,\n quaternionToEuler,\n type State,\n type System,\n type Plugin,\n} from \"../../core\";\nimport { setTraits } from \"../../core/component\";\nimport * as wasm from \"./wasm\";\n\nexport function rotate(eid: number, dx: number, dy: number, dz: number): void {\n const q = rotateQuaternion(\n Transform.quatX[eid],\n Transform.quatY[eid],\n Transform.quatZ[eid],\n Transform.quatW[eid],\n dx,\n dy,\n dz\n );\n Transform.quatX[eid] = q.x;\n Transform.quatY[eid] = q.y;\n Transform.quatZ[eid] = q.z;\n Transform.quatW[eid] = q.w;\n}\n\ninterface EulerProxy extends Array<number> {\n get(eid: number): number;\n set(eid: number, value: number): void;\n}\n\nfunction eulerProxy(axis: \"x\" | \"y\" | \"z\"): EulerProxy {\n function getValue(eid: number): number {\n const e = quaternionToEuler(\n Transform.quatX[eid],\n Transform.quatY[eid],\n Transform.quatZ[eid],\n Transform.quatW[eid]\n );\n return e[axis];\n }\n\n function setValue(eid: number, value: number): void {\n const e = quaternionToEuler(\n Transform.quatX[eid],\n Transform.quatY[eid],\n Transform.quatZ[eid],\n Transform.quatW[eid]\n );\n e[axis] = value;\n const q = eulerToQuaternion(e.x, e.y, e.z);\n Transform.quatX[eid] = q.x;\n Transform.quatY[eid] = q.y;\n Transform.quatZ[eid] = q.z;\n Transform.quatW[eid] = q.w;\n }\n\n return new Proxy([] as unknown as EulerProxy, {\n get(_, prop) {\n if (prop === \"get\") return getValue;\n if (prop === \"set\") return setValue;\n const eid = Number(prop);\n if (Number.isNaN(eid)) return undefined;\n return getValue(eid);\n },\n set(_, prop, value) {\n const eid = Number(prop);\n if (Number.isNaN(eid)) return false;\n setValue(eid, value);\n return true;\n },\n });\n}\n\nexport const Transform: {\n posX: Float32Array;\n posY: Float32Array;\n posZ: Float32Array;\n quatX: Float32Array;\n quatY: Float32Array;\n quatZ: Float32Array;\n quatW: Float32Array;\n scaleX: Float32Array;\n scaleY: Float32Array;\n scaleZ: Float32Array;\n eulerX: EulerProxy;\n eulerY: EulerProxy;\n eulerZ: EulerProxy;\n} = {\n posX: new Float32Array(MAX_ENTITIES),\n posY: new Float32Array(MAX_ENTITIES),\n posZ: new Float32Array(MAX_ENTITIES),\n quatX: new Float32Array(MAX_ENTITIES),\n quatY: new Float32Array(MAX_ENTITIES),\n quatZ: new Float32Array(MAX_ENTITIES),\n quatW: new Float32Array(MAX_ENTITIES),\n scaleX: new Float32Array(MAX_ENTITIES),\n scaleY: new Float32Array(MAX_ENTITIES),\n scaleZ: new Float32Array(MAX_ENTITIES),\n eulerX: eulerProxy(\"x\"),\n eulerY: eulerProxy(\"y\"),\n eulerZ: eulerProxy(\"z\"),\n};\n\nexport const WorldTransform: { data: Float32Array } = {\n data: new Float32Array(MAX_ENTITIES * 16),\n};\n\nsetTraits(Transform, {\n defaults: () => ({\n posX: 0,\n posY: 0,\n posZ: 0,\n quatX: 0,\n quatY: 0,\n quatZ: 0,\n quatW: 1,\n scaleX: 1,\n scaleY: 1,\n scaleZ: 1,\n }),\n accessors: {\n eulerX: Transform.eulerX,\n eulerY: Transform.eulerY,\n eulerZ: Transform.eulerZ,\n },\n});\n\nasync function init(): Promise<void> {\n await wasm.init();\n\n Transform.posX = wasm.posX;\n Transform.posY = wasm.posY;\n Transform.posZ = wasm.posZ;\n Transform.quatX = wasm.quatX;\n Transform.quatY = wasm.quatY;\n Transform.quatZ = wasm.quatZ;\n Transform.quatW = wasm.quatW;\n Transform.scaleX = wasm.scaleX;\n Transform.scaleY = wasm.scaleY;\n Transform.scaleZ = wasm.scaleZ;\n WorldTransform.data = wasm.matrices;\n}\n\nconst TransformSystem: System = {\n group: \"simulation\",\n last: true,\n\n update(state: State) {\n for (const eid of state.query([Transform, Not(WorldTransform)])) {\n state.addComponent(eid, WorldTransform);\n }\n\n let count = 0;\n\n for (const eid of state.query([Transform, Not(ChildOf.relation(Wildcard))])) {\n wasm.indices[count] = eid;\n wasm.parents[count] = wasm.NoParent;\n count++;\n }\n\n for (const eid of state.query([\n Transform,\n ChildOf.relation(Wildcard),\n Hierarchy(ChildOf.relation),\n ])) {\n wasm.indices[count] = eid;\n wasm.parents[count] = state.getRelationTargets(eid, ChildOf)[0];\n count++;\n }\n\n wasm.compute(count);\n },\n};\n\nexport const TransformsPlugin: Plugin = {\n systems: [TransformSystem],\n components: { Transform, WorldTransform },\n initialize: init,\n};\n"],"names":["rotate","eid","dx","dy","dz","q","rotateQuaternion","Transform","eulerProxy","axis","getValue","quaternionToEuler","setValue","value","e","eulerToQuaternion","_","prop","MAX_ENTITIES","WorldTransform","setTraits","init","wasm.init","wasm.posX","wasm.posY","wasm.posZ","wasm.quatX","wasm.quatY","wasm.quatZ","wasm.quatW","wasm.scaleX","wasm.scaleY","wasm.scaleZ","wasm.matrices","TransformSystem","state","Not","count","ChildOf","Wildcard","wasm.indices","wasm.parents","wasm.NoParent","Hierarchy","wasm.compute","TransformsPlugin"],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- export declare let posX: Float32Array;
2
- export declare let posY: Float32Array;
3
- export declare let posZ: Float32Array;
4
- export declare let quatX: Float32Array;
5
- export declare let quatY: Float32Array;
6
- export declare let quatZ: Float32Array;
7
- export declare let quatW: Float32Array;
8
- export declare let scaleX: Float32Array;
9
- export declare let scaleY: Float32Array;
10
- export declare let scaleZ: Float32Array;
11
- export declare let matrices: Float32Array;
12
- export declare let indices: Uint32Array;
13
- export declare let parents: Uint32Array;
14
- export declare let NoParent: number;
15
- export declare function init(): Promise<void>;
16
- export declare function compute(count: number): void;
17
- //# sourceMappingURL=wasm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../src/standard/transforms/wasm.ts"],"names":[],"mappings":"AAoBA,eAAO,IAAI,IAAI,EAAE,YAAY,CAAC;AAC9B,eAAO,IAAI,IAAI,EAAE,YAAY,CAAC;AAC9B,eAAO,IAAI,IAAI,EAAE,YAAY,CAAC;AAC9B,eAAO,IAAI,KAAK,EAAE,YAAY,CAAC;AAC/B,eAAO,IAAI,KAAK,EAAE,YAAY,CAAC;AAC/B,eAAO,IAAI,KAAK,EAAE,YAAY,CAAC;AAC/B,eAAO,IAAI,KAAK,EAAE,YAAY,CAAC;AAC/B,eAAO,IAAI,MAAM,EAAE,YAAY,CAAC;AAChC,eAAO,IAAI,MAAM,EAAE,YAAY,CAAC;AAChC,eAAO,IAAI,MAAM,EAAE,YAAY,CAAC;AAChC,eAAO,IAAI,QAAQ,EAAE,YAAY,CAAC;AAClC,eAAO,IAAI,OAAO,EAAE,WAAW,CAAC;AAChC,eAAO,IAAI,OAAO,EAAE,WAAW,CAAC;AAChC,eAAO,IAAI,QAAQ,EAAE,MAAM,CAAC;AAE5B,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB1C;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE3C"}
@@ -1,31 +0,0 @@
1
- import _, { init_data as n, get_max_entities as l, get_pos_x_ptr as o, get_pos_y_ptr as s, get_pos_z_ptr as p, get_quat_x_ptr as i, get_quat_y_ptr as c, get_quat_z_ptr as y, get_quat_w_ptr as w, get_scale_x_ptr as g, get_scale_y_ptr as u, get_scale_z_ptr as A, get_matrices_ptr as m, get_indices_ptr as F, get_parents_ptr as f, get_no_parent as q, compute_transforms as x } from "../../rust/transforms/pkg/shallot_transforms.js";
2
- let a, b, d, z, X, Y, Z, U, E, N, P, W, h, j;
3
- async function v() {
4
- if (a) return;
5
- const r = await _();
6
- n();
7
- const t = r.memory.buffer, e = l();
8
- a = new Float32Array(t, o(), e), b = new Float32Array(t, s(), e), d = new Float32Array(t, p(), e), z = new Float32Array(t, i(), e), X = new Float32Array(t, c(), e), Y = new Float32Array(t, y(), e), Z = new Float32Array(t, w(), e), U = new Float32Array(t, g(), e), E = new Float32Array(t, u(), e), N = new Float32Array(t, A(), e), P = new Float32Array(t, m(), e * 16), W = new Uint32Array(t, F(), e), h = new Uint32Array(t, f(), e), j = q();
9
- }
10
- function B(r) {
11
- x(r);
12
- }
13
- export {
14
- j as NoParent,
15
- B as compute,
16
- W as indices,
17
- v as init,
18
- P as matrices,
19
- h as parents,
20
- a as posX,
21
- b as posY,
22
- d as posZ,
23
- Z as quatW,
24
- z as quatX,
25
- X as quatY,
26
- Y as quatZ,
27
- U as scaleX,
28
- E as scaleY,
29
- N as scaleZ
30
- };
31
- //# sourceMappingURL=wasm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wasm.js","sources":["../../../src/standard/transforms/wasm.ts"],"sourcesContent":["import wasmInit, {\n get_pos_x_ptr,\n get_pos_y_ptr,\n get_pos_z_ptr,\n get_quat_x_ptr,\n get_quat_y_ptr,\n get_quat_z_ptr,\n get_quat_w_ptr,\n get_scale_x_ptr,\n get_scale_y_ptr,\n get_scale_z_ptr,\n get_matrices_ptr,\n get_indices_ptr,\n get_parents_ptr,\n get_max_entities,\n get_no_parent,\n init_data,\n compute_transforms,\n} from \"../../../rust/transforms/pkg/shallot_transforms.js\";\n\nexport let posX: Float32Array;\nexport let posY: Float32Array;\nexport let posZ: Float32Array;\nexport let quatX: Float32Array;\nexport let quatY: Float32Array;\nexport let quatZ: Float32Array;\nexport let quatW: Float32Array;\nexport let scaleX: Float32Array;\nexport let scaleY: Float32Array;\nexport let scaleZ: Float32Array;\nexport let matrices: Float32Array;\nexport let indices: Uint32Array;\nexport let parents: Uint32Array;\nexport let NoParent: number;\n\nexport async function init(): Promise<void> {\n if (posX) return;\n const wasm = await wasmInit();\n init_data();\n const buffer = wasm.memory.buffer;\n const maxEntities = get_max_entities();\n\n posX = new Float32Array(buffer, get_pos_x_ptr(), maxEntities);\n posY = new Float32Array(buffer, get_pos_y_ptr(), maxEntities);\n posZ = new Float32Array(buffer, get_pos_z_ptr(), maxEntities);\n quatX = new Float32Array(buffer, get_quat_x_ptr(), maxEntities);\n quatY = new Float32Array(buffer, get_quat_y_ptr(), maxEntities);\n quatZ = new Float32Array(buffer, get_quat_z_ptr(), maxEntities);\n quatW = new Float32Array(buffer, get_quat_w_ptr(), maxEntities);\n scaleX = new Float32Array(buffer, get_scale_x_ptr(), maxEntities);\n scaleY = new Float32Array(buffer, get_scale_y_ptr(), maxEntities);\n scaleZ = new Float32Array(buffer, get_scale_z_ptr(), maxEntities);\n matrices = new Float32Array(buffer, get_matrices_ptr(), maxEntities * 16);\n indices = new Uint32Array(buffer, get_indices_ptr(), maxEntities);\n parents = new Uint32Array(buffer, get_parents_ptr(), maxEntities);\n NoParent = get_no_parent();\n}\n\nexport function compute(count: number): void {\n compute_transforms(count);\n}\n"],"names":["posX","posY","posZ","quatX","quatY","quatZ","quatW","scaleX","scaleY","scaleZ","matrices","indices","parents","NoParent","init","wasm","wasmInit","init_data","buffer","maxEntities","get_max_entities","get_pos_x_ptr","get_pos_y_ptr","get_pos_z_ptr","get_quat_x_ptr","get_quat_y_ptr","get_quat_z_ptr","get_quat_w_ptr","get_scale_x_ptr","get_scale_y_ptr","get_scale_z_ptr","get_matrices_ptr","get_indices_ptr","get_parents_ptr","get_no_parent","compute","count","compute_transforms"],"mappings":";AAoBO,IAAIA,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC;AAEX,eAAsBC,IAAsB;AACxC,MAAId,EAAM;AACV,QAAMe,IAAO,MAAMC,EAAA;AACnB,EAAAC,EAAA;AACA,QAAMC,IAASH,EAAK,OAAO,QACrBI,IAAcC,EAAA;AAEpB,EAAApB,IAAO,IAAI,aAAakB,GAAQG,EAAA,GAAiBF,CAAW,GAC5DlB,IAAO,IAAI,aAAaiB,GAAQI,EAAA,GAAiBH,CAAW,GAC5DjB,IAAO,IAAI,aAAagB,GAAQK,EAAA,GAAiBJ,CAAW,GAC5DhB,IAAQ,IAAI,aAAae,GAAQM,EAAA,GAAkBL,CAAW,GAC9Df,IAAQ,IAAI,aAAac,GAAQO,EAAA,GAAkBN,CAAW,GAC9Dd,IAAQ,IAAI,aAAaa,GAAQQ,EAAA,GAAkBP,CAAW,GAC9Db,IAAQ,IAAI,aAAaY,GAAQS,EAAA,GAAkBR,CAAW,GAC9DZ,IAAS,IAAI,aAAaW,GAAQU,EAAA,GAAmBT,CAAW,GAChEX,IAAS,IAAI,aAAaU,GAAQW,EAAA,GAAmBV,CAAW,GAChEV,IAAS,IAAI,aAAaS,GAAQY,EAAA,GAAmBX,CAAW,GAChET,IAAW,IAAI,aAAaQ,GAAQa,EAAA,GAAoBZ,IAAc,EAAE,GACxER,IAAU,IAAI,YAAYO,GAAQc,EAAA,GAAmBb,CAAW,GAChEP,IAAU,IAAI,YAAYM,GAAQe,EAAA,GAAmBd,CAAW,GAChEN,IAAWqB,EAAA;AACf;AAEO,SAASC,EAAQC,GAAqB;AACzC,EAAAC,EAAmBD,CAAK;AAC5B;"}
@@ -1,5 +0,0 @@
1
- export type EasingFn = (t: number) => number;
2
- export declare const EASING_FUNCTIONS: readonly EasingFn[];
3
- export declare function getEasingIndex(name: string): number;
4
- export declare function getEasing(index: number): EasingFn;
5
- //# sourceMappingURL=easing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"easing.d.ts","sourceRoot":"","sources":["../../../src/standard/tween/easing.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AA8F7C,eAAO,MAAM,gBAAgB,EAAE,SAAS,QAAQ,EAgCtC,CAAC;AAoCX,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAEjD"}
@@ -1,80 +0,0 @@
1
- const a = (e) => e, o = (e) => e * e, c = (e) => e * (2 - e), u = (e) => e < 0.5 ? 2 * e * e : -1 + (4 - 2 * e) * e, i = (e) => e * e * e, t = (e) => --e * e * e + 1, r = (e) => e < 0.5 ? 4 * e * e * e : (e - 1) * (2 * e - 2) * (2 * e - 2) + 1, I = (e) => e * e * e * e, h = (e) => 1 - --e * e * e * e, M = (e) => e < 0.5 ? 8 * e * e * e * e : 1 - 8 * --e * e * e * e, O = (e) => e * e * e * e * e, p = (e) => 1 + --e * e * e * e * e, d = (e) => e < 0.5 ? 16 * e * e * e * e * e : 1 + 16 * --e * e * e * e * e, q = (e) => 1 - Math.cos(e * Math.PI / 2), b = (e) => Math.sin(e * Math.PI / 2), w = (e) => -(Math.cos(Math.PI * e) - 1) / 2, E = (e) => e === 0 ? 0 : Math.pow(2, 10 * e - 10), Q = (e) => e === 1 ? 1 : 1 - Math.pow(2, -10 * e), l = (e) => e === 0 ? 0 : e === 1 ? 1 : e < 0.5 ? Math.pow(2, 20 * e - 10) / 2 : (2 - Math.pow(2, -20 * e + 10)) / 2, x = (e) => 1 - Math.sqrt(1 - e * e), C = (e) => Math.sqrt(1 - --e * e), P = (e) => e < 0.5 ? (1 - Math.sqrt(1 - 4 * e * e)) / 2 : (Math.sqrt(1 - (-2 * e + 2) * (-2 * e + 2)) + 1) / 2, k = (e) => 2.70158 * e * e * e - 1.70158 * e * e, B = (e) => 1 + 2.70158 * Math.pow(e - 1, 3) + 1.70158 * Math.pow(e - 1, 2), S = (e) => {
2
- const n = 2.5949095;
3
- return e < 0.5 ? Math.pow(2 * e, 2) * ((n + 1) * 2 * e - n) / 2 : (Math.pow(2 * e - 2, 2) * ((n + 1) * (e * 2 - 2) + n) + 2) / 2;
4
- }, f = (e) => e === 0 ? 0 : e === 1 ? 1 : -Math.pow(2, 10 * e - 10) * Math.sin((e * 10 - 10.75) * (2 * Math.PI / 3)), N = (e) => e === 0 ? 0 : e === 1 ? 1 : Math.pow(2, -10 * e) * Math.sin((e * 10 - 0.75) * (2 * Math.PI / 3)) + 1, g = (e) => e === 0 ? 0 : e === 1 ? 1 : e < 0.5 ? -(Math.pow(2, 20 * e - 10) * Math.sin((20 * e - 11.125) * (2 * Math.PI / 4.5))) / 2 : Math.pow(2, -20 * e + 10) * Math.sin((20 * e - 11.125) * (2 * Math.PI / 4.5)) / 2 + 1, s = (e) => e < 0.36363636363636365 ? 7.5625 * e * e : e < 0.7272727272727273 ? 7.5625 * (e -= 0.5454545454545454) * e + 0.75 : e < 0.9090909090909091 ? 7.5625 * (e -= 0.8181818181818182) * e + 0.9375 : 7.5625 * (e -= 0.9545454545454546) * e + 0.984375, A = (e) => 1 - s(1 - e), G = (e) => e < 0.5 ? (1 - s(1 - 2 * e)) / 2 : (1 + s(2 * e - 1)) / 2, _ = [
5
- a,
6
- o,
7
- c,
8
- u,
9
- i,
10
- t,
11
- r,
12
- I,
13
- h,
14
- M,
15
- O,
16
- p,
17
- d,
18
- q,
19
- b,
20
- w,
21
- E,
22
- Q,
23
- l,
24
- x,
25
- C,
26
- P,
27
- k,
28
- B,
29
- S,
30
- f,
31
- N,
32
- g,
33
- A,
34
- s,
35
- G
36
- ], D = {
37
- linear: 0,
38
- "ease-in-quad": 1,
39
- "ease-out-quad": 2,
40
- "ease-in-out-quad": 3,
41
- "ease-in-cubic": 4,
42
- "ease-out-cubic": 5,
43
- "ease-in-out-cubic": 6,
44
- "ease-in-quart": 7,
45
- "ease-out-quart": 8,
46
- "ease-in-out-quart": 9,
47
- "ease-in-quint": 10,
48
- "ease-out-quint": 11,
49
- "ease-in-out-quint": 12,
50
- "ease-in-sine": 13,
51
- "ease-out-sine": 14,
52
- "ease-in-out-sine": 15,
53
- "ease-in-expo": 16,
54
- "ease-out-expo": 17,
55
- "ease-in-out-expo": 18,
56
- "ease-in-circ": 19,
57
- "ease-out-circ": 20,
58
- "ease-in-out-circ": 21,
59
- "ease-in-back": 22,
60
- "ease-out-back": 23,
61
- "ease-in-out-back": 24,
62
- "ease-in-elastic": 25,
63
- "ease-out-elastic": 26,
64
- "ease-in-out-elastic": 27,
65
- "ease-in-bounce": 28,
66
- "ease-out-bounce": 29,
67
- "ease-in-out-bounce": 30
68
- };
69
- function T(e) {
70
- return D[e] ?? 0;
71
- }
72
- function U(e) {
73
- return _[e] ?? a;
74
- }
75
- export {
76
- _ as EASING_FUNCTIONS,
77
- U as getEasing,
78
- T as getEasingIndex
79
- };
80
- //# sourceMappingURL=easing.js.map