@multiplekex/shallot 0.1.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 (196) hide show
  1. package/dist/core/builder.d.ts +25 -0
  2. package/dist/core/builder.d.ts.map +1 -0
  3. package/dist/core/builder.js +88 -0
  4. package/dist/core/builder.js.map +1 -0
  5. package/dist/core/component.d.ts +29 -0
  6. package/dist/core/component.d.ts.map +1 -0
  7. package/dist/core/component.js +36 -0
  8. package/dist/core/component.js.map +1 -0
  9. package/dist/core/index.d.ts +13 -0
  10. package/dist/core/index.d.ts.map +1 -0
  11. package/dist/core/math.d.ts +32 -0
  12. package/dist/core/math.d.ts.map +1 -0
  13. package/dist/core/math.js +39 -0
  14. package/dist/core/math.js.map +1 -0
  15. package/dist/core/relation.d.ts +16 -0
  16. package/dist/core/relation.d.ts.map +1 -0
  17. package/dist/core/relation.js +32 -0
  18. package/dist/core/relation.js.map +1 -0
  19. package/dist/core/resource.d.ts +9 -0
  20. package/dist/core/resource.d.ts.map +1 -0
  21. package/dist/core/resource.js +12 -0
  22. package/dist/core/resource.js.map +1 -0
  23. package/dist/core/runtime.d.ts +13 -0
  24. package/dist/core/runtime.d.ts.map +1 -0
  25. package/dist/core/runtime.js +118 -0
  26. package/dist/core/runtime.js.map +1 -0
  27. package/dist/core/scheduler.d.ts +47 -0
  28. package/dist/core/scheduler.d.ts.map +1 -0
  29. package/dist/core/scheduler.js +138 -0
  30. package/dist/core/scheduler.js.map +1 -0
  31. package/dist/core/state.d.ts +62 -0
  32. package/dist/core/state.d.ts.map +1 -0
  33. package/dist/core/state.js +185 -0
  34. package/dist/core/state.js.map +1 -0
  35. package/dist/core/strings.d.ts +3 -0
  36. package/dist/core/strings.d.ts.map +1 -0
  37. package/dist/core/strings.js +11 -0
  38. package/dist/core/strings.js.map +1 -0
  39. package/dist/core/types.d.ts +33 -0
  40. package/dist/core/types.d.ts.map +1 -0
  41. package/dist/core/xml.d.ts +42 -0
  42. package/dist/core/xml.d.ts.map +1 -0
  43. package/dist/core/xml.js +349 -0
  44. package/dist/core/xml.js.map +1 -0
  45. package/dist/extras/arrows/index.d.ts +33 -0
  46. package/dist/extras/arrows/index.d.ts.map +1 -0
  47. package/dist/extras/arrows/index.js +288 -0
  48. package/dist/extras/arrows/index.js.map +1 -0
  49. package/dist/extras/index.d.ts +5 -0
  50. package/dist/extras/index.d.ts.map +1 -0
  51. package/dist/extras/index.js +31 -0
  52. package/dist/extras/index.js.map +1 -0
  53. package/dist/extras/lines/index.d.ts +36 -0
  54. package/dist/extras/lines/index.d.ts.map +1 -0
  55. package/dist/extras/lines/index.js +288 -0
  56. package/dist/extras/lines/index.js.map +1 -0
  57. package/dist/extras/orbit/index.d.ts +20 -0
  58. package/dist/extras/orbit/index.d.ts.map +1 -0
  59. package/dist/extras/orbit/index.js +93 -0
  60. package/dist/extras/orbit/index.js.map +1 -0
  61. package/dist/extras/text/index.d.ts +64 -0
  62. package/dist/extras/text/index.d.ts.map +1 -0
  63. package/dist/extras/text/index.js +423 -0
  64. package/dist/extras/text/index.js.map +1 -0
  65. package/dist/index.d.ts +4 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +187 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/rust/transforms/pkg/shallot_transforms.js +107 -0
  70. package/dist/rust/transforms/pkg/shallot_transforms.js.map +1 -0
  71. package/dist/standard/compute/graph.d.ts +37 -0
  72. package/dist/standard/compute/graph.d.ts.map +1 -0
  73. package/dist/standard/compute/graph.js +85 -0
  74. package/dist/standard/compute/graph.js.map +1 -0
  75. package/dist/standard/compute/index.d.ts +21 -0
  76. package/dist/standard/compute/index.d.ts.map +1 -0
  77. package/dist/standard/compute/index.js +81 -0
  78. package/dist/standard/compute/index.js.map +1 -0
  79. package/dist/standard/defaults.d.ts +3 -0
  80. package/dist/standard/defaults.d.ts.map +1 -0
  81. package/dist/standard/defaults.js +18 -0
  82. package/dist/standard/defaults.js.map +1 -0
  83. package/dist/standard/index.d.ts +8 -0
  84. package/dist/standard/index.d.ts.map +1 -0
  85. package/dist/standard/input/index.d.ts +5 -0
  86. package/dist/standard/input/index.d.ts.map +1 -0
  87. package/dist/standard/input/index.js +70 -0
  88. package/dist/standard/input/index.js.map +1 -0
  89. package/dist/standard/loading/index.d.ts +7 -0
  90. package/dist/standard/loading/index.d.ts.map +1 -0
  91. package/dist/standard/loading/index.js +91 -0
  92. package/dist/standard/loading/index.js.map +1 -0
  93. package/dist/standard/render/camera.d.ts +36 -0
  94. package/dist/standard/render/camera.d.ts.map +1 -0
  95. package/dist/standard/render/camera.js +71 -0
  96. package/dist/standard/render/camera.js.map +1 -0
  97. package/dist/standard/render/forward.d.ts +30 -0
  98. package/dist/standard/render/forward.d.ts.map +1 -0
  99. package/dist/standard/render/forward.js +158 -0
  100. package/dist/standard/render/forward.js.map +1 -0
  101. package/dist/standard/render/index.d.ts +22 -0
  102. package/dist/standard/render/index.d.ts.map +1 -0
  103. package/dist/standard/render/index.js +153 -0
  104. package/dist/standard/render/index.js.map +1 -0
  105. package/dist/standard/render/light.d.ts +25 -0
  106. package/dist/standard/render/light.d.ts.map +1 -0
  107. package/dist/standard/render/light.js +48 -0
  108. package/dist/standard/render/light.js.map +1 -0
  109. package/dist/standard/render/mesh/box.d.ts +3 -0
  110. package/dist/standard/render/mesh/box.d.ts.map +1 -0
  111. package/dist/standard/render/mesh/box.js +190 -0
  112. package/dist/standard/render/mesh/box.js.map +1 -0
  113. package/dist/standard/render/mesh/index.d.ts +52 -0
  114. package/dist/standard/render/mesh/index.d.ts.map +1 -0
  115. package/dist/standard/render/mesh/index.js +158 -0
  116. package/dist/standard/render/mesh/index.js.map +1 -0
  117. package/dist/standard/render/mesh/plane.d.ts +3 -0
  118. package/dist/standard/render/mesh/plane.d.ts.map +1 -0
  119. package/dist/standard/render/mesh/plane.js +33 -0
  120. package/dist/standard/render/mesh/plane.js.map +1 -0
  121. package/dist/standard/render/mesh/sphere.d.ts +3 -0
  122. package/dist/standard/render/mesh/sphere.d.ts.map +1 -0
  123. package/dist/standard/render/mesh/sphere.js +25 -0
  124. package/dist/standard/render/mesh/sphere.js.map +1 -0
  125. package/dist/standard/render/postprocess.d.ts +11 -0
  126. package/dist/standard/render/postprocess.d.ts.map +1 -0
  127. package/dist/standard/render/postprocess.js +190 -0
  128. package/dist/standard/render/postprocess.js.map +1 -0
  129. package/dist/standard/render/scene.d.ts +8 -0
  130. package/dist/standard/render/scene.d.ts.map +1 -0
  131. package/dist/standard/render/scene.js +67 -0
  132. package/dist/standard/render/scene.js.map +1 -0
  133. package/dist/standard/transforms/index.d.ts +27 -0
  134. package/dist/standard/transforms/index.d.ts.map +1 -0
  135. package/dist/standard/transforms/index.js +122 -0
  136. package/dist/standard/transforms/index.js.map +1 -0
  137. package/dist/standard/transforms/wasm.d.ts +17 -0
  138. package/dist/standard/transforms/wasm.d.ts.map +1 -0
  139. package/dist/standard/transforms/wasm.js +31 -0
  140. package/dist/standard/transforms/wasm.js.map +1 -0
  141. package/dist/standard/tween/easing.d.ts +5 -0
  142. package/dist/standard/tween/easing.d.ts.map +1 -0
  143. package/dist/standard/tween/easing.js +80 -0
  144. package/dist/standard/tween/easing.js.map +1 -0
  145. package/dist/standard/tween/index.d.ts +4 -0
  146. package/dist/standard/tween/index.d.ts.map +1 -0
  147. package/dist/standard/tween/sequence.d.ts +20 -0
  148. package/dist/standard/tween/sequence.d.ts.map +1 -0
  149. package/dist/standard/tween/sequence.js +95 -0
  150. package/dist/standard/tween/sequence.js.map +1 -0
  151. package/dist/standard/tween/tween.d.ts +28 -0
  152. package/dist/standard/tween/tween.d.ts.map +1 -0
  153. package/dist/standard/tween/tween.js +136 -0
  154. package/dist/standard/tween/tween.js.map +1 -0
  155. package/package.json +63 -0
  156. package/src/core/builder.ts +148 -0
  157. package/src/core/component.ts +71 -0
  158. package/src/core/index.ts +92 -0
  159. package/src/core/math.ts +128 -0
  160. package/src/core/relation.ts +46 -0
  161. package/src/core/resource.ts +18 -0
  162. package/src/core/runtime.ts +185 -0
  163. package/src/core/scheduler.ts +238 -0
  164. package/src/core/state.ts +295 -0
  165. package/src/core/strings.ts +10 -0
  166. package/src/core/types.ts +37 -0
  167. package/src/core/xml.ts +676 -0
  168. package/src/extras/arrows/index.ts +363 -0
  169. package/src/extras/index.ts +4 -0
  170. package/src/extras/lines/index.ts +368 -0
  171. package/src/extras/orbit/index.ts +133 -0
  172. package/src/extras/text/index.ts +641 -0
  173. package/src/index.ts +3 -0
  174. package/src/standard/compute/graph.ts +165 -0
  175. package/src/standard/compute/index.ts +116 -0
  176. package/src/standard/defaults.ts +17 -0
  177. package/src/standard/index.ts +7 -0
  178. package/src/standard/input/index.ts +142 -0
  179. package/src/standard/loading/index.ts +136 -0
  180. package/src/standard/render/camera.ts +87 -0
  181. package/src/standard/render/forward.ts +212 -0
  182. package/src/standard/render/index.ts +175 -0
  183. package/src/standard/render/light.ts +81 -0
  184. package/src/standard/render/mesh/box.ts +20 -0
  185. package/src/standard/render/mesh/index.ts +227 -0
  186. package/src/standard/render/mesh/plane.ts +11 -0
  187. package/src/standard/render/mesh/sphere.ts +40 -0
  188. package/src/standard/render/postprocess.ts +235 -0
  189. package/src/standard/render/scene.ts +116 -0
  190. package/src/standard/transforms/index.ts +184 -0
  191. package/src/standard/transforms/wasm.ts +61 -0
  192. package/src/standard/tween/easing.ts +169 -0
  193. package/src/standard/tween/index.ts +13 -0
  194. package/src/standard/tween/sequence.ts +142 -0
  195. package/src/standard/tween/tween.ts +265 -0
  196. package/src/vite-env.d.ts +6 -0
@@ -0,0 +1,190 @@
1
+ function t() {
2
+ const e = new Float32Array([
3
+ -0.5,
4
+ -0.5,
5
+ 0.5,
6
+ 0,
7
+ 0,
8
+ 1,
9
+ 0.5,
10
+ -0.5,
11
+ 0.5,
12
+ 0,
13
+ 0,
14
+ 1,
15
+ 0.5,
16
+ 0.5,
17
+ 0.5,
18
+ 0,
19
+ 0,
20
+ 1,
21
+ -0.5,
22
+ 0.5,
23
+ 0.5,
24
+ 0,
25
+ 0,
26
+ 1,
27
+ 0.5,
28
+ -0.5,
29
+ -0.5,
30
+ 0,
31
+ 0,
32
+ -1,
33
+ -0.5,
34
+ -0.5,
35
+ -0.5,
36
+ 0,
37
+ 0,
38
+ -1,
39
+ -0.5,
40
+ 0.5,
41
+ -0.5,
42
+ 0,
43
+ 0,
44
+ -1,
45
+ 0.5,
46
+ 0.5,
47
+ -0.5,
48
+ 0,
49
+ 0,
50
+ -1,
51
+ -0.5,
52
+ 0.5,
53
+ 0.5,
54
+ 0,
55
+ 1,
56
+ 0,
57
+ 0.5,
58
+ 0.5,
59
+ 0.5,
60
+ 0,
61
+ 1,
62
+ 0,
63
+ 0.5,
64
+ 0.5,
65
+ -0.5,
66
+ 0,
67
+ 1,
68
+ 0,
69
+ -0.5,
70
+ 0.5,
71
+ -0.5,
72
+ 0,
73
+ 1,
74
+ 0,
75
+ -0.5,
76
+ -0.5,
77
+ -0.5,
78
+ 0,
79
+ -1,
80
+ 0,
81
+ 0.5,
82
+ -0.5,
83
+ -0.5,
84
+ 0,
85
+ -1,
86
+ 0,
87
+ 0.5,
88
+ -0.5,
89
+ 0.5,
90
+ 0,
91
+ -1,
92
+ 0,
93
+ -0.5,
94
+ -0.5,
95
+ 0.5,
96
+ 0,
97
+ -1,
98
+ 0,
99
+ 0.5,
100
+ -0.5,
101
+ 0.5,
102
+ 1,
103
+ 0,
104
+ 0,
105
+ 0.5,
106
+ -0.5,
107
+ -0.5,
108
+ 1,
109
+ 0,
110
+ 0,
111
+ 0.5,
112
+ 0.5,
113
+ -0.5,
114
+ 1,
115
+ 0,
116
+ 0,
117
+ 0.5,
118
+ 0.5,
119
+ 0.5,
120
+ 1,
121
+ 0,
122
+ 0,
123
+ -0.5,
124
+ -0.5,
125
+ -0.5,
126
+ -1,
127
+ 0,
128
+ 0,
129
+ -0.5,
130
+ -0.5,
131
+ 0.5,
132
+ -1,
133
+ 0,
134
+ 0,
135
+ -0.5,
136
+ 0.5,
137
+ 0.5,
138
+ -1,
139
+ 0,
140
+ 0,
141
+ -0.5,
142
+ 0.5,
143
+ -0.5,
144
+ -1,
145
+ 0,
146
+ 0
147
+ ]), n = new Uint16Array([
148
+ 0,
149
+ 1,
150
+ 2,
151
+ 0,
152
+ 2,
153
+ 3,
154
+ 4,
155
+ 5,
156
+ 6,
157
+ 4,
158
+ 6,
159
+ 7,
160
+ 8,
161
+ 9,
162
+ 10,
163
+ 8,
164
+ 10,
165
+ 11,
166
+ 12,
167
+ 13,
168
+ 14,
169
+ 12,
170
+ 14,
171
+ 15,
172
+ 16,
173
+ 17,
174
+ 18,
175
+ 16,
176
+ 18,
177
+ 19,
178
+ 20,
179
+ 21,
180
+ 22,
181
+ 20,
182
+ 22,
183
+ 23
184
+ ]);
185
+ return { vertices: e, indices: n, vertexCount: 24, indexCount: 36 };
186
+ }
187
+ export {
188
+ t as createBox
189
+ };
190
+ //# sourceMappingURL=box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"box.js","sources":["../../../../src/standard/render/mesh/box.ts"],"sourcesContent":["import type { MeshData } from \"./index\";\n\nexport function createBox(): MeshData {\n const vertices = new Float32Array([\n -0.5, -0.5, 0.5, 0, 0, 1, 0.5, -0.5, 0.5, 0, 0, 1, 0.5, 0.5, 0.5, 0, 0, 1, -0.5, 0.5, 0.5,\n 0, 0, 1, 0.5, -0.5, -0.5, 0, 0, -1, -0.5, -0.5, -0.5, 0, 0, -1, -0.5, 0.5, -0.5, 0, 0, -1,\n 0.5, 0.5, -0.5, 0, 0, -1, -0.5, 0.5, 0.5, 0, 1, 0, 0.5, 0.5, 0.5, 0, 1, 0, 0.5, 0.5, -0.5,\n 0, 1, 0, -0.5, 0.5, -0.5, 0, 1, 0, -0.5, -0.5, -0.5, 0, -1, 0, 0.5, -0.5, -0.5, 0, -1, 0,\n 0.5, -0.5, 0.5, 0, -1, 0, -0.5, -0.5, 0.5, 0, -1, 0, 0.5, -0.5, 0.5, 1, 0, 0, 0.5, -0.5,\n -0.5, 1, 0, 0, 0.5, 0.5, -0.5, 1, 0, 0, 0.5, 0.5, 0.5, 1, 0, 0, -0.5, -0.5, -0.5, -1, 0, 0,\n -0.5, -0.5, 0.5, -1, 0, 0, -0.5, 0.5, 0.5, -1, 0, 0, -0.5, 0.5, -0.5, -1, 0, 0,\n ]);\n\n const indices = new Uint16Array([\n 0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18,\n 16, 18, 19, 20, 21, 22, 20, 22, 23,\n ]);\n\n return { vertices, indices, vertexCount: 24, indexCount: 36 };\n}\n"],"names":["createBox","vertices","indices"],"mappings":"AAEO,SAASA,IAAsB;AAClC,QAAMC,IAAW,IAAI,aAAa;AAAA,IAC9B;AAAA,IAAM;AAAA,IAAM;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAM;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAM;AAAA,IAAK;AAAA,IACtF;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAM;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,IAAI;AAAA,IAAM;AAAA,IAAM;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,IAAI;AAAA,IAAM;AAAA,IAAK;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,IACvF;AAAA,IAAK;AAAA,IAAK;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,IAAI;AAAA,IAAM;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IACrF;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAM;AAAA,IAAK;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAM;AAAA,IAAM;AAAA,IAAM;AAAA,IAAG;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAM;AAAA,IAAM;AAAA,IAAG;AAAA,IAAI;AAAA,IACvF;AAAA,IAAK;AAAA,IAAM;AAAA,IAAK;AAAA,IAAG;AAAA,IAAI;AAAA,IAAG;AAAA,IAAM;AAAA,IAAM;AAAA,IAAK;AAAA,IAAG;AAAA,IAAI;AAAA,IAAG;AAAA,IAAK;AAAA,IAAM;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IACnF;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAK;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAM;AAAA,IAAM;AAAA,IAAM;AAAA,IAAI;AAAA,IAAG;AAAA,IACzF;AAAA,IAAM;AAAA,IAAM;AAAA,IAAK;AAAA,IAAI;AAAA,IAAG;AAAA,IAAG;AAAA,IAAM;AAAA,IAAK;AAAA,IAAK;AAAA,IAAI;AAAA,IAAG;AAAA,IAAG;AAAA,IAAM;AAAA,IAAK;AAAA,IAAM;AAAA,IAAI;AAAA,IAAG;AAAA,EAAA,CAChF,GAEKC,IAAU,IAAI,YAAY;AAAA,IAC5B;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAI;AAAA,IAAG;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IACzF;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,IAAI;AAAA,EAAA,CACnC;AAED,SAAO,EAAE,UAAAD,GAAU,SAAAC,GAAS,aAAa,IAAI,YAAY,GAAA;AAC7D;"}
@@ -0,0 +1,52 @@
1
+ import { FieldAccessor } from '../../../core/component';
2
+ export interface MeshData {
3
+ vertices: Float32Array<ArrayBuffer>;
4
+ indices: Uint16Array<ArrayBuffer>;
5
+ vertexCount: number;
6
+ indexCount: number;
7
+ }
8
+ export declare const MeshShape: {
9
+ readonly Box: 0;
10
+ readonly Sphere: 1;
11
+ readonly Plane: 2;
12
+ };
13
+ export declare function createGeometry(shape: number): MeshData;
14
+ export declare const MeshColors: {
15
+ data: Float32Array<ArrayBuffer>;
16
+ };
17
+ export declare const MeshSizes: {
18
+ data: Float32Array<ArrayBuffer>;
19
+ };
20
+ interface ColorProxy extends Array<number>, FieldAccessor {
21
+ }
22
+ interface SizeProxy extends Array<number>, FieldAccessor {
23
+ }
24
+ export declare const Mesh: {
25
+ shape: number[];
26
+ color: ColorProxy;
27
+ sizeX: SizeProxy;
28
+ sizeY: SizeProxy;
29
+ sizeZ: SizeProxy;
30
+ };
31
+ export interface MeshBuffers {
32
+ vertex: GPUBuffer;
33
+ index: GPUBuffer;
34
+ indexCount: number;
35
+ }
36
+ export declare function createMeshBuffers(device: GPUDevice, mesh: MeshData): MeshBuffers;
37
+ export declare function collectByShape(entities: Iterable<number>): Map<number, number[]>;
38
+ export interface ShapeBatch {
39
+ index: number;
40
+ buffers: MeshBuffers;
41
+ entityIds: GPUBuffer;
42
+ count: number;
43
+ }
44
+ export interface BatchState {
45
+ batches: Map<number, ShapeBatch>;
46
+ buffers: Map<number, MeshBuffers>;
47
+ }
48
+ export declare function updateBatches(device: GPUDevice, byShape: Map<number, number[]>, state: BatchState, indirect: GPUBuffer): void;
49
+ export { createBox } from './box';
50
+ export { createSphere } from './sphere';
51
+ export { createPlane } from './plane';
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/standard/render/mesh/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAOxE,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAStD;AAED,eAAO,MAAM,UAAU;;CAEtB,CAAC;AAEF,eAAO,MAAM,SAAS;;CAErB,CAAC;AAEF,UAAU,UAAW,SAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,aAAa;CAAG;AAsC5D,UAAU,SAAU,SAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,aAAa;CAAG;AA8B3D,eAAO,MAAM,IAAI,EAAE;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;CAOpB,CAAC;AAkBF,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,WAAW,CAgBhF;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAYhF;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED,wBAAgB,aAAa,CACzB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC9B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,SAAS,GACpB,IAAI,CA6BN;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,158 @@
1
+ import "bitecs";
2
+ import { MAX_ENTITIES as l } from "../../../core/state.js";
3
+ import "../../../core/builder.js";
4
+ import { setTraits as d } from "../../../core/component.js";
5
+ import "../../../core/relation.js";
6
+ import "../../../core/math.js";
7
+ import "fast-xml-parser";
8
+ import { createEntityIdBuffer as h } from "../../compute/index.js";
9
+ import { writeIndirect as b } from "../forward.js";
10
+ import { createBox as m } from "./box.js";
11
+ import { createSphere as g } from "./sphere.js";
12
+ import { createPlane as x } from "./plane.js";
13
+ const c = {
14
+ Box: 0,
15
+ Sphere: 1,
16
+ Plane: 2
17
+ };
18
+ function p(t) {
19
+ switch (t) {
20
+ case c.Sphere:
21
+ return g();
22
+ case c.Plane:
23
+ return x();
24
+ default:
25
+ return m();
26
+ }
27
+ }
28
+ const N = {
29
+ data: new Float32Array(l * 4)
30
+ }, z = {
31
+ data: new Float32Array(l * 4)
32
+ };
33
+ function B() {
34
+ const t = N.data;
35
+ function n(i) {
36
+ const e = i * 4, r = Math.round(t[e] * 255), o = Math.round(t[e + 1] * 255), u = Math.round(t[e + 2] * 255);
37
+ return r << 16 | o << 8 | u;
38
+ }
39
+ function s(i, e) {
40
+ const r = i * 4;
41
+ t[r] = (e >> 16 & 255) / 255, t[r + 1] = (e >> 8 & 255) / 255, t[r + 2] = (e & 255) / 255, t[r + 3] = 1;
42
+ }
43
+ return new Proxy([], {
44
+ get(i, e) {
45
+ if (e === "get") return n;
46
+ if (e === "set") return s;
47
+ const r = Number(e);
48
+ if (!Number.isNaN(r))
49
+ return n(r);
50
+ },
51
+ set(i, e, r) {
52
+ const o = Number(e);
53
+ return Number.isNaN(o) ? !1 : (s(o, r), !0);
54
+ }
55
+ });
56
+ }
57
+ function a(t) {
58
+ const n = z.data;
59
+ function s(e) {
60
+ return n[e * 4 + t];
61
+ }
62
+ function i(e, r) {
63
+ n[e * 4 + t] = r;
64
+ }
65
+ return new Proxy([], {
66
+ get(e, r) {
67
+ if (r === "get") return s;
68
+ if (r === "set") return i;
69
+ const o = Number(r);
70
+ if (!Number.isNaN(o))
71
+ return s(o);
72
+ },
73
+ set(e, r, o) {
74
+ const u = Number(r);
75
+ return Number.isNaN(u) ? !1 : (i(u, o), !0);
76
+ }
77
+ });
78
+ }
79
+ const f = {
80
+ shape: [],
81
+ color: B(),
82
+ sizeX: a(0),
83
+ sizeY: a(1),
84
+ sizeZ: a(2)
85
+ };
86
+ d(f, {
87
+ defaults: () => ({
88
+ shape: c.Box,
89
+ color: 16777215,
90
+ sizeX: 1,
91
+ sizeY: 1,
92
+ sizeZ: 1
93
+ }),
94
+ accessors: {
95
+ color: f.color,
96
+ sizeX: f.sizeX,
97
+ sizeY: f.sizeY,
98
+ sizeZ: f.sizeZ
99
+ }
100
+ });
101
+ function y(t, n) {
102
+ const s = t.createBuffer({
103
+ label: "vertex",
104
+ size: n.vertices.byteLength,
105
+ usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST
106
+ });
107
+ t.queue.writeBuffer(s, 0, n.vertices);
108
+ const i = t.createBuffer({
109
+ label: "index",
110
+ size: n.indices.byteLength,
111
+ usage: GPUBufferUsage.INDEX | GPUBufferUsage.COPY_DST
112
+ });
113
+ return t.queue.writeBuffer(i, 0, n.indices), { vertex: s, index: i, indexCount: n.indexCount };
114
+ }
115
+ function Y(t) {
116
+ const n = /* @__PURE__ */ new Map();
117
+ for (const s of t) {
118
+ const i = f.shape[s];
119
+ let e = n.get(i);
120
+ e || (e = [], n.set(i, e)), e.push(s);
121
+ }
122
+ return n;
123
+ }
124
+ function G(t, n, s, i) {
125
+ for (const [e, r] of n) {
126
+ let o = s.batches.get(e);
127
+ if (!o) {
128
+ let u = s.buffers.get(e);
129
+ u || (u = y(t, p(e)), s.buffers.set(e, u)), o = {
130
+ index: s.batches.size,
131
+ buffers: u,
132
+ entityIds: h(t, l),
133
+ count: 0
134
+ }, s.batches.set(e, o);
135
+ }
136
+ t.queue.writeBuffer(o.entityIds, 0, new Uint32Array(r)), o.count = r.length, b(t, i, o.index, {
137
+ indexCount: o.buffers.indexCount,
138
+ instanceCount: r.length,
139
+ firstIndex: 0,
140
+ baseVertex: 0,
141
+ firstInstance: 0
142
+ });
143
+ }
144
+ }
145
+ export {
146
+ f as Mesh,
147
+ N as MeshColors,
148
+ c as MeshShape,
149
+ z as MeshSizes,
150
+ Y as collectByShape,
151
+ m as createBox,
152
+ p as createGeometry,
153
+ y as createMeshBuffers,
154
+ x as createPlane,
155
+ g as createSphere,
156
+ G as updateBatches
157
+ };
158
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/standard/render/mesh/index.ts"],"sourcesContent":["import { MAX_ENTITIES } from \"../../../core\";\nimport { setTraits, type FieldAccessor } from \"../../../core/component\";\nimport { createEntityIdBuffer } from \"../../compute\";\nimport { writeIndirect } from \"../forward\";\nimport { createBox } from \"./box\";\nimport { createSphere } from \"./sphere\";\nimport { createPlane } from \"./plane\";\n\nexport interface MeshData {\n vertices: Float32Array<ArrayBuffer>;\n indices: Uint16Array<ArrayBuffer>;\n vertexCount: number;\n indexCount: number;\n}\n\nexport const MeshShape = {\n Box: 0,\n Sphere: 1,\n Plane: 2,\n} as const;\n\nexport function createGeometry(shape: number): MeshData {\n switch (shape) {\n case MeshShape.Sphere:\n return createSphere();\n case MeshShape.Plane:\n return createPlane();\n default:\n return createBox();\n }\n}\n\nexport const MeshColors = {\n data: new Float32Array(MAX_ENTITIES * 4),\n};\n\nexport const MeshSizes = {\n data: new Float32Array(MAX_ENTITIES * 4),\n};\n\ninterface ColorProxy extends Array<number>, FieldAccessor {}\n\nfunction colorProxy(): ColorProxy {\n const data = MeshColors.data;\n\n function getValue(eid: number): number {\n const offset = eid * 4;\n const r = Math.round(data[offset] * 255);\n const g = Math.round(data[offset + 1] * 255);\n const b = Math.round(data[offset + 2] * 255);\n return (r << 16) | (g << 8) | b;\n }\n\n function setValue(eid: number, value: number): void {\n const offset = eid * 4;\n data[offset] = ((value >> 16) & 0xff) / 255;\n data[offset + 1] = ((value >> 8) & 0xff) / 255;\n data[offset + 2] = (value & 0xff) / 255;\n data[offset + 3] = 1;\n }\n\n return new Proxy([] as unknown as ColorProxy, {\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\ninterface SizeProxy extends Array<number>, FieldAccessor {}\n\nfunction sizeProxy(component: number): SizeProxy {\n const data = MeshSizes.data;\n\n function getValue(eid: number): number {\n return data[eid * 4 + component];\n }\n\n function setValue(eid: number, value: number): void {\n data[eid * 4 + component] = value;\n }\n\n return new Proxy([] as unknown as SizeProxy, {\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 Mesh: {\n shape: number[];\n color: ColorProxy;\n sizeX: SizeProxy;\n sizeY: SizeProxy;\n sizeZ: SizeProxy;\n} = {\n shape: [],\n color: colorProxy(),\n sizeX: sizeProxy(0),\n sizeY: sizeProxy(1),\n sizeZ: sizeProxy(2),\n};\n\nsetTraits(Mesh, {\n defaults: () => ({\n shape: MeshShape.Box,\n color: 0xffffff,\n sizeX: 1,\n sizeY: 1,\n sizeZ: 1,\n }),\n accessors: {\n color: Mesh.color,\n sizeX: Mesh.sizeX,\n sizeY: Mesh.sizeY,\n sizeZ: Mesh.sizeZ,\n },\n});\n\nexport interface MeshBuffers {\n vertex: GPUBuffer;\n index: GPUBuffer;\n indexCount: number;\n}\n\nexport function createMeshBuffers(device: GPUDevice, mesh: MeshData): MeshBuffers {\n const vertex = device.createBuffer({\n label: \"vertex\",\n size: mesh.vertices.byteLength,\n usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,\n });\n device.queue.writeBuffer(vertex, 0, mesh.vertices);\n\n const index = device.createBuffer({\n label: \"index\",\n size: mesh.indices.byteLength,\n usage: GPUBufferUsage.INDEX | GPUBufferUsage.COPY_DST,\n });\n device.queue.writeBuffer(index, 0, mesh.indices);\n\n return { vertex, index, indexCount: mesh.indexCount };\n}\n\nexport function collectByShape(entities: Iterable<number>): Map<number, number[]> {\n const byShape = new Map<number, number[]>();\n for (const eid of entities) {\n const shape = Mesh.shape[eid];\n let list = byShape.get(shape);\n if (!list) {\n list = [];\n byShape.set(shape, list);\n }\n list.push(eid);\n }\n return byShape;\n}\n\nexport interface ShapeBatch {\n index: number;\n buffers: MeshBuffers;\n entityIds: GPUBuffer;\n count: number;\n}\n\nexport interface BatchState {\n batches: Map<number, ShapeBatch>;\n buffers: Map<number, MeshBuffers>;\n}\n\nexport function updateBatches(\n device: GPUDevice,\n byShape: Map<number, number[]>,\n state: BatchState,\n indirect: GPUBuffer\n): void {\n for (const [shape, entities] of byShape) {\n let batch = state.batches.get(shape);\n if (!batch) {\n let buffers = state.buffers.get(shape);\n if (!buffers) {\n buffers = createMeshBuffers(device, createGeometry(shape));\n state.buffers.set(shape, buffers);\n }\n batch = {\n index: state.batches.size,\n buffers,\n entityIds: createEntityIdBuffer(device, MAX_ENTITIES),\n count: 0,\n };\n state.batches.set(shape, batch);\n }\n\n device.queue.writeBuffer(batch.entityIds, 0, new Uint32Array(entities));\n batch.count = entities.length;\n\n writeIndirect(device, indirect, batch.index, {\n indexCount: batch.buffers.indexCount,\n instanceCount: entities.length,\n firstIndex: 0,\n baseVertex: 0,\n firstInstance: 0,\n });\n }\n}\n\nexport { createBox } from \"./box\";\nexport { createSphere } from \"./sphere\";\nexport { createPlane } from \"./plane\";\n"],"names":["MeshShape","createGeometry","shape","createSphere","createPlane","createBox","MeshColors","MAX_ENTITIES","MeshSizes","colorProxy","data","getValue","eid","offset","g","b","setValue","value","_","prop","sizeProxy","component","Mesh","setTraits","createMeshBuffers","device","mesh","vertex","index","collectByShape","entities","byShape","list","updateBatches","state","indirect","batch","buffers","createEntityIdBuffer","writeIndirect"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { MeshData } from './index';
2
+ export declare function createPlane(): MeshData;
3
+ //# sourceMappingURL=plane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plane.d.ts","sourceRoot":"","sources":["../../../../src/standard/render/mesh/plane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,WAAW,IAAI,QAAQ,CAQtC"}
@@ -0,0 +1,33 @@
1
+ function t() {
2
+ const e = new Float32Array([
3
+ -0.5,
4
+ 0,
5
+ 0.5,
6
+ 0,
7
+ 1,
8
+ 0,
9
+ 0.5,
10
+ 0,
11
+ 0.5,
12
+ 0,
13
+ 1,
14
+ 0,
15
+ 0.5,
16
+ 0,
17
+ -0.5,
18
+ 0,
19
+ 1,
20
+ 0,
21
+ -0.5,
22
+ 0,
23
+ -0.5,
24
+ 0,
25
+ 1,
26
+ 0
27
+ ]), n = new Uint16Array([0, 1, 2, 0, 2, 3]);
28
+ return { vertices: e, indices: n, vertexCount: 4, indexCount: 6 };
29
+ }
30
+ export {
31
+ t as createPlane
32
+ };
33
+ //# sourceMappingURL=plane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plane.js","sources":["../../../../src/standard/render/mesh/plane.ts"],"sourcesContent":["import type { MeshData } from \"./index\";\n\nexport function createPlane(): MeshData {\n const vertices = new Float32Array([\n -0.5, 0, 0.5, 0, 1, 0, 0.5, 0, 0.5, 0, 1, 0, 0.5, 0, -0.5, 0, 1, 0, -0.5, 0, -0.5, 0, 1, 0,\n ]);\n\n const indices = new Uint16Array([0, 1, 2, 0, 2, 3]);\n\n return { vertices, indices, vertexCount: 4, indexCount: 6 };\n}\n"],"names":["createPlane","vertices","indices"],"mappings":"AAEO,SAASA,IAAwB;AACpC,QAAMC,IAAW,IAAI,aAAa;AAAA,IAC9B;AAAA,IAAM;AAAA,IAAG;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAG;AAAA,IAAK;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAK;AAAA,IAAG;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,IAAG;AAAA,IAAM;AAAA,IAAG;AAAA,IAAM;AAAA,IAAG;AAAA,IAAG;AAAA,EAAA,CAC5F,GAEKC,IAAU,IAAI,YAAY,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAElD,SAAO,EAAE,UAAAD,GAAU,SAAAC,GAAS,aAAa,GAAG,YAAY,EAAA;AAC5D;"}
@@ -0,0 +1,3 @@
1
+ import { MeshData } from './index';
2
+ export declare function createSphere(segments?: number, rings?: number): MeshData;
3
+ //# sourceMappingURL=sphere.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sphere.d.ts","sourceRoot":"","sources":["../../../../src/standard/render/mesh/sphere.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,YAAY,CAAC,QAAQ,SAAK,EAAE,KAAK,SAAK,GAAG,QAAQ,CAqChE"}
@@ -0,0 +1,25 @@
1
+ function x(o = 32, a = 16) {
2
+ const i = [], h = [];
3
+ for (let c = 0; c <= a; c++) {
4
+ const t = c / a * Math.PI;
5
+ for (let n = 0; n <= o; n++) {
6
+ const u = n / o * Math.PI * 2, s = Math.sin(t) * Math.cos(u), e = Math.cos(t), d = Math.sin(t) * Math.sin(u);
7
+ i.push(s * 0.5, e * 0.5, d * 0.5, s, e, d);
8
+ }
9
+ }
10
+ for (let c = 0; c < a; c++)
11
+ for (let r = 0; r < o; r++) {
12
+ const t = c * (o + 1) + r, n = t + o + 1;
13
+ h.push(t, t + 1, n), h.push(t + 1, n + 1, n);
14
+ }
15
+ return {
16
+ vertices: new Float32Array(i),
17
+ indices: new Uint16Array(h),
18
+ vertexCount: (a + 1) * (o + 1),
19
+ indexCount: a * o * 6
20
+ };
21
+ }
22
+ export {
23
+ x as createSphere
24
+ };
25
+ //# sourceMappingURL=sphere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sphere.js","sources":["../../../../src/standard/render/mesh/sphere.ts"],"sourcesContent":["import type { MeshData } from \"./index\";\n\nexport function createSphere(segments = 32, rings = 16): MeshData {\n const vertices: number[] = [];\n const indices: number[] = [];\n const radius = 0.5;\n\n for (let y = 0; y <= rings; y++) {\n const v = y / rings;\n const theta = v * Math.PI;\n\n for (let x = 0; x <= segments; x++) {\n const u = x / segments;\n const phi = u * Math.PI * 2;\n\n const nx = Math.sin(theta) * Math.cos(phi);\n const ny = Math.cos(theta);\n const nz = Math.sin(theta) * Math.sin(phi);\n\n vertices.push(nx * radius, ny * radius, nz * radius, nx, ny, nz);\n }\n }\n\n for (let y = 0; y < rings; y++) {\n for (let x = 0; x < segments; x++) {\n const a = y * (segments + 1) + x;\n const b = a + segments + 1;\n\n indices.push(a, a + 1, b);\n indices.push(a + 1, b + 1, b);\n }\n }\n\n return {\n vertices: new Float32Array(vertices),\n indices: new Uint16Array(indices),\n vertexCount: (rings + 1) * (segments + 1),\n indexCount: rings * segments * 6,\n };\n}\n"],"names":["createSphere","segments","rings","vertices","indices","y","theta","x","phi","nx","ny","nz","a","b"],"mappings":"AAEO,SAASA,EAAaC,IAAW,IAAIC,IAAQ,IAAc;AAC9D,QAAMC,IAAqB,CAAA,GACrBC,IAAoB,CAAA;AAG1B,WAASC,IAAI,GAAGA,KAAKH,GAAOG,KAAK;AAE7B,UAAMC,IADID,IAAIH,IACI,KAAK;AAEvB,aAASK,IAAI,GAAGA,KAAKN,GAAUM,KAAK;AAEhC,YAAMC,IADID,IAAIN,IACE,KAAK,KAAK,GAEpBQ,IAAK,KAAK,IAAIH,CAAK,IAAI,KAAK,IAAIE,CAAG,GACnCE,IAAK,KAAK,IAAIJ,CAAK,GACnBK,IAAK,KAAK,IAAIL,CAAK,IAAI,KAAK,IAAIE,CAAG;AAEzC,MAAAL,EAAS,KAAKM,IAAK,KAAQC,IAAK,KAAQC,IAAK,KAAQF,GAAIC,GAAIC,CAAE;AAAA,IACnE;AAAA,EACJ;AAEA,WAASN,IAAI,GAAGA,IAAIH,GAAOG;AACvB,aAASE,IAAI,GAAGA,IAAIN,GAAUM,KAAK;AAC/B,YAAMK,IAAIP,KAAKJ,IAAW,KAAKM,GACzBM,IAAID,IAAIX,IAAW;AAEzB,MAAAG,EAAQ,KAAKQ,GAAGA,IAAI,GAAGC,CAAC,GACxBT,EAAQ,KAAKQ,IAAI,GAAGC,IAAI,GAAGA,CAAC;AAAA,IAChC;AAGJ,SAAO;AAAA,IACH,UAAU,IAAI,aAAaV,CAAQ;AAAA,IACnC,SAAS,IAAI,YAAYC,CAAO;AAAA,IAChC,cAAcF,IAAQ,MAAMD,IAAW;AAAA,IACvC,YAAYC,IAAQD,IAAW;AAAA,EAAA;AAEvC;"}
@@ -0,0 +1,11 @@
1
+ import { ComputeNode } from '../compute';
2
+ export interface PostProcessUniforms {
3
+ tonemap: boolean;
4
+ exposure: number;
5
+ fxaa: boolean;
6
+ vignetteStrength: number;
7
+ vignetteInner: number;
8
+ vignetteOuter: number;
9
+ }
10
+ export declare function createPostProcessNode(uniforms: PostProcessUniforms): ComputeNode;
11
+ //# sourceMappingURL=postprocess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postprocess.d.ts","sourceRoot":"","sources":["../../../src/standard/render/postprocess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,YAAY,CAAC;AAwIhE,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAyFhF"}