@jscad/regl-renderer 2.6.13 → 2.6.14
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.
- package/CHANGELOG.md +3 -214
- package/dist/jscad-regl-renderer.min.js +117 -117
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,310 +3,170 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
## [2.6.
|
|
6
|
+
## [2.6.14](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.13...@jscad/regl-renderer@2.6.14) (2026-02-11)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
9
9
|
|
|
10
|
+
## [2.6.13](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.12...@jscad/regl-renderer@2.6.13) (2025-09-20)
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
**Note:** Version bump only for package @jscad/regl-renderer
|
|
13
13
|
|
|
14
14
|
## [2.6.12](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.11...@jscad/regl-renderer@2.6.12) (2024-12-29)
|
|
15
15
|
|
|
16
16
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
18
|
## [2.6.11](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.10...@jscad/regl-renderer@2.6.11) (2024-11-10)
|
|
23
19
|
|
|
24
20
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
25
21
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
22
|
## [2.6.10](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.9...@jscad/regl-renderer@2.6.10) (2024-10-06)
|
|
31
23
|
|
|
32
24
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
33
25
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
26
|
## [2.6.9](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.8...@jscad/regl-renderer@2.6.9) (2024-06-02)
|
|
39
27
|
|
|
40
28
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
41
29
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
30
|
## [2.6.8](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.7...@jscad/regl-renderer@2.6.8) (2024-02-18)
|
|
47
31
|
|
|
48
|
-
|
|
49
32
|
### Bug Fixes
|
|
50
33
|
|
|
51
34
|
* **regl-renderer:** define the entity type and corrected TS definitions ([d7dc4fb](https://github.com/jscad/OpenJSCAD.org/commit/d7dc4fb3722652362d2a209b2c82adc8cbf7ad33))
|
|
52
35
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
36
|
## [2.6.7](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.6...@jscad/regl-renderer@2.6.7) (2023-06-27)
|
|
58
37
|
|
|
59
38
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
60
39
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
40
|
## [2.6.6](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.5...@jscad/regl-renderer@2.6.6) (2023-04-30)
|
|
66
41
|
|
|
67
42
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
68
43
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
44
|
## [2.6.5](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.4...@jscad/regl-renderer@2.6.5) (2023-01-09)
|
|
74
45
|
|
|
75
|
-
|
|
76
46
|
### Bug Fixes
|
|
77
47
|
|
|
78
48
|
* **regl-renderer:** corrected rendering of overlapping transparent solid objects ([9a66b2a](https://github.com/jscad/OpenJSCAD.org/commit/9a66b2abaccb6f047c5e4c4505218e7bbac69018))
|
|
79
49
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
50
|
## [2.6.4](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.3...@jscad/regl-renderer@2.6.4) (2022-11-26)
|
|
85
51
|
|
|
86
52
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
87
53
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
54
|
## [2.6.3](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.2...@jscad/regl-renderer@2.6.3) (2022-08-21)
|
|
93
55
|
|
|
94
56
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
95
57
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
58
|
## [2.6.2](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.1...@jscad/regl-renderer@2.6.2) (2022-07-17)
|
|
101
59
|
|
|
102
60
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
103
61
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
62
|
## [2.6.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.6.0...@jscad/regl-renderer@2.6.1) (2022-06-12)
|
|
109
63
|
|
|
110
64
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
111
65
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
66
|
# [2.6.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.9...@jscad/regl-renderer@2.6.0) (2022-05-15)
|
|
117
67
|
|
|
118
|
-
|
|
119
68
|
### Features
|
|
120
69
|
|
|
121
70
|
* **regl-renderer:** added support for multicolor lines ([#1060](https://github.com/jscad/OpenJSCAD.org/issues/1060)) ([d5eb65b](https://github.com/jscad/OpenJSCAD.org/commit/d5eb65b298afcabd4231236c3aa5d5cc092db8d4))
|
|
122
71
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
72
|
## [2.5.9](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.8...@jscad/regl-renderer@2.5.9) (2022-04-24)
|
|
128
73
|
|
|
129
|
-
|
|
130
74
|
### Bug Fixes
|
|
131
75
|
|
|
132
76
|
* **regl-render:** removed unnecessary preventDefault in demo.html ([#1068](https://github.com/jscad/OpenJSCAD.org/issues/1068)) ([b2ff7c3](https://github.com/jscad/OpenJSCAD.org/commit/b2ff7c33cd3a8a0fc242b42f5e4bb2690eaef081))
|
|
133
77
|
|
|
134
|
-
|
|
135
78
|
### Performance Improvements
|
|
136
79
|
|
|
137
80
|
* **modeling:** faster geom2.toOutlines ([#1064](https://github.com/jscad/OpenJSCAD.org/issues/1064)) ([5cb2f65](https://github.com/jscad/OpenJSCAD.org/commit/5cb2f652fa099593e6ec133fe879ecf8a09705e9))
|
|
138
81
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
82
|
## [2.5.8](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.7...@jscad/regl-renderer@2.5.8) (2022-04-03)
|
|
144
83
|
|
|
145
84
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
146
85
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
86
|
## [2.5.7](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.6...@jscad/regl-renderer@2.5.7) (2022-04-03)
|
|
152
87
|
|
|
153
88
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
154
89
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
90
|
## [2.5.6](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.5...@jscad/regl-renderer@2.5.6) (2022-03-13)
|
|
160
91
|
|
|
161
92
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
162
93
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
94
|
## [2.5.5](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.4...@jscad/regl-renderer@2.5.5) (2022-03-06)
|
|
168
95
|
|
|
169
96
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
170
97
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
98
|
## [2.5.4](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.3...@jscad/regl-renderer@2.5.4) (2022-02-19)
|
|
176
99
|
|
|
177
100
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
178
101
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
102
|
## [2.5.3](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.2...@jscad/regl-renderer@2.5.3) (2021-12-26)
|
|
184
103
|
|
|
185
104
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
186
105
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
106
|
## [2.5.2](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.1...@jscad/regl-renderer@2.5.2) (2021-12-11)
|
|
192
107
|
|
|
193
108
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
194
109
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
110
|
## [2.5.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.5.0...@jscad/regl-renderer@2.5.1) (2021-11-07)
|
|
200
111
|
|
|
201
112
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
202
113
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
114
|
# [2.5.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.4.1...@jscad/regl-renderer@2.5.0) (2021-10-17)
|
|
208
115
|
|
|
209
|
-
|
|
210
116
|
### Features
|
|
211
117
|
|
|
212
118
|
* **web:** changed default serialize to false, eliminating JSON serialize/deserialize ([#928](https://github.com/jscad/OpenJSCAD.org/issues/928)) ([b29993a](https://github.com/jscad/OpenJSCAD.org/commit/b29993a8fd3da3bd43a5f871edae4c60d7f56fc7))
|
|
213
119
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
120
|
## [2.4.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.4.0...@jscad/regl-renderer@2.4.1) (2021-10-04)
|
|
219
121
|
|
|
220
122
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
221
123
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
124
|
# [2.4.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.3.0...@jscad/regl-renderer@2.4.0) (2021-09-27)
|
|
227
125
|
|
|
228
|
-
|
|
229
126
|
### Features
|
|
230
127
|
|
|
231
128
|
* **regl-renderer:** enhanced rendering to use the matrix as provided with the geometry ([#871](https://github.com/jscad/OpenJSCAD.org/issues/871)) ([40802af](https://github.com/jscad/OpenJSCAD.org/commit/40802afeb9a2a45cf3eb4f1b9dc774b8670d8259))
|
|
232
129
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
130
|
# [2.3.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.2.0...@jscad/regl-renderer@2.3.0) (2021-09-09)
|
|
238
131
|
|
|
239
|
-
|
|
240
132
|
### Features
|
|
241
133
|
|
|
242
134
|
* **regl-renderer:** typescript definitions and generator. ([#801](https://github.com/jscad/OpenJSCAD.org/issues/801)) ([1616876](https://github.com/jscad/OpenJSCAD.org/commit/16168761c53bbb6ffb604aa69c9c80dcc13eaad3))
|
|
243
135
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
136
|
# [2.2.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.1.3...@jscad/regl-renderer@2.2.0) (2021-06-20)
|
|
249
137
|
|
|
250
|
-
|
|
251
138
|
### Features
|
|
252
139
|
|
|
253
140
|
* **regl-renderer:** added new command drawLines, and adjusted demos ([#863](https://github.com/jscad/OpenJSCAD.org/issues/863)) ([02b5247](https://github.com/jscad/OpenJSCAD.org/commit/02b524775165f743b1f0bcecce92a0f7784bb89b))
|
|
254
141
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
142
|
## [2.1.3](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.1.2...@jscad/regl-renderer@2.1.3) (2021-06-11)
|
|
260
143
|
|
|
261
144
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
262
145
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
146
|
## [2.1.2](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.1.1...@jscad/regl-renderer@2.1.2) (2021-06-01)
|
|
268
147
|
|
|
269
148
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
270
149
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
150
|
## [2.1.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.1.0...@jscad/regl-renderer@2.1.1) (2021-05-16)
|
|
276
151
|
|
|
277
|
-
|
|
278
152
|
### Bug Fixes
|
|
279
153
|
|
|
280
154
|
* **regl-renderer:** added reasonable defaults for drawGrid ([d64e062](https://github.com/jscad/OpenJSCAD.org/commit/d64e06228f8a92e014df3e22ea9ee48e11825420))
|
|
281
155
|
* **regl-renderer:** corrected conversion of empty solids to entities, updated tests ([967fe82](https://github.com/jscad/OpenJSCAD.org/commit/967fe82ea429af14fe23a51d19099b1752ceead3))
|
|
282
156
|
* **regl-renderer:** corrected determination of camera position change in orbitControls ([4f467c5](https://github.com/jscad/OpenJSCAD.org/commit/4f467c5d92132dc140db6799766f3a98716e5d68))
|
|
283
157
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
158
|
# [2.1.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.3...@jscad/regl-renderer@2.1.0) (2021-04-30)
|
|
289
159
|
|
|
290
|
-
|
|
291
160
|
### Features
|
|
292
161
|
|
|
293
162
|
* **regl-renderer:** refactored and corrected conversions of solids to entities, supporting HUGE solids ([#797](https://github.com/jscad/OpenJSCAD.org/issues/797)) ([f8baa22](https://github.com/jscad/OpenJSCAD.org/commit/f8baa222e89ac9357c795620b7f21341e202ad74))
|
|
294
163
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
164
|
## [2.0.3](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.2...@jscad/regl-renderer@2.0.3) (2021-04-20)
|
|
300
165
|
|
|
301
166
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
302
167
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
168
|
## [2.0.2](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.0...@jscad/regl-renderer@2.0.2) (2021-04-17)
|
|
308
169
|
|
|
309
|
-
|
|
310
170
|
### Bug Fixes
|
|
311
171
|
|
|
312
172
|
* **all:** support sparse arrays from main() ([#672](https://github.com/jscad/OpenJSCAD.org/issues/672)) ([209961d](https://github.com/jscad/OpenJSCAD.org/commit/209961d41ebf77373d427a7986934d195780f118))
|
|
@@ -315,13 +175,8 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
315
175
|
* **regl-renderer:** corrected zoomToFit for 2D geometries ([#793](https://github.com/jscad/OpenJSCAD.org/issues/793)) ([2a05d3e](https://github.com/jscad/OpenJSCAD.org/commit/2a05d3e9b380e8782148c5d158c40715d6af2cd8))
|
|
316
176
|
* **regl-renderer:** variable distance in pan controls ([#735](https://github.com/jscad/OpenJSCAD.org/issues/735)) ([9ad661c](https://github.com/jscad/OpenJSCAD.org/commit/9ad661c44cb87ee6ae58f20a69eaad5fd83a05a6))
|
|
317
177
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
178
|
## [2.0.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.0...@jscad/regl-renderer@2.0.1) (2021-04-15)
|
|
323
179
|
|
|
324
|
-
|
|
325
180
|
### Bug Fixes
|
|
326
181
|
|
|
327
182
|
* **all:** support sparse arrays from main() ([#672](https://github.com/jscad/OpenJSCAD.org/issues/672)) ([209961d](https://github.com/jscad/OpenJSCAD.org/commit/209961d41ebf77373d427a7986934d195780f118))
|
|
@@ -330,143 +185,77 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
330
185
|
* **regl-renderer:** corrected zoomToFit for 2D geometries ([#793](https://github.com/jscad/OpenJSCAD.org/issues/793)) ([2a05d3e](https://github.com/jscad/OpenJSCAD.org/commit/2a05d3e9b380e8782148c5d158c40715d6af2cd8))
|
|
331
186
|
* **regl-renderer:** variable distance in pan controls ([#735](https://github.com/jscad/OpenJSCAD.org/issues/735)) ([9ad661c](https://github.com/jscad/OpenJSCAD.org/commit/9ad661c44cb87ee6ae58f20a69eaad5fd83a05a6))
|
|
332
187
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
188
|
# [2.0.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.13...@jscad/regl-renderer@2.0.0) (2021-04-12)
|
|
338
189
|
|
|
339
190
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
340
191
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
192
|
# [2.0.0-alpha.13](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.12...@jscad/regl-renderer@2.0.0-alpha.13) (2021-03-07)
|
|
346
193
|
|
|
347
194
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
348
195
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
196
|
# [2.0.0-alpha.12](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.11...@jscad/regl-renderer@2.0.0-alpha.12) (2021-02-07)
|
|
354
197
|
|
|
355
198
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
356
199
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
200
|
# [2.0.0-alpha.11](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.10...@jscad/regl-renderer@2.0.0-alpha.11) (2021-01-02)
|
|
362
201
|
|
|
363
202
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
364
203
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
204
|
# [2.0.0-alpha.10](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.9...@jscad/regl-renderer@2.0.0-alpha.10) (2020-12-04)
|
|
370
205
|
|
|
371
|
-
|
|
372
206
|
### Bug Fixes
|
|
373
207
|
|
|
374
208
|
* **regl-renderer:** variable distance in pan controls ([#735](https://github.com/jscad/OpenJSCAD.org/issues/735)) ([9ad661c](https://github.com/jscad/OpenJSCAD.org/commit/9ad661c44cb87ee6ae58f20a69eaad5fd83a05a6))
|
|
375
209
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
210
|
# [2.0.0-alpha.9](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.8...@jscad/regl-renderer@2.0.0-alpha.9) (2020-11-07)
|
|
381
211
|
|
|
382
|
-
|
|
383
212
|
### Bug Fixes
|
|
384
213
|
|
|
385
214
|
* **regl-renderer:** Changes to improve regl-renderer ([#722](https://github.com/jscad/OpenJSCAD.org/issues/722)) ([7bcc689](https://github.com/jscad/OpenJSCAD.org/commit/7bcc689e3d36cfbc3ac6f9b4c3822a72d54a996e))
|
|
386
215
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
216
|
# [2.0.0-alpha.8](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.7...@jscad/regl-renderer@2.0.0-alpha.8) (2020-10-11)
|
|
392
217
|
|
|
393
|
-
|
|
394
218
|
### Bug Fixes
|
|
395
219
|
|
|
396
220
|
* **all:** V2 : several fixes for modeling ([#705](https://github.com/jscad/OpenJSCAD.org/issues/705)) ([62017a4](https://github.com/jscad/OpenJSCAD.org/commit/62017a41214169d6e000f1e0c11aaefdd68e1097))
|
|
397
221
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
222
|
# [2.0.0-alpha.7](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.6...@jscad/regl-renderer@2.0.0-alpha.7) (2020-09-29)
|
|
403
223
|
|
|
404
224
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
405
225
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
226
|
# [2.0.0-alpha.6](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.5...@jscad/regl-renderer@2.0.0-alpha.6) (2020-09-28)
|
|
411
227
|
|
|
412
228
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
413
229
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
230
|
# [2.0.0-alpha.5](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.4...@jscad/regl-renderer@2.0.0-alpha.5) (2020-09-19)
|
|
419
231
|
|
|
420
|
-
|
|
421
232
|
### Bug Fixes
|
|
422
233
|
|
|
423
234
|
* **all:** support sparse arrays from main() ([#672](https://github.com/jscad/OpenJSCAD.org/issues/672)) ([209961d](https://github.com/jscad/OpenJSCAD.org/commit/209961d41ebf77373d427a7986934d195780f118))
|
|
424
235
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
236
|
# [2.0.0-alpha.4](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.3...@jscad/regl-renderer@2.0.0-alpha.4) (2020-09-08)
|
|
430
237
|
|
|
431
238
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
432
239
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
240
|
# [2.0.0-alpha.3](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.2...@jscad/regl-renderer@2.0.0-alpha.3) (2020-09-02)
|
|
438
241
|
|
|
439
242
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
440
243
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
244
|
# [2.0.0-alpha.2](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.1...@jscad/regl-renderer@2.0.0-alpha.2) (2020-08-26)
|
|
446
245
|
|
|
447
246
|
* **regl-renderer:** various fixes to renderer
|
|
448
247
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
248
|
# [2.0.0-alpha.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/regl-renderer@2.0.0-alpha.0...@jscad/regl-renderer@2.0.0-alpha.1) (2020-08-19)
|
|
454
249
|
|
|
455
250
|
**Note:** Version bump only for package @jscad/regl-renderer
|
|
456
251
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
252
|
# 2.0.0-alpha.0 (2020-08-13)
|
|
462
253
|
|
|
463
|
-
|
|
464
254
|
### Bug Fixes
|
|
465
255
|
|
|
466
256
|
* **regl-renderer:** small tweaks and fixes for V2 ([#484](https://github.com/jscad/OpenJSCAD.org/issues/484)) ([ee50200](https://github.com/jscad/OpenJSCAD.org/commit/ee50200bfcacd8078fa6f1fd73f6cd866afce5ed))
|
|
467
257
|
* **regl-renderer:** implemented an alternative caching scheme in render
|
|
468
258
|
|
|
469
|
-
|
|
470
259
|
### Features
|
|
471
260
|
|
|
472
261
|
* **regl-renderer:** Overhaul and V2 groundwork ([#425](https://github.com/jscad/OpenJSCAD.org/issues/425)) ([7ccc789](https://github.com/jscad/OpenJSCAD.org/commit/7ccc7898ddf98f0cf9425a67a8ffdf79ebb82b2a))
|
|
@@ -1,304 +1,304 @@
|
|
|
1
1
|
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jscadReglRenderer = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
|
2
|
-
const flatten=t=>t.reduce((t,a)=>Array.isArray(a)?t.concat(flatten(a)):t.concat(a),[]);module.exports=flatten;
|
|
3
|
-
|
|
4
|
-
},{}],2:[function(require,module,exports){
|
|
5
|
-
const fnNumberSort=(o,r)=>o-r;module.exports=fnNumberSort;
|
|
6
|
-
|
|
7
|
-
},{}],3:[function(require,module,exports){
|
|
8
|
-
const head=r=>{if(Array.isArray(r)&&0!==r.length)return r[0]};module.exports=head;
|
|
9
|
-
|
|
10
|
-
},{}],4:[function(require,module,exports){
|
|
11
|
-
module.exports={flatten:require("./flatten"),fnNumberSort:require("./fnNumberSort"),head:require("./head"),insertSorted:require("./insertSorted"),nth:require("./nth"),padToLength:require("./padToLength"),toArray:require("./toArray")};
|
|
12
|
-
|
|
13
|
-
},{"./flatten":1,"./fnNumberSort":2,"./head":3,"./insertSorted":5,"./nth":6,"./padToLength":7,"./toArray":8}],5:[function(require,module,exports){
|
|
14
|
-
const insertSorted=(t,e,o)=>{let r=0,n=t.length;for(;n>r;){const s=Math.floor((r+n)/2);o(e,t[s])>0?r=s+1:n=s}return t.splice(r,0,e),t};module.exports=insertSorted;
|
|
15
|
-
|
|
16
|
-
},{}],6:[function(require,module,exports){
|
|
17
|
-
const nth=(r,t)=>{if(Array.isArray(r)&&!(r.length<t))return r[t]};module.exports=nth;
|
|
18
|
-
|
|
19
|
-
},{}],7:[function(require,module,exports){
|
|
20
|
-
const padToLength=(e,o,t)=>{for(e=e.slice();e.length<t;)e.push(o);return e};module.exports=padToLength;
|
|
21
|
-
|
|
22
|
-
},{}],8:[function(require,module,exports){
|
|
23
|
-
const toArray=r=>Array.isArray(r)?r:null==r?[]:[r];module.exports=toArray;
|
|
24
|
-
|
|
25
|
-
},{}],9:[function(require,module,exports){
|
|
26
2
|
var transform=require("./lib/projectMat4");function unproject(r,t,e,o){var n=e[0],u=e[1],a=e[2],c=e[3],p=t[0],f=t[1],i=t[2];return p-=n,f=c-f-1,f-=u,r[0]=2*p/a-1,r[1]=2*f/c-1,r[2]=2*i-1,transform(r,r,o)}module.exports=unproject;
|
|
27
3
|
|
|
28
|
-
},{"./lib/projectMat4":
|
|
4
|
+
},{"./lib/projectMat4":2}],2:[function(require,module,exports){
|
|
29
5
|
function project(r,e,o){var t=e[0],c=e[1],n=e[2],p=o[0],u=o[1],j=o[2],a=o[3],d=o[4],f=o[5],i=o[6],l=o[7],m=o[8],s=o[9],v=o[10],x=o[11],b=o[12],g=o[13],h=o[14],k=1/(t*a+c*l+n*x+o[15]);return r[0]=(t*p+c*d+n*m+b)*k,r[1]=(t*u+c*f+n*s+g)*k,r[2]=(t*j+c*i+n*v+h)*k,r}module.exports=project;
|
|
30
6
|
|
|
31
|
-
},{}],
|
|
7
|
+
},{}],3:[function(require,module,exports){
|
|
32
8
|
function adjoint(n,o){var t=o[0],r=o[1],a=o[2],d=o[3],e=o[4],i=o[5],u=o[6],j=o[7],c=o[8],f=o[9],l=o[10],m=o[11],p=o[12],s=o[13],v=o[14],x=o[15];return n[0]=i*(l*x-m*v)-f*(u*x-j*v)+s*(u*m-j*l),n[1]=-(r*(l*x-m*v)-f*(a*x-d*v)+s*(a*m-d*l)),n[2]=r*(u*x-j*v)-i*(a*x-d*v)+s*(a*j-d*u),n[3]=-(r*(u*m-j*l)-i*(a*m-d*l)+f*(a*j-d*u)),n[4]=-(e*(l*x-m*v)-c*(u*x-j*v)+p*(u*m-j*l)),n[5]=t*(l*x-m*v)-c*(a*x-d*v)+p*(a*m-d*l),n[6]=-(t*(u*x-j*v)-e*(a*x-d*v)+p*(a*j-d*u)),n[7]=t*(u*m-j*l)-e*(a*m-d*l)+c*(a*j-d*u),n[8]=e*(f*x-m*s)-c*(i*x-j*s)+p*(i*m-j*f),n[9]=-(t*(f*x-m*s)-c*(r*x-d*s)+p*(r*m-d*f)),n[10]=t*(i*x-j*s)-e*(r*x-d*s)+p*(r*j-d*i),n[11]=-(t*(i*m-j*f)-e*(r*m-d*f)+c*(r*j-d*i)),n[12]=-(e*(f*v-l*s)-c*(i*v-u*s)+p*(i*l-u*f)),n[13]=t*(f*v-l*s)-c*(r*v-a*s)+p*(r*l-a*f),n[14]=-(t*(i*v-u*s)-e*(r*v-a*s)+p*(r*u-a*i)),n[15]=t*(i*l-u*f)-e*(r*l-a*f)+c*(r*u-a*i),n}module.exports=adjoint;
|
|
33
9
|
|
|
34
|
-
},{}],
|
|
10
|
+
},{}],4:[function(require,module,exports){
|
|
35
11
|
function clone(e){var n=new Float32Array(16);return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n}module.exports=clone;
|
|
36
12
|
|
|
37
|
-
},{}],
|
|
13
|
+
},{}],5:[function(require,module,exports){
|
|
38
14
|
function copy(o,c){return o[0]=c[0],o[1]=c[1],o[2]=c[2],o[3]=c[3],o[4]=c[4],o[5]=c[5],o[6]=c[6],o[7]=c[7],o[8]=c[8],o[9]=c[9],o[10]=c[10],o[11]=c[11],o[12]=c[12],o[13]=c[13],o[14]=c[14],o[15]=c[15],o}module.exports=copy;
|
|
39
15
|
|
|
40
|
-
},{}],
|
|
16
|
+
},{}],6:[function(require,module,exports){
|
|
41
17
|
function create(){var e=new Float32Array(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}module.exports=create;
|
|
42
18
|
|
|
43
|
-
},{}],
|
|
19
|
+
},{}],7:[function(require,module,exports){
|
|
44
20
|
function determinant(e){var n=e[0],t=e[1],r=e[2],a=e[3],d=e[4],i=e[5],m=e[6],o=e[7],u=e[8],c=e[9],f=e[10],l=e[11],p=e[12],s=e[13],v=e[14],x=e[15];return(n*i-t*d)*(f*x-l*v)-(n*m-r*d)*(c*x-l*s)+(n*o-a*d)*(c*v-f*s)+(t*m-r*i)*(u*x-l*p)-(t*o-a*i)*(u*v-f*p)+(r*o-a*m)*(u*s-c*p)}module.exports=determinant;
|
|
45
21
|
|
|
46
|
-
},{}],
|
|
22
|
+
},{}],8:[function(require,module,exports){
|
|
47
23
|
function fromQuat(r,o){var t=o[0],u=o[1],a=o[2],e=o[3],f=t+t,m=u+u,n=a+a,Q=t*f,c=u*f,d=u*m,i=a*f,l=a*m,p=a*n,s=e*f,v=e*m,x=e*n;return r[0]=1-d-p,r[1]=c+x,r[2]=i-v,r[3]=0,r[4]=c-x,r[5]=1-Q-p,r[6]=l+s,r[7]=0,r[8]=i+v,r[9]=l-s,r[10]=1-Q-d,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}module.exports=fromQuat;
|
|
48
24
|
|
|
49
|
-
},{}],
|
|
25
|
+
},{}],9:[function(require,module,exports){
|
|
50
26
|
function fromRotation(t,o,a){var n,r,s,e=a[0],h=a[1],i=a[2],u=Math.sqrt(e*e+h*h+i*i);return Math.abs(u)<1e-6?null:(e*=u=1/u,h*=u,i*=u,n=Math.sin(o),s=1-(r=Math.cos(o)),t[0]=e*e*s+r,t[1]=h*e*s+i*n,t[2]=i*e*s-h*n,t[3]=0,t[4]=e*h*s-i*n,t[5]=h*h*s+r,t[6]=i*h*s+e*n,t[7]=0,t[8]=e*i*s+h*n,t[9]=h*i*s-e*n,t[10]=i*i*s+r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}module.exports=fromRotation;
|
|
51
27
|
|
|
52
|
-
},{}],
|
|
28
|
+
},{}],10:[function(require,module,exports){
|
|
53
29
|
function fromRotationTranslation(o,n,t){var r=n[0],a=n[1],i=n[2],e=n[3],f=r+r,l=a+a,m=i+i,s=r*f,u=r*l,R=r*m,T=a*l,c=a*m,d=i*m,p=e*f,v=e*l,x=e*m;return o[0]=1-(T+d),o[1]=u+x,o[2]=R-v,o[3]=0,o[4]=u-x,o[5]=1-(s+d),o[6]=c+p,o[7]=0,o[8]=R+v,o[9]=c-p,o[10]=1-(s+T),o[11]=0,o[12]=t[0],o[13]=t[1],o[14]=t[2],o[15]=1,o}module.exports=fromRotationTranslation;
|
|
54
30
|
|
|
55
|
-
},{}],
|
|
31
|
+
},{}],11:[function(require,module,exports){
|
|
56
32
|
function fromScaling(n,o){return n[0]=o[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=o[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=o[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}module.exports=fromScaling;
|
|
57
33
|
|
|
58
|
-
},{}],
|
|
34
|
+
},{}],12:[function(require,module,exports){
|
|
59
35
|
function fromTranslation(n,o){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=o[0],n[13]=o[1],n[14]=o[2],n[15]=1,n}module.exports=fromTranslation;
|
|
60
36
|
|
|
61
|
-
},{}],
|
|
37
|
+
},{}],13:[function(require,module,exports){
|
|
62
38
|
function fromXRotation(o,t){var n=Math.sin(t),r=Math.cos(t);return o[0]=1,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=r,o[6]=n,o[7]=0,o[8]=0,o[9]=-n,o[10]=r,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o}module.exports=fromXRotation;
|
|
63
39
|
|
|
64
|
-
},{}],
|
|
40
|
+
},{}],14:[function(require,module,exports){
|
|
65
41
|
function fromYRotation(o,t){var n=Math.sin(t),r=Math.cos(t);return o[0]=r,o[1]=0,o[2]=-n,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=n,o[9]=0,o[10]=r,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o}module.exports=fromYRotation;
|
|
66
42
|
|
|
67
|
-
},{}],
|
|
43
|
+
},{}],15:[function(require,module,exports){
|
|
68
44
|
function fromZRotation(o,t){var n=Math.sin(t),r=Math.cos(t);return o[0]=r,o[1]=n,o[2]=0,o[3]=0,o[4]=-n,o[5]=r,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=1,o[11]=0,o[12]=0,o[13]=0,o[14]=0,o[15]=1,o}module.exports=fromZRotation;
|
|
69
45
|
|
|
70
|
-
},{}],
|
|
46
|
+
},{}],16:[function(require,module,exports){
|
|
71
47
|
function frustum(u,r,t,e,f,m,n){var o=1/(t-r),s=1/(f-e),a=1/(m-n);return u[0]=2*m*o,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=2*m*s,u[6]=0,u[7]=0,u[8]=(t+r)*o,u[9]=(f+e)*s,u[10]=(n+m)*a,u[11]=-1,u[12]=0,u[13]=0,u[14]=n*m*2*a,u[15]=0,u}module.exports=frustum;
|
|
72
48
|
|
|
73
|
-
},{}],
|
|
49
|
+
},{}],17:[function(require,module,exports){
|
|
74
50
|
function identity(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}module.exports=identity;
|
|
75
51
|
|
|
76
|
-
},{}],
|
|
52
|
+
},{}],18:[function(require,module,exports){
|
|
77
53
|
module.exports={create:require("./create"),clone:require("./clone"),copy:require("./copy"),identity:require("./identity"),transpose:require("./transpose"),invert:require("./invert"),adjoint:require("./adjoint"),determinant:require("./determinant"),multiply:require("./multiply"),translate:require("./translate"),scale:require("./scale"),rotate:require("./rotate"),rotateX:require("./rotateX"),rotateY:require("./rotateY"),rotateZ:require("./rotateZ"),fromRotation:require("./fromRotation"),fromRotationTranslation:require("./fromRotationTranslation"),fromScaling:require("./fromScaling"),fromTranslation:require("./fromTranslation"),fromXRotation:require("./fromXRotation"),fromYRotation:require("./fromYRotation"),fromZRotation:require("./fromZRotation"),fromQuat:require("./fromQuat"),frustum:require("./frustum"),perspective:require("./perspective"),perspectiveFromFieldOfView:require("./perspectiveFromFieldOfView"),ortho:require("./ortho"),lookAt:require("./lookAt"),str:require("./str")};
|
|
78
54
|
|
|
79
|
-
},{"./adjoint":
|
|
55
|
+
},{"./adjoint":3,"./clone":4,"./copy":5,"./create":6,"./determinant":7,"./fromQuat":8,"./fromRotation":9,"./fromRotationTranslation":10,"./fromScaling":11,"./fromTranslation":12,"./fromXRotation":13,"./fromYRotation":14,"./fromZRotation":15,"./frustum":16,"./identity":17,"./invert":19,"./lookAt":20,"./multiply":21,"./ortho":22,"./perspective":23,"./perspectiveFromFieldOfView":24,"./rotate":25,"./rotateX":26,"./rotateY":27,"./rotateZ":28,"./scale":29,"./str":30,"./translate":31,"./transpose":32}],19:[function(require,module,exports){
|
|
80
56
|
function invert(n,r){var e=r[0],t=r[1],u=r[2],i=r[3],l=r[4],o=r[5],v=r[6],a=r[7],c=r[8],d=r[9],f=r[10],m=r[11],p=r[12],s=r[13],x=r[14],b=r[15],g=e*o-t*l,h=e*v-u*l,j=e*a-i*l,k=t*v-u*o,q=t*a-i*o,w=u*a-i*v,y=c*s-d*p,z=c*x-f*p,A=c*b-m*p,B=d*x-f*s,C=d*b-m*s,D=f*b-m*x,E=g*D-h*C+j*B+k*A-q*z+w*y;return E?(E=1/E,n[0]=(o*D-v*C+a*B)*E,n[1]=(u*C-t*D-i*B)*E,n[2]=(s*w-x*q+b*k)*E,n[3]=(f*q-d*w-m*k)*E,n[4]=(v*A-l*D-a*z)*E,n[5]=(e*D-u*A+i*z)*E,n[6]=(x*j-p*w-b*h)*E,n[7]=(c*w-f*j+m*h)*E,n[8]=(l*C-o*A+a*y)*E,n[9]=(t*A-e*C-i*y)*E,n[10]=(p*q-s*j+b*g)*E,n[11]=(d*j-c*q-m*g)*E,n[12]=(o*z-l*B-v*y)*E,n[13]=(e*B-t*z+u*y)*E,n[14]=(s*h-p*k-x*g)*E,n[15]=(c*k-d*h+f*g)*E,n):null}module.exports=invert;
|
|
81
57
|
|
|
82
|
-
},{}],
|
|
58
|
+
},{}],20:[function(require,module,exports){
|
|
83
59
|
var identity=require("./identity");function lookAt(t,a,e,r){var i,o,s,h,n,M,d,q,u,b,l=a[0],y=a[1],k=a[2],v=r[0],A=r[1],c=r[2],f=e[0],m=e[1],p=e[2];return Math.abs(l-f)<1e-6&&Math.abs(y-m)<1e-6&&Math.abs(k-p)<1e-6?identity(t):(d=l-f,q=y-m,u=k-p,i=A*(u*=b=1/Math.sqrt(d*d+q*q+u*u))-c*(q*=b),o=c*(d*=b)-v*u,s=v*q-A*d,(b=Math.sqrt(i*i+o*o+s*s))?(i*=b=1/b,o*=b,s*=b):(i=0,o=0,s=0),h=q*s-u*o,n=u*i-d*s,M=d*o-q*i,(b=Math.sqrt(h*h+n*n+M*M))?(h*=b=1/b,n*=b,M*=b):(h=0,n=0,M=0),t[0]=i,t[1]=h,t[2]=d,t[3]=0,t[4]=o,t[5]=n,t[6]=q,t[7]=0,t[8]=s,t[9]=M,t[10]=u,t[11]=0,t[12]=-(i*l+o*y+s*k),t[13]=-(h*l+n*y+M*k),t[14]=-(d*l+q*y+u*k),t[15]=1,t)}module.exports=lookAt;
|
|
84
60
|
|
|
85
|
-
},{"./identity":
|
|
61
|
+
},{"./identity":17}],21:[function(require,module,exports){
|
|
86
62
|
function multiply(l,t,u){var r=t[0],e=t[1],i=t[2],m=t[3],n=t[4],o=t[5],p=t[6],y=t[7],a=t[8],c=t[9],d=t[10],f=t[11],s=t[12],v=t[13],x=t[14],b=t[15],g=u[0],h=u[1],j=u[2],k=u[3];return l[0]=g*r+h*n+j*a+k*s,l[1]=g*e+h*o+j*c+k*v,l[2]=g*i+h*p+j*d+k*x,l[3]=g*m+h*y+j*f+k*b,g=u[4],h=u[5],j=u[6],k=u[7],l[4]=g*r+h*n+j*a+k*s,l[5]=g*e+h*o+j*c+k*v,l[6]=g*i+h*p+j*d+k*x,l[7]=g*m+h*y+j*f+k*b,g=u[8],h=u[9],j=u[10],k=u[11],l[8]=g*r+h*n+j*a+k*s,l[9]=g*e+h*o+j*c+k*v,l[10]=g*i+h*p+j*d+k*x,l[11]=g*m+h*y+j*f+k*b,g=u[12],h=u[13],j=u[14],k=u[15],l[12]=g*r+h*n+j*a+k*s,l[13]=g*e+h*o+j*c+k*v,l[14]=g*i+h*p+j*d+k*x,l[15]=g*m+h*y+j*f+k*b,l}module.exports=multiply;
|
|
87
63
|
|
|
88
|
-
},{}],
|
|
64
|
+
},{}],22:[function(require,module,exports){
|
|
89
65
|
function ortho(o,r,t,e,n,u,h){var a=1/(r-t),c=1/(e-n),d=1/(u-h);return o[0]=-2*a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=-2*c,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=2*d,o[11]=0,o[12]=(r+t)*a,o[13]=(n+e)*c,o[14]=(h+u)*d,o[15]=1,o}module.exports=ortho;
|
|
90
66
|
|
|
91
|
-
},{}],
|
|
67
|
+
},{}],23:[function(require,module,exports){
|
|
92
68
|
function perspective(e,t,r,p,n){var a=1/Math.tan(t/2),c=1/(p-n);return e[0]=a/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=(n+p)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*n*p*c,e[15]=0,e}module.exports=perspective;
|
|
93
69
|
|
|
94
|
-
},{}],
|
|
70
|
+
},{}],24:[function(require,module,exports){
|
|
95
71
|
function perspectiveFromFieldOfView(e,t,a,r){var h=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),n=Math.tan(t.leftDegrees*Math.PI/180),M=Math.tan(t.rightDegrees*Math.PI/180),s=2/(n+M),o=2/(h+i);return e[0]=s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=-(n-M)*s*.5,e[9]=(h-i)*o*.5,e[10]=r/(a-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*a/(a-r),e[15]=0,e}module.exports=perspectiveFromFieldOfView;
|
|
96
72
|
|
|
97
|
-
},{}],
|
|
73
|
+
},{}],25:[function(require,module,exports){
|
|
98
74
|
function rotate(t,a,r,e){var o,n,s,h,u,M,l,c,i,b,d,f,m,p,q,v,x,g,j,k,w,y,z,A,B=e[0],C=e[1],D=e[2],E=Math.sqrt(B*B+C*C+D*D);return Math.abs(E)<1e-6?null:(B*=E=1/E,C*=E,D*=E,o=Math.sin(r),s=1-(n=Math.cos(r)),h=a[0],u=a[1],M=a[2],l=a[3],c=a[4],i=a[5],b=a[6],d=a[7],f=a[8],m=a[9],p=a[10],q=a[11],v=B*B*s+n,x=C*B*s+D*o,g=D*B*s-C*o,j=B*C*s-D*o,k=C*C*s+n,w=D*C*s+B*o,y=B*D*s+C*o,z=C*D*s-B*o,A=D*D*s+n,t[0]=h*v+c*x+f*g,t[1]=u*v+i*x+m*g,t[2]=M*v+b*x+p*g,t[3]=l*v+d*x+q*g,t[4]=h*j+c*k+f*w,t[5]=u*j+i*k+m*w,t[6]=M*j+b*k+p*w,t[7]=l*j+d*k+q*w,t[8]=h*y+c*z+f*A,t[9]=u*y+i*z+m*A,t[10]=M*y+b*z+p*A,t[11]=l*y+d*z+q*A,a!==t&&(t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t)}module.exports=rotate;
|
|
99
75
|
|
|
100
|
-
},{}],
|
|
76
|
+
},{}],26:[function(require,module,exports){
|
|
101
77
|
function rotateX(t,o,r){var a=Math.sin(r),e=Math.cos(r),n=o[4],s=o[5],u=o[6],c=o[7],h=o[8],i=o[9],M=o[10],X=o[11];return o!==t&&(t[0]=o[0],t[1]=o[1],t[2]=o[2],t[3]=o[3],t[12]=o[12],t[13]=o[13],t[14]=o[14],t[15]=o[15]),t[4]=n*e+h*a,t[5]=s*e+i*a,t[6]=u*e+M*a,t[7]=c*e+X*a,t[8]=h*e-n*a,t[9]=i*e-s*a,t[10]=M*e-u*a,t[11]=X*e-c*a,t}module.exports=rotateX;
|
|
102
78
|
|
|
103
|
-
},{}],
|
|
79
|
+
},{}],27:[function(require,module,exports){
|
|
104
80
|
function rotateY(t,o,r){var a=Math.sin(r),e=Math.cos(r),n=o[0],s=o[1],u=o[2],c=o[3],h=o[8],i=o[9],M=o[10],Y=o[11];return o!==t&&(t[4]=o[4],t[5]=o[5],t[6]=o[6],t[7]=o[7],t[12]=o[12],t[13]=o[13],t[14]=o[14],t[15]=o[15]),t[0]=n*e-h*a,t[1]=s*e-i*a,t[2]=u*e-M*a,t[3]=c*e-Y*a,t[8]=n*a+h*e,t[9]=s*a+i*e,t[10]=u*a+M*e,t[11]=c*a+Y*e,t}module.exports=rotateY;
|
|
105
81
|
|
|
106
|
-
},{}],
|
|
82
|
+
},{}],28:[function(require,module,exports){
|
|
107
83
|
function rotateZ(t,o,r){var a=Math.sin(r),e=Math.cos(r),n=o[0],s=o[1],u=o[2],c=o[3],h=o[4],i=o[5],M=o[6],Z=o[7];return o!==t&&(t[8]=o[8],t[9]=o[9],t[10]=o[10],t[11]=o[11],t[12]=o[12],t[13]=o[13],t[14]=o[14],t[15]=o[15]),t[0]=n*e+h*a,t[1]=s*e+i*a,t[2]=u*e+M*a,t[3]=c*e+Z*a,t[4]=h*e-n*a,t[5]=i*e-s*a,t[6]=M*e-u*a,t[7]=Z*e-c*a,t}module.exports=rotateZ;
|
|
108
84
|
|
|
109
|
-
},{}],
|
|
85
|
+
},{}],29:[function(require,module,exports){
|
|
110
86
|
function scale(e,r,a){var c=a[0],l=a[1],n=a[2];return e[0]=r[0]*c,e[1]=r[1]*c,e[2]=r[2]*c,e[3]=r[3]*c,e[4]=r[4]*l,e[5]=r[5]*l,e[6]=r[6]*l,e[7]=r[7]*l,e[8]=r[8]*n,e[9]=r[9]*n,e[10]=r[10]*n,e[11]=r[11]*n,e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}module.exports=scale;
|
|
111
87
|
|
|
112
|
-
},{}],
|
|
88
|
+
},{}],30:[function(require,module,exports){
|
|
113
89
|
function str(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}module.exports=str;
|
|
114
90
|
|
|
115
|
-
},{}],
|
|
91
|
+
},{}],31:[function(require,module,exports){
|
|
116
92
|
function translate(t,r,a){var e,n,l,o,s,u,c,d,f,i,m,p,v=a[0],x=a[1],b=a[2];return r===t?(t[12]=r[0]*v+r[4]*x+r[8]*b+r[12],t[13]=r[1]*v+r[5]*x+r[9]*b+r[13],t[14]=r[2]*v+r[6]*x+r[10]*b+r[14],t[15]=r[3]*v+r[7]*x+r[11]*b+r[15]):(e=r[0],n=r[1],l=r[2],o=r[3],s=r[4],u=r[5],c=r[6],d=r[7],f=r[8],i=r[9],m=r[10],p=r[11],t[0]=e,t[1]=n,t[2]=l,t[3]=o,t[4]=s,t[5]=u,t[6]=c,t[7]=d,t[8]=f,t[9]=i,t[10]=m,t[11]=p,t[12]=e*v+s*x+f*b+r[12],t[13]=n*v+u*x+i*b+r[13],t[14]=l*v+c*x+m*b+r[14],t[15]=o*v+d*x+p*b+r[15]),t}module.exports=translate;
|
|
117
93
|
|
|
118
|
-
},{}],
|
|
94
|
+
},{}],32:[function(require,module,exports){
|
|
119
95
|
function transpose(e,r){if(e===r){var s=r[1],n=r[2],o=r[3],t=r[6],a=r[7],p=r[11];e[1]=r[4],e[2]=r[8],e[3]=r[12],e[4]=s,e[6]=r[9],e[7]=r[13],e[8]=n,e[9]=t,e[11]=r[14],e[12]=o,e[13]=a,e[14]=p}else e[0]=r[0],e[1]=r[4],e[2]=r[8],e[3]=r[12],e[4]=r[1],e[5]=r[5],e[6]=r[9],e[7]=r[13],e[8]=r[2],e[9]=r[6],e[10]=r[10],e[11]=r[14],e[12]=r[3],e[13]=r[7],e[14]=r[11],e[15]=r[15];return e}module.exports=transpose;
|
|
120
96
|
|
|
121
|
-
},{}],
|
|
97
|
+
},{}],33:[function(require,module,exports){
|
|
122
98
|
function add(d,e,n){return d[0]=e[0]+n[0],d[1]=e[1]+n[1],d[2]=e[2]+n[2],d}module.exports=add;
|
|
123
99
|
|
|
124
|
-
},{}],
|
|
100
|
+
},{}],34:[function(require,module,exports){
|
|
125
101
|
module.exports=angle;var fromValues=require("./fromValues"),normalize=require("./normalize"),dot=require("./dot");function angle(r,e){var a=fromValues(r[0],r[1],r[2]),o=fromValues(e[0],e[1],e[2]);normalize(a,a),normalize(o,o);var l=dot(a,o);return l>1?0:Math.acos(l)}
|
|
126
102
|
|
|
127
|
-
},{"./dot":
|
|
103
|
+
},{"./dot":44,"./fromValues":50,"./normalize":61}],35:[function(require,module,exports){
|
|
128
104
|
function ceil(e,c){return e[0]=Math.ceil(c[0]),e[1]=Math.ceil(c[1]),e[2]=Math.ceil(c[2]),e}module.exports=ceil;
|
|
129
105
|
|
|
130
|
-
},{}],
|
|
106
|
+
},{}],36:[function(require,module,exports){
|
|
131
107
|
function clone(e){var n=new Float32Array(3);return n[0]=e[0],n[1]=e[1],n[2]=e[2],n}module.exports=clone;
|
|
132
108
|
|
|
133
|
-
},{}],
|
|
109
|
+
},{}],37:[function(require,module,exports){
|
|
134
110
|
function copy(o,c){return o[0]=c[0],o[1]=c[1],o[2]=c[2],o}module.exports=copy;
|
|
135
111
|
|
|
136
|
-
},{}],
|
|
112
|
+
},{}],38:[function(require,module,exports){
|
|
137
113
|
function create(){var e=new Float32Array(3);return e[0]=0,e[1]=0,e[2]=0,e}module.exports=create;
|
|
138
114
|
|
|
139
|
-
},{}],
|
|
115
|
+
},{}],39:[function(require,module,exports){
|
|
140
116
|
function cross(r,o,s){var c=o[0],e=o[1],n=o[2],t=s[0],u=s[1],a=s[2];return r[0]=e*a-n*u,r[1]=n*t-c*a,r[2]=c*u-e*t,r}module.exports=cross;
|
|
141
117
|
|
|
142
|
-
},{}],
|
|
118
|
+
},{}],40:[function(require,module,exports){
|
|
143
119
|
module.exports=require("./distance");
|
|
144
120
|
|
|
145
|
-
},{"./distance":
|
|
121
|
+
},{"./distance":41}],41:[function(require,module,exports){
|
|
146
122
|
function distance(t,e){var n=e[0]-t[0],r=e[1]-t[1],a=e[2]-t[2];return Math.sqrt(n*n+r*r+a*a)}module.exports=distance;
|
|
147
123
|
|
|
148
|
-
},{}],
|
|
124
|
+
},{}],42:[function(require,module,exports){
|
|
149
125
|
module.exports=require("./divide");
|
|
150
126
|
|
|
151
|
-
},{"./divide":
|
|
127
|
+
},{"./divide":43}],43:[function(require,module,exports){
|
|
152
128
|
function divide(d,e,i){return d[0]=e[0]/i[0],d[1]=e[1]/i[1],d[2]=e[2]/i[2],d}module.exports=divide;
|
|
153
129
|
|
|
154
|
-
},{}],
|
|
130
|
+
},{}],44:[function(require,module,exports){
|
|
155
131
|
function dot(o,t){return o[0]*t[0]+o[1]*t[1]+o[2]*t[2]}module.exports=dot;
|
|
156
132
|
|
|
157
|
-
},{}],
|
|
133
|
+
},{}],45:[function(require,module,exports){
|
|
158
134
|
module.exports=1e-6;
|
|
159
135
|
|
|
160
|
-
},{}],
|
|
136
|
+
},{}],46:[function(require,module,exports){
|
|
161
137
|
module.exports=equals;var EPSILON=require("./epsilon");function equals(a,t){var s=a[0],h=a[1],M=a[2],b=t[0],e=t[1],r=t[2];return Math.abs(s-b)<=EPSILON*Math.max(1,Math.abs(s),Math.abs(b))&&Math.abs(h-e)<=EPSILON*Math.max(1,Math.abs(h),Math.abs(e))&&Math.abs(M-r)<=EPSILON*Math.max(1,Math.abs(M),Math.abs(r))}
|
|
162
138
|
|
|
163
|
-
},{"./epsilon":
|
|
139
|
+
},{"./epsilon":45}],47:[function(require,module,exports){
|
|
164
140
|
function exactEquals(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}module.exports=exactEquals;
|
|
165
141
|
|
|
166
|
-
},{}],
|
|
142
|
+
},{}],48:[function(require,module,exports){
|
|
167
143
|
function floor(o,r){return o[0]=Math.floor(r[0]),o[1]=Math.floor(r[1]),o[2]=Math.floor(r[2]),o}module.exports=floor;
|
|
168
144
|
|
|
169
|
-
},{}],
|
|
145
|
+
},{}],49:[function(require,module,exports){
|
|
170
146
|
module.exports=forEach;var vec=require("./create")();function forEach(e,c,r,v,t,a){var n,o;for(c||(c=3),r||(r=0),o=v?Math.min(v*c+r,e.length):e.length,n=r;n<o;n+=c)vec[0]=e[n],vec[1]=e[n+1],vec[2]=e[n+2],t(vec,vec,a),e[n]=vec[0],e[n+1]=vec[1],e[n+2]=vec[2];return e}
|
|
171
147
|
|
|
172
|
-
},{"./create":
|
|
148
|
+
},{"./create":38}],50:[function(require,module,exports){
|
|
173
149
|
function fromValues(r,e,o){var a=new Float32Array(3);return a[0]=r,a[1]=e,a[2]=o,a}module.exports=fromValues;
|
|
174
150
|
|
|
175
|
-
},{}],
|
|
151
|
+
},{}],51:[function(require,module,exports){
|
|
176
152
|
module.exports={EPSILON:require("./epsilon"),create:require("./create"),clone:require("./clone"),angle:require("./angle"),fromValues:require("./fromValues"),copy:require("./copy"),set:require("./set"),equals:require("./equals"),exactEquals:require("./exactEquals"),add:require("./add"),subtract:require("./subtract"),sub:require("./sub"),multiply:require("./multiply"),mul:require("./mul"),divide:require("./divide"),div:require("./div"),min:require("./min"),max:require("./max"),floor:require("./floor"),ceil:require("./ceil"),round:require("./round"),scale:require("./scale"),scaleAndAdd:require("./scaleAndAdd"),distance:require("./distance"),dist:require("./dist"),squaredDistance:require("./squaredDistance"),sqrDist:require("./sqrDist"),length:require("./length"),len:require("./len"),squaredLength:require("./squaredLength"),sqrLen:require("./sqrLen"),negate:require("./negate"),inverse:require("./inverse"),normalize:require("./normalize"),dot:require("./dot"),cross:require("./cross"),lerp:require("./lerp"),random:require("./random"),transformMat4:require("./transformMat4"),transformMat3:require("./transformMat3"),transformQuat:require("./transformQuat"),rotateX:require("./rotateX"),rotateY:require("./rotateY"),rotateZ:require("./rotateZ"),forEach:require("./forEach")};
|
|
177
153
|
|
|
178
|
-
},{"./add":
|
|
154
|
+
},{"./add":33,"./angle":34,"./ceil":35,"./clone":36,"./copy":37,"./create":38,"./cross":39,"./dist":40,"./distance":41,"./div":42,"./divide":43,"./dot":44,"./epsilon":45,"./equals":46,"./exactEquals":47,"./floor":48,"./forEach":49,"./fromValues":50,"./inverse":52,"./len":53,"./length":54,"./lerp":55,"./max":56,"./min":57,"./mul":58,"./multiply":59,"./negate":60,"./normalize":61,"./random":62,"./rotateX":63,"./rotateY":64,"./rotateZ":65,"./round":66,"./scale":67,"./scaleAndAdd":68,"./set":69,"./sqrDist":70,"./sqrLen":71,"./squaredDistance":72,"./squaredLength":73,"./sub":74,"./subtract":75,"./transformMat3":76,"./transformMat4":77,"./transformQuat":78}],52:[function(require,module,exports){
|
|
179
155
|
function inverse(e,n){return e[0]=1/n[0],e[1]=1/n[1],e[2]=1/n[2],e}module.exports=inverse;
|
|
180
156
|
|
|
181
|
-
},{}],
|
|
157
|
+
},{}],53:[function(require,module,exports){
|
|
182
158
|
module.exports=require("./length");
|
|
183
159
|
|
|
184
|
-
},{"./length":
|
|
160
|
+
},{"./length":54}],54:[function(require,module,exports){
|
|
185
161
|
function length(t){var e=t[0],n=t[1],r=t[2];return Math.sqrt(e*e+n*n+r*r)}module.exports=length;
|
|
186
162
|
|
|
187
|
-
},{}],
|
|
163
|
+
},{}],55:[function(require,module,exports){
|
|
188
164
|
function lerp(r,e,l,n){var o=e[0],p=e[1],t=e[2];return r[0]=o+n*(l[0]-o),r[1]=p+n*(l[1]-p),r[2]=t+n*(l[2]-t),r}module.exports=lerp;
|
|
189
165
|
|
|
190
|
-
},{}],
|
|
166
|
+
},{}],56:[function(require,module,exports){
|
|
191
167
|
function max(a,m,t){return a[0]=Math.max(m[0],t[0]),a[1]=Math.max(m[1],t[1]),a[2]=Math.max(m[2],t[2]),a}module.exports=max;
|
|
192
168
|
|
|
193
|
-
},{}],
|
|
169
|
+
},{}],57:[function(require,module,exports){
|
|
194
170
|
function min(n,i,m){return n[0]=Math.min(i[0],m[0]),n[1]=Math.min(i[1],m[1]),n[2]=Math.min(i[2],m[2]),n}module.exports=min;
|
|
195
171
|
|
|
196
|
-
},{}],
|
|
172
|
+
},{}],58:[function(require,module,exports){
|
|
197
173
|
module.exports=require("./multiply");
|
|
198
174
|
|
|
199
|
-
},{"./multiply":
|
|
175
|
+
},{"./multiply":59}],59:[function(require,module,exports){
|
|
200
176
|
function multiply(l,t,u){return l[0]=t[0]*u[0],l[1]=t[1]*u[1],l[2]=t[2]*u[2],l}module.exports=multiply;
|
|
201
177
|
|
|
202
|
-
},{}],
|
|
178
|
+
},{}],60:[function(require,module,exports){
|
|
203
179
|
function negate(e,n){return e[0]=-n[0],e[1]=-n[1],e[2]=-n[2],e}module.exports=negate;
|
|
204
180
|
|
|
205
|
-
},{}],
|
|
181
|
+
},{}],61:[function(require,module,exports){
|
|
206
182
|
function normalize(r,e){var n=e[0],o=e[1],t=e[2],a=n*n+o*o+t*t;return a>0&&(a=1/Math.sqrt(a),r[0]=e[0]*a,r[1]=e[1]*a,r[2]=e[2]*a),r}module.exports=normalize;
|
|
207
183
|
|
|
208
|
-
},{}],
|
|
184
|
+
},{}],62:[function(require,module,exports){
|
|
209
185
|
function random(a,t){t=t||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,o=Math.sqrt(1-n*n)*t;return a[0]=Math.cos(r)*o,a[1]=Math.sin(r)*o,a[2]=n*t,a}module.exports=random;
|
|
210
186
|
|
|
211
|
-
},{}],
|
|
187
|
+
},{}],63:[function(require,module,exports){
|
|
212
188
|
function rotateX(t,o,r,a){var e=r[1],n=r[2],s=o[1]-e,u=o[2]-n,c=Math.sin(a),h=Math.cos(a);return t[0]=o[0],t[1]=e+s*h-u*c,t[2]=n+s*c+u*h,t}module.exports=rotateX;
|
|
213
189
|
|
|
214
|
-
},{}],
|
|
190
|
+
},{}],64:[function(require,module,exports){
|
|
215
191
|
function rotateY(t,o,r,a){var e=r[0],n=r[2],s=o[0]-e,u=o[2]-n,c=Math.sin(a),h=Math.cos(a);return t[0]=e+u*c+s*h,t[1]=o[1],t[2]=n+u*h-s*c,t}module.exports=rotateY;
|
|
216
192
|
|
|
217
|
-
},{}],
|
|
193
|
+
},{}],65:[function(require,module,exports){
|
|
218
194
|
function rotateZ(t,o,r,a){var e=r[0],n=r[1],s=o[0]-e,u=o[1]-n,c=Math.sin(a),h=Math.cos(a);return t[0]=e+s*h-u*c,t[1]=n+s*c+u*h,t[2]=o[2],t}module.exports=rotateZ;
|
|
219
195
|
|
|
220
|
-
},{}],
|
|
196
|
+
},{}],66:[function(require,module,exports){
|
|
221
197
|
function round(n,o){return n[0]=Math.round(o[0]),n[1]=Math.round(o[1]),n[2]=Math.round(o[2]),n}module.exports=round;
|
|
222
198
|
|
|
223
|
-
},{}],
|
|
199
|
+
},{}],67:[function(require,module,exports){
|
|
224
200
|
function scale(e,c,l){return e[0]=c[0]*l,e[1]=c[1]*l,e[2]=c[2]*l,e}module.exports=scale;
|
|
225
201
|
|
|
226
|
-
},{}],
|
|
202
|
+
},{}],68:[function(require,module,exports){
|
|
227
203
|
function scaleAndAdd(d,e,n,A){return d[0]=e[0]+n[0]*A,d[1]=e[1]+n[1]*A,d[2]=e[2]+n[2]*A,d}module.exports=scaleAndAdd;
|
|
228
204
|
|
|
229
|
-
},{}],
|
|
205
|
+
},{}],69:[function(require,module,exports){
|
|
230
206
|
function set(e,t,n,o){return e[0]=t,e[1]=n,e[2]=o,e}module.exports=set;
|
|
231
207
|
|
|
232
|
-
},{}],
|
|
208
|
+
},{}],70:[function(require,module,exports){
|
|
233
209
|
module.exports=require("./squaredDistance");
|
|
234
210
|
|
|
235
|
-
},{"./squaredDistance":
|
|
211
|
+
},{"./squaredDistance":72}],71:[function(require,module,exports){
|
|
236
212
|
module.exports=require("./squaredLength");
|
|
237
213
|
|
|
238
|
-
},{"./squaredLength":
|
|
214
|
+
},{"./squaredLength":73}],72:[function(require,module,exports){
|
|
239
215
|
function squaredDistance(e,r){var a=r[0]-e[0],n=r[1]-e[1],s=r[2]-e[2];return a*a+n*n+s*s}module.exports=squaredDistance;
|
|
240
216
|
|
|
241
|
-
},{}],
|
|
217
|
+
},{}],73:[function(require,module,exports){
|
|
242
218
|
function squaredLength(e){var r=e[0],n=e[1],t=e[2];return r*r+n*n+t*t}module.exports=squaredLength;
|
|
243
219
|
|
|
244
|
-
},{}],
|
|
220
|
+
},{}],74:[function(require,module,exports){
|
|
245
221
|
module.exports=require("./subtract");
|
|
246
222
|
|
|
247
|
-
},{"./subtract":
|
|
223
|
+
},{"./subtract":75}],75:[function(require,module,exports){
|
|
248
224
|
function subtract(t,r,u){return t[0]=r[0]-u[0],t[1]=r[1]-u[1],t[2]=r[2]-u[2],t}module.exports=subtract;
|
|
249
225
|
|
|
250
|
-
},{}],
|
|
226
|
+
},{}],76:[function(require,module,exports){
|
|
251
227
|
function transformMat3(r,t,a){var n=t[0],o=t[1],e=t[2];return r[0]=n*a[0]+o*a[3]+e*a[6],r[1]=n*a[1]+o*a[4]+e*a[7],r[2]=n*a[2]+o*a[5]+e*a[8],r}module.exports=transformMat3;
|
|
252
228
|
|
|
253
|
-
},{}],
|
|
229
|
+
},{}],77:[function(require,module,exports){
|
|
254
230
|
function transformMat4(r,t,a){var n=t[0],o=t[1],e=t[2],f=a[3]*n+a[7]*o+a[11]*e+a[15];return f=f||1,r[0]=(a[0]*n+a[4]*o+a[8]*e+a[12])/f,r[1]=(a[1]*n+a[5]*o+a[9]*e+a[13])/f,r[2]=(a[2]*n+a[6]*o+a[10]*e+a[14])/f,r}module.exports=transformMat4;
|
|
255
231
|
|
|
256
|
-
},{}],
|
|
232
|
+
},{}],78:[function(require,module,exports){
|
|
257
233
|
function transformQuat(r,t,a){var n=t[0],o=t[1],u=t[2],e=a[0],f=a[1],m=a[2],s=a[3],Q=s*n+f*u-m*o,c=s*o+m*n-e*u,d=s*u+e*o-f*n,i=-e*n-f*o-m*u;return r[0]=Q*s+i*-e+c*-m-d*-f,r[1]=c*s+i*-f+d*-e-Q*-m,r[2]=d*s+i*-m+Q*-f-c*-e,r}module.exports=transformQuat;
|
|
258
234
|
|
|
259
|
-
},{}],
|
|
235
|
+
},{}],79:[function(require,module,exports){
|
|
260
236
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.createREGL=t()}(this,function(){function e(e,t){this.id=H++,this.type=e,this.data=t}function t(e){return"["+function e(t){if(0===t.length)return[];var r=t.charAt(0),n=t.charAt(t.length-1);if(1<t.length&&r===n&&('"'===r||"'"===r))return['"'+t.substr(1,t.length-2).replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];if(r=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(t))return e(t.substr(0,r.index)).concat(e(r[1])).concat(e(t.substr(r.index+r[0].length)));if(1===(r=t.split(".")).length)return['"'+t.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'];for(t=[],n=0;n<r.length;++n)t=t.concat(e(r[n]));return t}(e).join("][")+"]"}function r(e){return"string"==typeof e?e.split():e}function n(e){return"string"==typeof e?document.querySelector(e):e}function i(e){var t,i,a,f,o=e||{};e={};var u=[],s=[],c="undefined"==typeof window?1:window.devicePixelRatio,l=!1,p=function(e){},d=function(){};if("string"==typeof o?t=document.querySelector(o):"object"==typeof o&&("string"==typeof o.nodeName&&"function"==typeof o.appendChild&&"function"==typeof o.getBoundingClientRect?t=o:"function"==typeof o.drawArrays||"function"==typeof o.drawElements?a=(f=o).canvas:("gl"in o?f=o.gl:"canvas"in o?a=n(o.canvas):"container"in o&&(i=n(o.container)),"attributes"in o&&(e=o.attributes),"extensions"in o&&(u=r(o.extensions)),"optionalExtensions"in o&&(s=r(o.optionalExtensions)),"onDone"in o&&(p=o.onDone),"profile"in o&&(l=!!o.profile),"pixelRatio"in o&&(c=+o.pixelRatio))),t&&("canvas"===t.nodeName.toLowerCase()?a=t:i=t),!f){if(!a){if(!(t=function(e,t,r){function n(){var t=window.innerWidth,n=window.innerHeight;e!==document.body&&(t=(n=a.getBoundingClientRect()).right-n.left,n=n.bottom-n.top),a.width=r*t,a.height=r*n}var i,a=document.createElement("canvas");return R(a.style,{border:0,margin:0,padding:0,top:0,left:0,width:"100%",height:"100%"}),e.appendChild(a),e===document.body&&(a.style.position="absolute",R(e.style,{margin:0,padding:0})),e!==document.body&&"function"==typeof ResizeObserver?(i=new ResizeObserver(function(){setTimeout(n)})).observe(e):window.addEventListener("resize",n,!1),n(),{canvas:a,onDestroy:function(){i?i.disconnect():window.removeEventListener("resize",n),e.removeChild(a)}}}(i||document.body,0,c)))return null;a=t.canvas,d=t.onDestroy}void 0===e.premultipliedAlpha&&(e.premultipliedAlpha=!0),f=function(e,t){function r(r){try{return e.getContext(r,t)}catch(e){return null}}return r("webgl")||r("experimental-webgl")||r("webgl-experimental")}(a,e)}return f?{gl:f,canvas:a,container:i,extensions:u,optionalExtensions:s,pixelRatio:c,profile:l,onDone:p,onDestroy:d}:(d(),p("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}function a(e,t){for(var r=Array(e),n=0;n<e;++n)r[n]=t(n);return r}function f(e){var t,r;return t=(65535<e)<<4,t|=r=(255<(e>>>=t))<<3,(t|=r=(15<(e>>>=r))<<2)|(r=(3<(e>>>=r))<<1)|e>>>r>>1}function o(){function e(e){e:{for(var t=16;268435456>=t;t*=16)if(e<=t){e=t;break e}e=0}return 0<(t=r[f(e)>>2]).length?t.pop():new ArrayBuffer(e)}function t(e){r[f(e.byteLength)>>2].push(e)}var r=a(8,function(){return[]});return{alloc:e,free:t,allocType:function(t,r){var n=null;switch(t){case 5120:n=new Int8Array(e(r),0,r);break;case 5121:n=new Uint8Array(e(r),0,r);break;case 5122:n=new Int16Array(e(2*r),0,r);break;case 5123:n=new Uint16Array(e(2*r),0,r);break;case 5124:n=new Int32Array(e(4*r),0,r);break;case 5125:n=new Uint32Array(e(4*r),0,r);break;case 5126:n=new Float32Array(e(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(e){t(e.buffer)}}}function u(e){return!!e&&"object"==typeof e&&Array.isArray(e.shape)&&Array.isArray(e.stride)&&"number"==typeof e.offset&&e.shape.length===e.stride.length&&(Array.isArray(e.data)||G(e.data))}function s(e,t,r,n,i,a){for(var f=0;f<t;++f)for(var o=e[f],u=0;u<r;++u)for(var s=o[u],c=0;c<n;++c)i[a++]=s[c]}function c(e){return 0|J[Object.prototype.toString.call(e)]}function l(e,t){for(var r=0;r<t.length;++r)e[r]=t[r]}function p(e,t,r,n,i,a,f){for(var o=0,u=0;u<r;++u)for(var s=0;s<n;++s)e[o++]=t[i*u+a*s+f]}function d(e,t,r,n){function i(t){this.id=s++,this.buffer=e.createBuffer(),this.type=t,this.usage=35044,this.byteLength=0,this.dimension=1,this.dtype=5121,this.persistentData=null,r.profile&&(this.stats={size:0})}function a(t,r,n){t.byteLength=r.byteLength,e.bufferData(t.type,r,n)}function f(e,t,r,n,i,f){if(e.usage=r,Array.isArray(t)){if(e.dtype=n||5126,0<t.length)if(Array.isArray(t[0])){i=ee(t);for(var o=n=1;o<i.length;++o)n*=i[o];e.dimension=n,a(e,t=$(t,i,e.dtype),r),f?e.persistentData=t:q.freeType(t)}else"number"==typeof t[0]?(e.dimension=i,l(i=q.allocType(e.dtype,t.length),t),a(e,i,r),f?e.persistentData=i:q.freeType(i)):G(t[0])&&(e.dimension=t[0].length,e.dtype=n||c(t[0])||5126,a(e,t=$(t,[t.length,t[0].length],e.dtype),r),f?e.persistentData=t:q.freeType(t))}else if(G(t))e.dtype=n||c(t),e.dimension=i,a(e,t,r),f&&(e.persistentData=new Uint8Array(new Uint8Array(t.buffer)));else if(u(t)){i=t.shape;var s=t.stride,d=(o=t.offset,0),h=0,m=0,b=0;1===i.length?(d=i[0],h=1,m=s[0],b=0):2===i.length&&(d=i[0],h=i[1],m=s[0],b=s[1]),e.dtype=n||c(t.data)||5126,e.dimension=h,p(i=q.allocType(e.dtype,d*h),t.data,d,h,m,b,o),a(e,i,r),f?e.persistentData=i:q.freeType(i)}else t instanceof ArrayBuffer&&(e.dtype=5121,e.dimension=i,a(e,t,r),f&&(e.persistentData=new Uint8Array(new Uint8Array(t))))}function o(r){t.bufferCount--,n(r),e.deleteBuffer(r.buffer),r.buffer=null,delete d[r.id]}var s=0,d={};i.prototype.bind=function(){e.bindBuffer(this.type,this.buffer)},i.prototype.destroy=function(){o(this)};var h=[];return r.profile&&(t.getTotalBufferSize=function(){var e=0;return Object.keys(d).forEach(function(t){e+=d[t].stats.size}),e}),{create:function(n,a,s,h){function m(t){var n=35044,i=null,a=0,o=0,s=1;return Array.isArray(t)||G(t)||u(t)||t instanceof ArrayBuffer?i=t:"number"==typeof t?a=0|t:t&&("data"in t&&(i=t.data),"usage"in t&&(n=Z[t.usage]),"type"in t&&(o=K[t.type]),"dimension"in t&&(s=0|t.dimension),"length"in t&&(a=0|t.length)),b.bind(),i?f(b,i,n,o,s,h):(a&&e.bufferData(b.type,a,n),b.dtype=o||5121,b.usage=n,b.dimension=s,b.byteLength=a),r.profile&&(b.stats.size=b.byteLength*te[b.dtype]),m}t.bufferCount++;var b=new i(a);return d[b.id]=b,s||m(n),m._reglType="buffer",m._buffer=b,m.subdata=function(t,r){var n,i=0|(r||0);if(b.bind(),G(t)||t instanceof ArrayBuffer)e.bufferSubData(b.type,i,t);else if(Array.isArray(t)){if(0<t.length)if("number"==typeof t[0]){var a=q.allocType(b.dtype,t.length);l(a,t),e.bufferSubData(b.type,i,a),q.freeType(a)}else(Array.isArray(t[0])||G(t[0]))&&(n=ee(t),a=$(t,n,b.dtype),e.bufferSubData(b.type,i,a),q.freeType(a))}else if(u(t)){n=t.shape;var f=t.stride,o=a=0,s=0,d=0;1===n.length?(a=n[0],o=1,s=f[0],d=0):2===n.length&&(a=n[0],o=n[1],s=f[0],d=f[1]),n=Array.isArray(t.data)?b.dtype:c(t.data),p(n=q.allocType(n,a*o),t.data,a,o,s,d,t.offset),e.bufferSubData(b.type,i,n),q.freeType(n)}return m},r.profile&&(m.stats=b.stats),m.destroy=function(){o(b)},m},createStream:function(e,t){var r=h.pop();return r||(r=new i(e)),r.bind(),f(r,t,35040,0,1,!1),r},destroyStream:function(e){h.push(e)},clear:function(){Y(d).forEach(o),h.forEach(o)},getBuffer:function(e){return e&&e._buffer instanceof i?e._buffer:null},restore:function(){Y(d).forEach(function(t){t.buffer=e.createBuffer(),e.bindBuffer(t.type,t.buffer),e.bufferData(t.type,t.persistentData||t.byteLength,t.usage)})},_initBuffer:f}}function h(e,t,r,n){function i(e){this.id=s++,o[this.id]=this,this.buffer=e,this.primType=4,this.type=this.vertCount=0}function a(n,i,a,f,o,s,c){var l;if(n.buffer.bind(),i?((l=c)||G(i)&&(!u(i)||G(i.data))||(l=t.oes_element_index_uint?5125:5123),r._initBuffer(n.buffer,i,a,l,3)):(e.bufferData(34963,s,a),n.buffer.dtype=l||5121,n.buffer.usage=a,n.buffer.dimension=3,n.buffer.byteLength=s),l=c,!c){switch(n.buffer.dtype){case 5121:case 5120:l=5121;break;case 5123:case 5122:l=5123;break;case 5125:case 5124:l=5125}n.buffer.dtype=l}n.type=l,0>(i=o)&&(i=n.buffer.byteLength,5123===l?i>>=1:5125===l&&(i>>=2)),n.vertCount=i,i=f,0>f&&(i=4,1===(f=n.buffer.dimension)&&(i=0),2===f&&(i=1),3===f&&(i=4)),n.primType=i}function f(e){n.elementsCount--,delete o[e.id],e.buffer.destroy(),e.buffer=null}var o={},s=0,c={uint8:5121,uint16:5123};t.oes_element_index_uint&&(c.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var l=[];return{create:function(e,t){function o(e){if(e)if("number"==typeof e)s(e),l.primType=4,l.vertCount=0|e,l.type=5121;else{var t=null,r=35044,n=-1,i=-1,f=0,p=0;Array.isArray(e)||G(e)||u(e)?t=e:("data"in e&&(t=e.data),"usage"in e&&(r=Z[e.usage]),"primitive"in e&&(n=re[e.primitive]),"count"in e&&(i=0|e.count),"type"in e&&(p=c[e.type]),"length"in e?f=0|e.length:(f=i,5123===p||5122===p?f*=2:5125!==p&&5124!==p||(f*=4))),a(l,t,r,n,i,f,p)}else s(),l.primType=4,l.vertCount=0,l.type=5121;return o}var s=r.create(null,34963,!0),l=new i(s._buffer);return n.elementsCount++,o(e),o._reglType="elements",o._elements=l,o.subdata=function(e,t){return s.subdata(e,t),o},o.destroy=function(){f(l)},o},createStream:function(e){var t=l.pop();return t||(t=new i(r.create(null,34963,!0,!1)._buffer)),a(t,e,35040,-1,-1,0,0),t},destroyStream:function(e){l.push(e)},getElements:function(e){return"function"==typeof e&&e._elements instanceof i?e._elements:null},clear:function(){Y(o).forEach(f)}}}function m(e){for(var t=q.allocType(5123,e.length),r=0;r<e.length;++r)if(isNaN(e[r]))t[r]=65535;else if(1/0===e[r])t[r]=31744;else if(-1/0===e[r])t[r]=64512;else{ne[0]=e[r];var n=(a=ie[0])>>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;t[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15<i?n+31744:n+(i+15<<10)+a}return t}function b(e){return Array.isArray(e)||G(e)}function g(e){return"[object "+e+"]"}function y(e){return Array.isArray(e)&&(0===e.length||"number"==typeof e[0])}function v(e){return!(!Array.isArray(e)||0===e.length||!b(e[0]))}function x(e){return Object.prototype.toString.call(e)}function w(e){if(!e)return!1;var t=x(e);return 0<=he.indexOf(t)||(y(e)||v(e)||u(e))}function A(e,t){36193===e.type?(e.data=m(t),q.freeType(t)):e.data=t}function k(e,t,r,n,i,a){if(e=void 0!==be[e]?be[e]:oe[e]*me[t],a&&(e*=6),i){for(n=0;1<=r;)n+=e*r*r,r/=2;return n}return e*r*n}function _(e,t,r,n,i,a,f){function o(){this.format=this.internalformat=6408,this.type=5121,this.flipY=this.premultiplyAlpha=this.compressed=!1,this.unpackAlignment=1,this.colorSpace=37444,this.channels=this.height=this.width=0}function s(e,t){e.internalformat=t.internalformat,e.format=t.format,e.type=t.type,e.compressed=t.compressed,e.premultiplyAlpha=t.premultiplyAlpha,e.flipY=t.flipY,e.unpackAlignment=t.unpackAlignment,e.colorSpace=t.colorSpace,e.width=t.width,e.height=t.height,e.channels=t.channels}function c(e,t){if("object"==typeof t&&t){"premultiplyAlpha"in t&&(e.premultiplyAlpha=t.premultiplyAlpha),"flipY"in t&&(e.flipY=t.flipY),"alignment"in t&&(e.unpackAlignment=t.alignment),"colorSpace"in t&&(e.colorSpace=U[t.colorSpace]),"type"in t&&(e.type=N[t.type]);var r=e.width,n=e.height,i=e.channels,a=!1;"shape"in t?(r=t.shape[0],n=t.shape[1],3===t.shape.length&&(i=t.shape[2],a=!0)):("radius"in t&&(r=n=t.radius),"width"in t&&(r=t.width),"height"in t&&(n=t.height),"channels"in t&&(i=t.channels,a=!0)),e.width=0|r,e.height=0|n,e.channels=0|i,r=!1,"format"in t&&(r=t.format,n=e.internalformat=Q[r],e.format=he[n],r in N&&!("type"in t)&&(e.type=N[r]),r in K&&(e.compressed=!0),r=!0),!a&&r?e.channels=oe[e.format]:a&&!r&&e.channels!==fe[e.format]&&(e.format=e.internalformat=fe[e.channels])}}function l(t){e.pixelStorei(37440,t.flipY),e.pixelStorei(37441,t.premultiplyAlpha),e.pixelStorei(37443,t.colorSpace),e.pixelStorei(3317,t.unpackAlignment)}function p(){o.call(this),this.yOffset=this.xOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function d(e,t){var r=null;if(w(t)?r=t:t&&(c(e,t),"x"in t&&(e.xOffset=0|t.x),"y"in t&&(e.yOffset=0|t.y),w(t.data)&&(r=t.data)),t.copy){var n=i.viewportWidth,a=i.viewportHeight;e.width=e.width||n-e.xOffset,e.height=e.height||a-e.yOffset,e.needsCopy=!0}else if(r){if(G(r))e.channels=e.channels||4,e.data=r,"type"in t||5121!==e.type||(e.type=0|J[Object.prototype.toString.call(r)]);else if(y(r)){switch(e.channels=e.channels||4,a=(n=r).length,e.type){case 5121:case 5123:case 5125:case 5126:(a=q.allocType(e.type,a)).set(n),e.data=a;break;case 36193:e.data=m(n)}e.alignment=1,e.needsFree=!0}else if(u(r)){n=r.data,Array.isArray(n)||5121!==e.type||(e.type=0|J[Object.prototype.toString.call(n)]);a=r.shape;var f,o,s,l,p=r.stride;3===a.length?(s=a[2],l=p[2]):l=s=1,f=a[0],o=a[1],a=p[0],p=p[1],e.alignment=1,e.width=f,e.height=o,e.channels=s,e.format=e.internalformat=fe[s],e.needsFree=!0,f=l,r=r.offset,s=e.width,l=e.height,o=e.channels;for(var d=q.allocType(36193===e.type?5126:e.type,s*l*o),h=0,g=0;g<l;++g)for(var k=0;k<s;++k)for(var _=0;_<o;++_)d[h++]=n[a*k+p*g+f*_+r];A(e,d)}else if(x(r)===ue||x(r)===se||x(r)===ce)x(r)===ue||x(r)===se?e.element=r:e.element=r.canvas,e.width=e.element.width,e.height=e.element.height,e.channels=4;else if(x(r)===le)e.element=r,e.width=r.width,e.height=r.height,e.channels=4;else if(x(r)===pe)e.element=r,e.width=r.naturalWidth,e.height=r.naturalHeight,e.channels=4;else if(x(r)===de)e.element=r,e.width=r.videoWidth,e.height=r.videoHeight,e.channels=4;else if(v(r)){for(n=e.width||r[0].length,a=e.height||r.length,p=e.channels,p=b(r[0][0])?p||r[0][0].length:p||1,f=X.shape(r),s=1,l=0;l<f.length;++l)s*=f[l];s=q.allocType(36193===e.type?5126:e.type,s),X.flatten(r,f,"",s),A(e,s),e.alignment=1,e.width=n,e.height=a,e.channels=p,e.format=e.internalformat=fe[p],e.needsFree=!0}}else e.width=e.width||1,e.height=e.height||1,e.channels=e.channels||4}function h(t,r,i,a,f){var o=t.element,u=t.data,s=t.internalformat,c=t.format,p=t.type,d=t.width,h=t.height;l(t),o?e.texSubImage2D(r,f,i,a,c,p,o):t.compressed?e.compressedTexSubImage2D(r,f,i,a,s,d,h,u):t.needsCopy?(n(),e.copyTexSubImage2D(r,f,i,a,t.xOffset,t.yOffset,d,h)):e.texSubImage2D(r,f,i,a,d,h,c,p,u)}function g(){return me.pop()||new p}function _(e){e.needsFree&&q.freeType(e.data),p.call(e),me.push(e)}function O(){o.call(this),this.genMipmaps=!1,this.mipmapHint=4352,this.mipmask=0,this.images=Array(16)}function E(e,t,r){var n=e.images[0]=g();e.mipmask=1,n.width=e.width=t,n.height=e.height=r,n.channels=e.channels=4}function D(e,t){var r=null;if(w(t))s(r=e.images[0]=g(),e),d(r,t),e.mipmask=1;else if(c(e,t),Array.isArray(t.mipmap))for(var n=t.mipmap,i=0;i<n.length;++i)s(r=e.images[i]=g(),e),r.width>>=i,r.height>>=i,d(r,n[i]),e.mipmask|=1<<i;else s(r=e.images[0]=g(),e),d(r,t),e.mipmask=1;s(e,e.images[0])}function T(t,r){for(var i=t.images,a=0;a<i.length&&i[a];++a){var f=i[a],o=r,u=a,s=f.element,c=f.data,p=f.internalformat,d=f.format,h=f.type,m=f.width,b=f.height;l(f),s?e.texImage2D(o,u,d,d,h,s):f.compressed?e.compressedTexImage2D(o,u,p,m,b,0,c):f.needsCopy?(n(),e.copyTexImage2D(o,u,d,f.xOffset,f.yOffset,m,b,0)):e.texImage2D(o,u,d,m,b,0,d,h,c||null)}}function S(){var e=be.pop()||new O;o.call(e);for(var t=e.mipmask=0;16>t;++t)e.images[t]=null;return e}function j(e){for(var t=e.images,r=0;r<t.length;++r)t[r]&&_(t[r]),t[r]=null;be.push(e)}function C(){this.magFilter=this.minFilter=9728,this.wrapT=this.wrapS=33071,this.anisotropic=1,this.genMipmaps=!1,this.mipmapHint=4352}function V(e,t){"min"in t&&(e.minFilter=W[t.min],0<=ae.indexOf(e.minFilter)&&!("faces"in t)&&(e.genMipmaps=!0)),"mag"in t&&(e.magFilter=H[t.mag]);var r=e.wrapS,n=e.wrapT;if("wrap"in t){var i=t.wrap;"string"==typeof i?r=n=M[i]:Array.isArray(i)&&(r=M[i[0]],n=M[i[1]])}else"wrapS"in t&&(r=M[t.wrapS]),"wrapT"in t&&(n=M[t.wrapT]);if(e.wrapS=r,e.wrapT=n,"anisotropic"in t&&(e.anisotropic=t.anisotropic),"mipmap"in t){switch(r=!1,typeof t.mipmap){case"string":e.mipmapHint=L[t.mipmap],r=e.genMipmaps=!0;break;case"boolean":r=e.genMipmaps=t.mipmap;break;case"object":e.genMipmaps=!1,r=!0}!r||"min"in t||(e.minFilter=9984)}}function F(r,n){e.texParameteri(n,10241,r.minFilter),e.texParameteri(n,10240,r.magFilter),e.texParameteri(n,10242,r.wrapS),e.texParameteri(n,10243,r.wrapT),t.ext_texture_filter_anisotropic&&e.texParameteri(n,34046,r.anisotropic),r.genMipmaps&&(e.hint(33170,r.mipmapHint),e.generateMipmap(n))}function B(t){o.call(this),this.mipmask=0,this.internalformat=6408,this.id=ge++,this.refCount=1,this.target=t,this.texture=e.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new C,f.profile&&(this.stats={size:0})}function z(t){e.activeTexture(33984),e.bindTexture(t.target,t.texture)}function I(){var t=xe[0];t?e.bindTexture(t.target,t.texture):e.bindTexture(3553,null)}function P(t){var r=t.texture,n=t.unit,i=t.target;0<=n&&(e.activeTexture(33984+n),e.bindTexture(i,null),xe[n]=null),e.deleteTexture(r),t.texture=null,t.params=null,t.pixels=null,t.refCount=0,delete ye[t.id],a.textureCount--}var L={"don't care":4352,"dont care":4352,nice:4354,fast:4353},M={repeat:10497,clamp:33071,mirror:33648},H={nearest:9728,linear:9729},W=R({mipmap:9987,"nearest mipmap nearest":9984,"linear mipmap nearest":9985,"nearest mipmap linear":9986,"linear mipmap linear":9987},H),U={none:0,browser:37444},N={uint8:5121,rgba4:32819,rgb565:33635,"rgb5 a1":32820},Q={alpha:6406,luminance:6409,"luminance alpha":6410,rgb:6407,rgba:6408,rgba4:32854,"rgb5 a1":32855,rgb565:36194},K={};t.ext_srgb&&(Q.srgb=35904,Q.srgba=35906),t.oes_texture_float&&(N.float32=N.float=5126),t.oes_texture_half_float&&(N.float16=N["half float"]=36193),t.webgl_depth_texture&&(R(Q,{depth:6402,"depth stencil":34041}),R(N,{uint16:5123,uint32:5125,"depth stencil":34042})),t.webgl_compressed_texture_s3tc&&R(K,{"rgb s3tc dxt1":33776,"rgba s3tc dxt1":33777,"rgba s3tc dxt3":33778,"rgba s3tc dxt5":33779}),t.webgl_compressed_texture_atc&&R(K,{"rgb atc":35986,"rgba atc explicit alpha":35987,"rgba atc interpolated alpha":34798}),t.webgl_compressed_texture_pvrtc&&R(K,{"rgb pvrtc 4bppv1":35840,"rgb pvrtc 2bppv1":35841,"rgba pvrtc 4bppv1":35842,"rgba pvrtc 2bppv1":35843}),t.webgl_compressed_texture_etc1&&(K["rgb etc1"]=36196);var Z=Array.prototype.slice.call(e.getParameter(34467));Object.keys(K).forEach(function(e){var t=K[e];0<=Z.indexOf(t)&&(Q[e]=t)});var $=Object.keys(Q);r.textureFormats=$;var ee=[];Object.keys(Q).forEach(function(e){ee[Q[e]]=e});var te=[];Object.keys(N).forEach(function(e){te[N[e]]=e});var re=[];Object.keys(H).forEach(function(e){re[H[e]]=e});var ne=[];Object.keys(W).forEach(function(e){ne[W[e]]=e});var ie=[];Object.keys(M).forEach(function(e){ie[M[e]]=e});var he=$.reduce(function(e,r){var n=Q[r];return 6409===n||6406===n||6409===n||6410===n||6402===n||34041===n||t.ext_srgb&&(35904===n||35906===n)?e[n]=n:32855===n||0<=r.indexOf("rgba")?e[n]=6408:e[n]=6407,e},{}),me=[],be=[],ge=0,ye={},ve=r.maxTextureUnits,xe=Array(ve).map(function(){return null});return R(B.prototype,{bind:function(){this.bindCount+=1;var t=this.unit;if(0>t){for(var r=0;r<ve;++r){var n=xe[r];if(n){if(0<n.bindCount)continue;n.unit=-1}xe[r]=this,t=r;break}f.profile&&a.maxTextureUnits<t+1&&(a.maxTextureUnits=t+1),this.unit=t,e.activeTexture(33984+t),e.bindTexture(this.target,this.texture)}return t},unbind:function(){--this.bindCount},decRef:function(){0>=--this.refCount&&P(this)}}),f.profile&&(a.getTotalTextureSize=function(){var e=0;return Object.keys(ye).forEach(function(t){e+=ye[t].stats.size}),e}),{create2D:function(t,r){function n(e,t){var r=i.texInfo;C.call(r);var a=S();return"number"==typeof e?E(a,0|e,"number"==typeof t?0|t:0|e):e?(V(r,e),D(a,e)):E(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,s(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,z(i),T(a,3553),F(r,3553),I(),j(a),f.profile&&(i.stats.size=k(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=ee[i.internalformat],n.type=te[i.type],n.mag=re[r.magFilter],n.min=ne[r.minFilter],n.wrapS=ie[r.wrapS],n.wrapT=ie[r.wrapT],n}var i=new B(3553);return ye[i.id]=i,a.textureCount++,n(t,r),n.subimage=function(e,t,r,a){t|=0,r|=0,a|=0;var f=g();return s(f,i),f.width=0,f.height=0,d(f,e),f.width=f.width||(i.width>>a)-t,f.height=f.height||(i.height>>a)-r,z(i),h(f,3553,t,r,a),I(),_(f),n},n.resize=function(t,r){var a=0|t,o=0|r||a;if(a===i.width&&o===i.height)return n;n.width=i.width=a,n.height=i.height=o,z(i);for(var u=0;i.mipmask>>u;++u){var s=a>>u,c=o>>u;if(!s||!c)break;e.texImage2D(3553,u,i.format,s,c,0,i.format,i.type,null)}return I(),f.profile&&(i.stats.size=k(i.internalformat,i.type,a,o,!1,!1)),n},n._reglType="texture2d",n._texture=i,f.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(t,r,n,i,o,u){function l(e,t,r,n,i,a){var o,u=p.texInfo;for(C.call(u),o=0;6>o;++o)m[o]=S();if("number"!=typeof e&&e){if("object"==typeof e)if(t)D(m[0],e),D(m[1],t),D(m[2],r),D(m[3],n),D(m[4],i),D(m[5],a);else if(V(u,e),c(p,e),"faces"in e)for(e=e.faces,o=0;6>o;++o)s(m[o],p),D(m[o],e[o]);else for(o=0;6>o;++o)D(m[o],e)}else for(e=0|e||1,o=0;6>o;++o)E(m[o],e,e);for(s(p,m[0]),p.mipmask=u.genMipmaps?(m[0].width<<1)-1:m[0].mipmask,p.internalformat=m[0].internalformat,l.width=m[0].width,l.height=m[0].height,z(p),o=0;6>o;++o)T(m[o],34069+o);for(F(u,34067),I(),f.profile&&(p.stats.size=k(p.internalformat,p.type,l.width,l.height,u.genMipmaps,!0)),l.format=ee[p.internalformat],l.type=te[p.type],l.mag=re[u.magFilter],l.min=ne[u.minFilter],l.wrapS=ie[u.wrapS],l.wrapT=ie[u.wrapT],o=0;6>o;++o)j(m[o]);return l}var p=new B(34067);ye[p.id]=p,a.cubeCount++;var m=Array(6);return l(t,r,n,i,o,u),l.subimage=function(e,t,r,n,i){r|=0,n|=0,i|=0;var a=g();return s(a,p),a.width=0,a.height=0,d(a,t),a.width=a.width||(p.width>>i)-r,a.height=a.height||(p.height>>i)-n,z(p),h(a,34069+e,r,n,i),I(),_(a),l},l.resize=function(t){if((t|=0)!==p.width){l.width=p.width=t,l.height=p.height=t,z(p);for(var r=0;6>r;++r)for(var n=0;p.mipmask>>n;++n)e.texImage2D(34069+r,n,p.format,t>>n,t>>n,0,p.format,p.type,null);return I(),f.profile&&(p.stats.size=k(p.internalformat,p.type,l.width,l.height,!1,!0)),l}},l._reglType="textureCube",l._texture=p,f.profile&&(l.stats=p.stats),l.destroy=function(){p.decRef()},l},clear:function(){for(var t=0;t<ve;++t)e.activeTexture(33984+t),e.bindTexture(3553,null),xe[t]=null;Y(ye).forEach(P),a.cubeCount=0,a.textureCount=0},getTexture:function(e){return null},restore:function(){for(var t=0;t<ve;++t){var r=xe[t];r&&(r.bindCount=0,r.unit=-1,xe[t]=null)}Y(ye).forEach(function(t){t.texture=e.createTexture(),e.bindTexture(t.target,t.texture);for(var r=0;32>r;++r)if(0!=(t.mipmask&1<<r))if(3553===t.target)e.texImage2D(3553,r,t.internalformat,t.width>>r,t.height>>r,0,t.internalformat,t.type,null);else for(var n=0;6>n;++n)e.texImage2D(34069+n,r,t.internalformat,t.width>>r,t.height>>r,0,t.internalformat,t.type,null);F(t.texInfo,t.target)})},refresh:function(){for(var t=0;t<ve;++t){var r=xe[t];r&&(r.bindCount=0,r.unit=-1,xe[t]=null),e.activeTexture(33984+t),e.bindTexture(3553,null),e.bindTexture(34067,null)}}}}function O(e,t,r,n,i,a){function f(e,t,r){this.target=e,this.texture=t,this.renderbuffer=r;var n=e=0;t?(e=t.width,n=t.height):r&&(e=r.width,n=r.height),this.width=e,this.height=n}function o(e){e&&(e.texture&&e.texture._texture.decRef(),e.renderbuffer&&e.renderbuffer._renderbuffer.decRef())}function u(e,t,r){e&&(e.texture?e.texture._texture.refCount+=1:e.renderbuffer._renderbuffer.refCount+=1)}function s(t,r){r&&(r.texture?e.framebufferTexture2D(36160,t,r.target,r.texture._texture.texture,0):e.framebufferRenderbuffer(36160,t,36161,r.renderbuffer._renderbuffer.renderbuffer))}function c(e){var t=3553,r=null,n=null,i=e;return"object"==typeof e&&(i=e.data,"target"in e&&(t=0|e.target)),"texture2d"===(e=i._reglType)?r=i:"textureCube"===e?r=i:"renderbuffer"===e&&(n=i,t=36161),new f(t,r,n)}function l(e,t,r,a,o){return r?((e=n.create2D({width:e,height:t,format:a,type:o}))._texture.refCount=0,new f(3553,e,null)):((e=i.create({width:e,height:t,format:a}))._renderbuffer.refCount=0,new f(36161,null,e))}function p(e){return e&&(e.texture||e.renderbuffer)}function d(e,t,r){e&&(e.texture?e.texture.resize(t,r):e.renderbuffer&&e.renderbuffer.resize(t,r),e.width=t,e.height=r)}function h(){this.id=k++,_[this.id]=this,this.framebuffer=e.createFramebuffer(),this.height=this.width=0,this.colorAttachments=[],this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function m(e){e.colorAttachments.forEach(o),o(e.depthAttachment),o(e.stencilAttachment),o(e.depthStencilAttachment)}function b(t){e.deleteFramebuffer(t.framebuffer),t.framebuffer=null,a.framebufferCount--,delete _[t.id]}function g(t){var n;e.bindFramebuffer(36160,t.framebuffer);var i=t.colorAttachments;for(n=0;n<i.length;++n)s(36064+n,i[n]);for(n=i.length;n<r.maxColorAttachments;++n)e.framebufferTexture2D(36160,36064+n,3553,null,0);e.framebufferTexture2D(36160,33306,3553,null,0),e.framebufferTexture2D(36160,36096,3553,null,0),e.framebufferTexture2D(36160,36128,3553,null,0),s(36096,t.depthAttachment),s(36128,t.stencilAttachment),s(33306,t.depthStencilAttachment),e.checkFramebufferStatus(36160),e.isContextLost(),e.bindFramebuffer(36160,v.next?v.next.framebuffer:null),v.cur=v.next,e.getError()}function y(e,t){function r(e,t){var i,a=0,f=0,o=!0,s=!0;i=null;var d=!0,h="rgba",b="uint8",y=1,v=null,A=null,k=null,_=!1;"number"==typeof e?(a=0|e,f=0|t||a):e?("shape"in e?(a=(f=e.shape)[0],f=f[1]):("radius"in e&&(a=f=e.radius),"width"in e&&(a=e.width),"height"in e&&(f=e.height)),("color"in e||"colors"in e)&&(i=e.color||e.colors,Array.isArray(i)),i||("colorCount"in e&&(y=0|e.colorCount),"colorTexture"in e&&(d=!!e.colorTexture,h="rgba4"),"colorType"in e&&(b=e.colorType,!d)&&("half float"===b||"float16"===b?h="rgba16f":"float"!==b&&"float32"!==b||(h="rgba32f")),"colorFormat"in e&&(h=e.colorFormat,0<=x.indexOf(h)?d=!0:0<=w.indexOf(h)&&(d=!1))),("depthTexture"in e||"depthStencilTexture"in e)&&(_=!(!e.depthTexture&&!e.depthStencilTexture)),"depth"in e&&("boolean"==typeof e.depth?o=e.depth:(v=e.depth,s=!1)),"stencil"in e&&("boolean"==typeof e.stencil?s=e.stencil:(A=e.stencil,o=!1)),"depthStencil"in e&&("boolean"==typeof e.depthStencil?o=s=e.depthStencil:(k=e.depthStencil,s=o=!1))):a=f=1;var O=null,E=null,D=null,T=null;if(Array.isArray(i))O=i.map(c);else if(i)O=[c(i)];else for(O=Array(y),i=0;i<y;++i)O[i]=l(a,f,d,h,b);for(a=a||O[0].width,f=f||O[0].height,v?E=c(v):o&&!s&&(E=l(a,f,_,"depth","uint32")),A?D=c(A):s&&!o&&(D=l(a,f,!1,"stencil","uint8")),k?T=c(k):!v&&!A&&s&&o&&(T=l(a,f,_,"depth stencil","depth stencil")),o=null,i=0;i<O.length;++i)u(O[i]),O[i]&&O[i].texture&&(s=ve[O[i].texture._texture.format]*xe[O[i].texture._texture.type],null===o&&(o=s));return u(E),u(D),u(T),m(n),n.width=a,n.height=f,n.colorAttachments=O,n.depthAttachment=E,n.stencilAttachment=D,n.depthStencilAttachment=T,r.color=O.map(p),r.depth=p(E),r.stencil=p(D),r.depthStencil=p(T),r.width=n.width,r.height=n.height,g(n),r}var n=new h;return a.framebufferCount++,r(e,t),R(r,{resize:function(e,t){var i=Math.max(0|e,1),a=Math.max(0|t||i,1);if(i===n.width&&a===n.height)return r;for(var f=n.colorAttachments,o=0;o<f.length;++o)d(f[o],i,a);return d(n.depthAttachment,i,a),d(n.stencilAttachment,i,a),d(n.depthStencilAttachment,i,a),n.width=r.width=i,n.height=r.height=a,g(n),r},_reglType:"framebuffer",_framebuffer:n,destroy:function(){b(n),m(n)},use:function(e){v.setFBO({framebuffer:r},e)}})}var v={cur:null,next:null,dirty:!1,setFBO:null},x=["rgba"],w=["rgba4","rgb565","rgb5 a1"];t.ext_srgb&&w.push("srgba"),t.ext_color_buffer_half_float&&w.push("rgba16f","rgb16f"),t.webgl_color_buffer_float&&w.push("rgba32f");var A=["uint8"];t.oes_texture_half_float&&A.push("half float","float16"),t.oes_texture_float&&A.push("float","float32");var k=0,_={};return R(v,{getFramebuffer:function(e){return"function"==typeof e&&"framebuffer"===e._reglType&&(e=e._framebuffer)instanceof h?e:null},create:y,createCube:function(e){function t(e){var i,a={color:null},f=0,o=null;i="rgba";var u="uint8",s=1;if("number"==typeof e?f=0|e:e?("shape"in e?f=e.shape[0]:("radius"in e&&(f=0|e.radius),"width"in e?f=0|e.width:"height"in e&&(f=0|e.height)),("color"in e||"colors"in e)&&(o=e.color||e.colors,Array.isArray(o)),o||("colorCount"in e&&(s=0|e.colorCount),"colorType"in e&&(u=e.colorType),"colorFormat"in e&&(i=e.colorFormat)),"depth"in e&&(a.depth=e.depth),"stencil"in e&&(a.stencil=e.stencil),"depthStencil"in e&&(a.depthStencil=e.depthStencil)):f=1,o)if(Array.isArray(o))for(e=[],i=0;i<o.length;++i)e[i]=o[i];else e=[o];else for(e=Array(s),o={radius:f,format:i,type:u},i=0;i<s;++i)e[i]=n.createCube(o);for(a.color=Array(e.length),i=0;i<e.length;++i)s=e[i],f=f||s.width,a.color[i]={target:34069,data:e[i]};for(i=0;6>i;++i){for(s=0;s<e.length;++s)a.color[s].target=34069+i;0<i&&(a.depth=r[0].depth,a.stencil=r[0].stencil,a.depthStencil=r[0].depthStencil),r[i]?r[i](a):r[i]=y(a)}return R(t,{width:f,height:f,color:e})}var r=Array(6);return t(e),R(t,{faces:r,resize:function(e){var n=0|e;if(n===t.width)return t;var i=t.color;for(e=0;e<i.length;++e)i[e].resize(n);for(e=0;6>e;++e)r[e].resize(n);return t.width=t.height=n,t},_reglType:"framebufferCube",destroy:function(){r.forEach(function(e){e.destroy()})}})},clear:function(){Y(_).forEach(b)},restore:function(){v.cur=null,v.next=null,v.dirty=!0,Y(_).forEach(function(t){t.framebuffer=e.createFramebuffer(),g(t)})}})}function E(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function D(e,t,r,n,i,a,f){function o(){this.id=++l,this.attributes=[],this.elements=null,this.ownsElements=!1,this.offset=this.count=0,this.instances=-1,this.primitive=4;var e=t.oes_vertex_array_object;this.vao=e?e.createVertexArrayOES():null,p[this.id]=this,this.buffers=[]}var s=r.maxAttributes,c=Array(s);for(r=0;r<s;++r)c[r]=new E;var l=0,p={},d={Record:E,scope:{},state:c,currentVAO:null,targetVAO:null,restore:t.oes_vertex_array_object?function(){t.oes_vertex_array_object&&Y(p).forEach(function(e){e.refresh()})}:function(){},createVAO:function(e){function t(e){var n;Array.isArray(e)?(n=e,r.elements&&r.ownsElements&&r.elements.destroy(),r.elements=null,r.ownsElements=!1,r.offset=0,r.count=0,r.instances=-1,r.primitive=4):(e.elements?(n=e.elements,r.ownsElements?("function"==typeof n&&"elements"===n._reglType?r.elements.destroy():r.elements(n),r.ownsElements=!1):a.getElements(e.elements)?(r.elements=e.elements,r.ownsElements=!1):(r.elements=a.create(e.elements),r.ownsElements=!0)):(r.elements=null,r.ownsElements=!1),n=e.attributes,r.offset=0,r.count=-1,r.instances=-1,r.primitive=4,r.elements&&(r.count=r.elements._elements.vertCount,r.primitive=r.elements._elements.primType),"offset"in e&&(r.offset=0|e.offset),"count"in e&&(r.count=0|e.count),"instances"in e&&(r.instances=0|e.instances),"primitive"in e&&(r.primitive=re[e.primitive])),e={};var f=r.attributes;f.length=n.length;for(var o=0;o<n.length;++o){var s,c=n[o],l=f[o]=new E,p=c.data||c;if(Array.isArray(p)||G(p)||u(p))r.buffers[o]&&(s=r.buffers[o],G(p)&&s._buffer.byteLength>=p.byteLength?s.subdata(p):(s.destroy(),r.buffers[o]=null)),r.buffers[o]||(s=r.buffers[o]=i.create(c,34962,!1,!0)),l.buffer=i.getBuffer(s),l.size=0|l.buffer.dimension,l.normalized=!1,l.type=l.buffer.dtype,l.offset=0,l.stride=0,l.divisor=0,l.state=1,e[o]=1;else i.getBuffer(c)?(l.buffer=i.getBuffer(c),l.size=0|l.buffer.dimension,l.normalized=!1,l.type=l.buffer.dtype,l.offset=0,l.stride=0,l.divisor=0,l.state=1):i.getBuffer(c.buffer)?(l.buffer=i.getBuffer(c.buffer),l.size=0|(+c.size||l.buffer.dimension),l.normalized=!!c.normalized||!1,l.type="type"in c?K[c.type]:l.buffer.dtype,l.offset=0|(c.offset||0),l.stride=0|(c.stride||0),l.divisor=0|(c.divisor||0),l.state=1):"x"in c&&(l.x=+c.x||0,l.y=+c.y||0,l.z=+c.z||0,l.w=+c.w||0,l.state=2)}for(s=0;s<r.buffers.length;++s)!e[s]&&r.buffers[s]&&(r.buffers[s].destroy(),r.buffers[s]=null);return r.refresh(),t}var r=new o;return n.vaoCount+=1,t.destroy=function(){for(var e=0;e<r.buffers.length;++e)r.buffers[e]&&r.buffers[e].destroy();r.buffers.length=0,r.ownsElements&&(r.elements.destroy(),r.elements=null,r.ownsElements=!1),r.destroy()},t._vao=r,t._reglType="vao",t(e)},getVAO:function(e){return"function"==typeof e&&e._vao?e._vao:null},destroyBuffer:function(t){for(var r=0;r<c.length;++r){var n=c[r];n.buffer===t&&(e.disableVertexAttribArray(r),n.buffer=null)}},setVAO:t.oes_vertex_array_object?function(e){if(e!==d.currentVAO){var r=t.oes_vertex_array_object;e?r.bindVertexArrayOES(e.vao):r.bindVertexArrayOES(null),d.currentVAO=e}}:function(r){if(r!==d.currentVAO){if(r)r.bindAttrs();else{for(var n=t.angle_instanced_arrays,i=0;i<c.length;++i){var a=c[i];a.buffer?(e.enableVertexAttribArray(i),a.buffer.bind(),e.vertexAttribPointer(i,a.size,a.type,a.normalized,a.stride,a.offfset),n&&a.divisor&&n.vertexAttribDivisorANGLE(i,a.divisor)):(e.disableVertexAttribArray(i),e.vertexAttrib4f(i,a.x,a.y,a.z,a.w))}f.elements?e.bindBuffer(34963,f.elements.buffer.buffer):e.bindBuffer(34963,null)}d.currentVAO=r}},clear:t.oes_vertex_array_object?function(){Y(p).forEach(function(e){e.destroy()})}:function(){}};return o.prototype.bindAttrs=function(){for(var r=t.angle_instanced_arrays,n=this.attributes,i=0;i<n.length;++i){var f=n[i];f.buffer?(e.enableVertexAttribArray(i),e.bindBuffer(34962,f.buffer.buffer),e.vertexAttribPointer(i,f.size,f.type,f.normalized,f.stride,f.offset),r&&f.divisor&&r.vertexAttribDivisorANGLE(i,f.divisor)):(e.disableVertexAttribArray(i),e.vertexAttrib4f(i,f.x,f.y,f.z,f.w))}for(r=n.length;r<s;++r)e.disableVertexAttribArray(r);(r=a.getElements(this.elements))?e.bindBuffer(34963,r.buffer.buffer):e.bindBuffer(34963,null)},o.prototype.refresh=function(){var e=t.oes_vertex_array_object;e&&(e.bindVertexArrayOES(this.vao),this.bindAttrs(),d.currentVAO=null,e.bindVertexArrayOES(null))},o.prototype.destroy=function(){if(this.vao){var e=t.oes_vertex_array_object;this===d.currentVAO&&(d.currentVAO=null,e.bindVertexArrayOES(null)),e.deleteVertexArrayOES(this.vao),this.vao=null}this.ownsElements&&(this.elements.destroy(),this.elements=null,this.ownsElements=!1),p[this.id]&&(delete p[this.id],--n.vaoCount)},d}function T(e,t,r,n){function i(e,t,r,n){this.name=e,this.id=t,this.location=r,this.info=n}function a(e,t){for(var r=0;r<e.length;++r)if(e[r].id===t.id)return void(e[r].location=t.location);e.push(t)}function f(r,n,i){if(!(f=(i=35632===r?s:c)[n])){var a=t.str(n),f=e.createShader(r);e.shaderSource(f,a),e.compileShader(f),i[n]=f}return f}function o(e,t){this.id=d++,this.fragId=e,this.vertId=t,this.program=null,this.uniforms=[],this.attributes=[],this.refCount=1,n.profile&&(this.stats={uniformsCount:0,attributesCount:0})}function u(r,o,u){var s;s=f(35632,r.fragId);var c=f(35633,r.vertId);if(o=r.program=e.createProgram(),e.attachShader(o,s),e.attachShader(o,c),u)for(s=0;s<u.length;++s)c=u[s],e.bindAttribLocation(o,c[0],c[1]);e.linkProgram(o),c=e.getProgramParameter(o,35718),n.profile&&(r.stats.uniformsCount=c);var l=r.uniforms;for(s=0;s<c;++s)if(u=e.getActiveUniform(o,s)){if(1<u.size)for(var p=0;p<u.size;++p){var d=u.name.replace("[0]","["+p+"]");a(l,new i(d,t.id(d),e.getUniformLocation(o,d),u))}p=u.name,1<u.size&&(p=p.replace("[0]","")),a(l,new i(p,t.id(p),e.getUniformLocation(o,p),u))}for(c=e.getProgramParameter(o,35721),n.profile&&(r.stats.attributesCount=c),r=r.attributes,s=0;s<c;++s)(u=e.getActiveAttrib(o,s))&&a(r,new i(u.name,t.id(u.name),e.getAttribLocation(o,u.name),u))}var s={},c={},l={},p=[],d=0;return n.profile&&(r.getMaxUniformsCount=function(){var e=0;return p.forEach(function(t){t.stats.uniformsCount>e&&(e=t.stats.uniformsCount)}),e},r.getMaxAttributesCount=function(){var e=0;return p.forEach(function(t){t.stats.attributesCount>e&&(e=t.stats.attributesCount)}),e}),{clear:function(){var t=e.deleteShader.bind(e);Y(s).forEach(t),s={},Y(c).forEach(t),c={},p.forEach(function(t){e.deleteProgram(t.program)}),p.length=0,l={},r.shaderCount=0},program:function(t,n,i,a){var f=l[n];f||(f=l[n]={});var d=f[t];if(d&&(d.refCount++,!a))return d;var h=new o(n,t);return r.shaderCount++,u(h,i,a),d||(f[t]=h),p.push(h),R(h,{destroy:function(){if(h.refCount--,0>=h.refCount){e.deleteProgram(h.program);var t=p.indexOf(h);p.splice(t,1),r.shaderCount--}0>=f[h.vertId].refCount&&(e.deleteShader(c[h.vertId]),delete c[h.vertId],delete l[h.fragId][h.vertId]),Object.keys(l[h.fragId]).length||(e.deleteShader(s[h.fragId]),delete s[h.fragId],delete l[h.fragId])}})},restore:function(){s={},c={};for(var e=0;e<p.length;++e)u(p[e],null,p[e].attributes.map(function(e){return[e.location,e.name]}))},shader:f,frag:-1,vert:-1}}function S(e,t,r,n,i,a,f){function o(i){var a;a=null===t.next?5121:t.next.colorAttachments[0].texture._texture.type;var f=0,o=0,u=n.framebufferWidth,s=n.framebufferHeight,c=null;return G(i)?c=i:i&&(f=0|i.x,o=0|i.y,u=0|(i.width||n.framebufferWidth-f),s=0|(i.height||n.framebufferHeight-o),c=i.data||null),r(),i=u*s*4,c||(5121===a?c=new Uint8Array(i):5126===a&&(c=c||new Float32Array(i))),e.pixelStorei(3333,4),e.readPixels(f,o,u,s,6408,a,c),c}return function(e){return e&&"framebuffer"in e?function(e){var r;return t.setFBO({framebuffer:e.framebuffer},function(){r=o(e)}),r}(e):o(e)}}function j(e){return Array.prototype.slice.call(e)}function C(e){return j(e).join("")}function V(e){return Array.isArray(e)||G(e)||u(e)}function F(e){return e.sort(function(e,t){return"viewport"===e?-1:"viewport"===t?1:e<t?-1:1})}function B(e,t,r,n){this.thisDep=e,this.contextDep=t,this.propDep=r,this.append=n}function z(e){return e&&!(e.thisDep||e.contextDep||e.propDep)}function I(e){return new B(!1,!1,!1,e)}function P(e,t){var r=e.type;if(0===r)return new B(!0,1<=(r=e.data.length),2<=r,t);if(4===r)return new B((r=e.data).thisDep,r.contextDep,r.propDep,t);if(5===r)return new B(!1,!1,!1,t);if(6===r){for(var n=r=!1,i=!1,a=0;a<e.data.length;++a){var f=e.data[a];1===f.type?i=!0:2===f.type?n=!0:3===f.type?r=!0:0===f.type?(r=!0,1<=(f=f.data)&&(n=!0),2<=f&&(i=!0)):4===f.type&&(r=r||f.data.thisDep,n=n||f.data.contextDep,i=i||f.data.propDep)}return new B(r,n,i,t)}return new B(3===r,2===r,1===r,t)}function L(e,t,r,n,i,f,o,u,s,c,l,p,d,h,m){function g(e){return e.replace(".","_")}function y(e,t,r){var n=g(e);fe.push(e),ae[n]=ie[n]=!!r,oe[n]=t}function v(e,t,r){var n=g(e);fe.push(e),Array.isArray(r)?(ie[n]=r.slice(),ae[n]=r.slice()):ie[n]=ae[n]=r,ue[n]=t}function x(){var e=function(){function e(){var e=[],t=[];return R(function(){e.push.apply(e,j(arguments))},{def:function(){var n="v"+r++;return t.push(n),0<arguments.length&&(e.push(n,"="),e.push.apply(e,j(arguments)),e.push(";")),n},toString:function(){return C([0<t.length?"var "+t.join(",")+";":"",C(e)])}})}function t(){function t(e,t){n(e,t,"=",r.def(e,t),";")}var r=e(),n=e(),i=r.toString,a=n.toString;return R(function(){r.apply(r,j(arguments))},{def:r.def,entry:r,exit:n,save:t,set:function(e,n,i){t(e,n),r(e,n,"=",i,";")},toString:function(){return i()+a()}})}var r=0,n=[],i=[],a=e(),f={};return{global:a,link:function(e){for(var t=0;t<i.length;++t)if(i[t]===e)return n[t];return t="g"+r++,n.push(t),i.push(e),t},block:e,proc:function(e,r){function n(){var e="a"+i.length;return i.push(e),e}var i=[];r=r||0;for(var a=0;a<r;++a)n();var o=(a=t()).toString;return f[e]=R(a,{arg:n,toString:function(){return C(["function(",i.join(),"){",o(),"}"])}})},scope:t,cond:function(){var e=C(arguments),r=t(),n=t(),i=r.toString,a=n.toString;return R(r,{then:function(){return r.apply(r,j(arguments)),this},else:function(){return n.apply(n,j(arguments)),this},toString:function(){var t=a();return t&&(t="else{"+t+"}"),C(["if(",e,"){",i(),"}",t])}})},compile:function(){var e=['"use strict";',a,"return {"];Object.keys(f).forEach(function(t){e.push('"',t,'":',f[t].toString(),",")}),e.push("}");var t=C(e).replace(/;/g,";\n").replace(/}/g,"}\n").replace(/{/g,"{\n");return Function.apply(null,n.concat(t)).apply(null,i)}}}(),r=e.link,n=e.global;e.id=le++,e.batchId="0";var i=r(se),a=e.shared={props:"a0"};Object.keys(se).forEach(function(e){a[e]=n.def(i,".",e)});var f=e.next={},o=e.current={};Object.keys(ue).forEach(function(e){Array.isArray(ie[e])&&(f[e]=n.def(a.next,".",e),o[e]=n.def(a.current,".",e))});var u=e.constants={};Object.keys(ce).forEach(function(e){u[e]=n.def(JSON.stringify(ce[e]))}),e.invoke=function(t,n){switch(n.type){case 0:var i=["this",a.context,a.props,e.batchId];return t.def(r(n.data),".call(",i.slice(0,Math.max(n.data.length+1,4)),")");case 1:return t.def(a.props,n.data);case 2:return t.def(a.context,n.data);case 3:return t.def("this",n.data);case 4:return n.data.append(e,t),n.data.ref;case 5:return n.data.toString();case 6:return n.data.map(function(r){return e.invoke(t,r)})}},e.attribCache={};var s={};return e.scopeAttrib=function(e){if((e=t.id(e))in s)return s[e];var n=c.scope[e];return n||(n=c.scope[e]=new Z),s[e]=r(n)},e}function w(e,t){var r=e.static,n=e.dynamic;if("framebuffer"in r){var i=r.framebuffer;return i?(i=u.getFramebuffer(i),I(function(e,t){var r=e.link(i),n=e.shared;return t.set(n.framebuffer,".next",r),n=n.context,t.set(n,".framebufferWidth",r+".width"),t.set(n,".framebufferHeight",r+".height"),r})):I(function(e,t){var r=e.shared;return t.set(r.framebuffer,".next","null"),r=r.context,t.set(r,".framebufferWidth",r+".drawingBufferWidth"),t.set(r,".framebufferHeight",r+".drawingBufferHeight"),"null"})}if("framebuffer"in n){var a=n.framebuffer;return P(a,function(e,t){var r=e.invoke(t,a),n=e.shared,i=n.framebuffer;r=t.def(i,".getFramebuffer(",r,")");return t.set(i,".next",r),n=n.context,t.set(n,".framebufferWidth",r+"?"+r+".width:"+n+".drawingBufferWidth"),t.set(n,".framebufferHeight",r+"?"+r+".height:"+n+".drawingBufferHeight"),r})}return null}function A(e,r,n){function i(e){if(e in a){var r=t.id(a[e]);return(e=I(function(){return r})).id=r,e}if(e in f){var n=f[e];return P(n,function(e,t){var r=e.invoke(t,n);return t.def(e.shared.strings,".id(",r,")")})}return null}var a=e.static,f=e.dynamic,o=i("frag"),u=i("vert"),s=null;return z(o)&&z(u)?(s=l.program(u.id,o.id,null,n),e=I(function(e,t){return e.link(s)})):e=new B(o&&o.thisDep||u&&u.thisDep,o&&o.contextDep||u&&u.contextDep,o&&o.propDep||u&&u.propDep,function(e,t){var r,n,i=e.shared.shader;return r=o?o.append(e,t):t.def(i,".","frag"),n=u?u.append(e,t):t.def(i,".","vert"),t.def(i+".program("+n+","+r+")")}),{frag:o,vert:u,progVar:e,program:s}}function k(e,t){function r(e,t){if(e in n){var r=0|n[e];return t?a.offset=r:a.instances=r,I(function(e,n){return t&&(e.OFFSET=r),r})}if(e in i){var f=i[e];return P(f,function(e,r){var n=e.invoke(r,f);return t&&(e.OFFSET=n),n})}if(t){if(s)return I(function(e,t){return e.OFFSET=0});if(o)return new B(u.thisDep,u.contextDep,u.propDep,function(e,t){return t.def(e.shared.vao+".currentVAO?"+e.shared.vao+".currentVAO.offset:0")})}else if(o)return new B(u.thisDep,u.contextDep,u.propDep,function(e,t){return t.def(e.shared.vao+".currentVAO?"+e.shared.vao+".currentVAO.instances:-1")});return null}var n=e.static,i=e.dynamic,a={},o=!1,u=function(){if("vao"in n){var e=n.vao;return null!==e&&null===c.getVAO(e)&&(e=c.createVAO(e)),o=!0,a.vao=e,I(function(t){var r=c.getVAO(e);return r?t.link(r):"null"})}if("vao"in i){o=!0;var t=i.vao;return P(t,function(e,r){var n=e.invoke(r,t);return r.def(e.shared.vao+".getVAO("+n+")")})}return null}(),s=!1,l=function(){if("elements"in n){var e=n.elements;if(a.elements=e,V(e)){var t=a.elements=f.create(e,!0);e=f.getElements(t);s=!0}else e&&(e=f.getElements(e),s=!0);return(t=I(function(t,r){if(e){var n=t.link(e);return t.ELEMENTS=n}return t.ELEMENTS=null})).value=e,t}if("elements"in i){s=!0;var r=i.elements;return P(r,function(e,t){var n=(i=e.shared).isBufferArgs,i=i.elements,a=e.invoke(t,r),f=t.def("null");n=t.def(n,"(",a,")"),a=e.cond(n).then(f,"=",i,".createStream(",a,");").else(f,"=",i,".getElements(",a,");");return t.entry(a),t.exit(e.cond(n).then(i,".destroyStream(",f,");")),e.ELEMENTS=f})}return o?new B(u.thisDep,u.contextDep,u.propDep,function(e,t){return t.def(e.shared.vao+".currentVAO?"+e.shared.elements+".getElements("+e.shared.vao+".currentVAO.elements):null")}):null}(),p=r("offset",!0),d=function(){if("primitive"in n){var e=n.primitive;return a.primitive=e,I(function(t,r){return re[e]})}if("primitive"in i){var t=i.primitive;return P(t,function(e,r){var n=e.constants.primTypes,i=e.invoke(r,t);return r.def(n,"[",i,"]")})}return s?z(l)?l.value?I(function(e,t){return t.def(e.ELEMENTS,".primType")}):I(function(){return 4}):new B(l.thisDep,l.contextDep,l.propDep,function(e,t){var r=e.ELEMENTS;return t.def(r,"?",r,".primType:",4)}):o?new B(u.thisDep,u.contextDep,u.propDep,function(e,t){return t.def(e.shared.vao+".currentVAO?"+e.shared.vao+".currentVAO.primitive:4")}):null}(),h=function(){if("count"in n){var e=0|n.count;return a.count=e,I(function(){return e})}if("count"in i){var t=i.count;return P(t,function(e,r){return e.invoke(r,t)})}return s?z(l)?l?p?new B(p.thisDep,p.contextDep,p.propDep,function(e,t){return t.def(e.ELEMENTS,".vertCount-",e.OFFSET)}):I(function(e,t){return t.def(e.ELEMENTS,".vertCount")}):I(function(){return-1}):new B(l.thisDep||p.thisDep,l.contextDep||p.contextDep,l.propDep||p.propDep,function(e,t){var r=e.ELEMENTS;return e.OFFSET?t.def(r,"?",r,".vertCount-",e.OFFSET,":-1"):t.def(r,"?",r,".vertCount:-1")}):o?new B(u.thisDep,u.contextDep,u.propDep,function(e,t){return t.def(e.shared.vao,".currentVAO?",e.shared.vao,".currentVAO.count:-1")}):null}(),m=r("instances",!1);return{elements:l,primitive:d,count:h,instances:m,offset:p,vao:u,vaoActive:o,elementsActive:s,static:a}}function _(e,r){var n=e.static,a=e.dynamic,f={};return Object.keys(n).forEach(function(e){var r=n[e],a=t.id(e),o=new Z;if(V(r))o.state=1,o.buffer=i.getBuffer(i.create(r,34962,!1,!0)),o.type=0;else if(s=i.getBuffer(r))o.state=1,o.buffer=s,o.type=0;else if("constant"in r){var u=r.constant;o.buffer="null",o.state=2,"number"==typeof u?o.x=u:we.forEach(function(e,t){t<u.length&&(o[e]=u[t])})}else{var s=V(r.buffer)?i.getBuffer(i.create(r.buffer,34962,!1,!0)):i.getBuffer(r.buffer),c=0|r.offset,l=0|r.stride,p=0|r.size,d=!!r.normalized,h=0;"type"in r&&(h=K[r.type]),r=0|r.divisor,o.buffer=s,o.state=1,o.size=p,o.normalized=d,o.type=h||s.dtype,o.offset=c,o.stride=l,o.divisor=r}f[e]=I(function(e,t){var r=e.attribCache;if(a in r)return r[a];var n={isStream:!1};return Object.keys(o).forEach(function(e){n[e]=o[e]}),o.buffer&&(n.buffer=e.link(o.buffer),n.type=n.type||n.buffer+".dtype"),r[a]=n})}),Object.keys(a).forEach(function(e){var t=a[e];f[e]=P(t,function(e,r){function n(e){r(u[e],"=",i,".",e,"|0;")}var i=e.invoke(r,t),a=e.shared,f=e.constants,o=a.isBufferArgs,u=(a=a.buffer,{isStream:r.def(!1)}),s=new Z;s.state=1,Object.keys(s).forEach(function(e){u[e]=r.def(""+s[e])});var c=u.buffer,l=u.type;return r("if(",o,"(",i,")){",u.isStream,"=true;",c,"=",a,".createStream(",34962,",",i,");",l,"=",c,".dtype;","}else{",c,"=",a,".getBuffer(",i,");","if(",c,"){",l,"=",c,".dtype;",'}else if("constant" in ',i,"){",u.state,"=",2,";","if(typeof "+i+'.constant === "number"){',u[we[0]],"=",i,".constant;",we.slice(1).map(function(e){return u[e]}).join("="),"=0;","}else{",we.map(function(e,t){return u[e]+"="+i+".constant.length>"+t+"?"+i+".constant["+t+"]:0;"}).join(""),"}}else{","if(",o,"(",i,".buffer)){",c,"=",a,".createStream(",34962,",",i,".buffer);","}else{",c,"=",a,".getBuffer(",i,".buffer);","}",l,'="type" in ',i,"?",f.glTypes,"[",i,".type]:",c,".dtype;",u.normalized,"=!!",i,".normalized;"),n("size"),n("offset"),n("stride"),n("divisor"),r("}}"),r.exit("if(",u.isStream,"){",a,".destroyStream(",c,");","}"),u})}),f}function O(e,t,n,i,f){function o(e){var t=s[e];t&&(p[e]=t)}var u=function(e,t){if("string"==typeof(r=e.static).frag&&"string"==typeof r.vert){if(0<Object.keys(t.dynamic).length)return null;var r=t.static,n=Object.keys(r);if(0<n.length&&"number"==typeof r[n[0]]){for(var i=[],a=0;a<n.length;++a)i.push([0|r[n[a]],n[a]]);return i}}return null}(e,t),s=function(e,t,r){function n(e){if(e in i){var r=i[e];e=!0;var n,f,o=0|r.x,u=0|r.y;return"width"in r?n=0|r.width:e=!1,"height"in r?f=0|r.height:e=!1,new B(!e&&t&&t.thisDep,!e&&t&&t.contextDep,!e&&t&&t.propDep,function(e,t){var i=e.shared.context,a=n;"width"in r||(a=t.def(i,".","framebufferWidth","-",o));var s=f;return"height"in r||(s=t.def(i,".","framebufferHeight","-",u)),[o,u,a,s]})}if(e in a){var s=a[e];return e=P(s,function(e,t){var r=e.invoke(t,s),n=e.shared.context,i=t.def(r,".x|0"),a=t.def(r,".y|0");return[i,a,t.def('"width" in ',r,"?",r,".width|0:","(",n,".","framebufferWidth","-",i,")"),r=t.def('"height" in ',r,"?",r,".height|0:","(",n,".","framebufferHeight","-",a,")")]}),t&&(e.thisDep=e.thisDep||t.thisDep,e.contextDep=e.contextDep||t.contextDep,e.propDep=e.propDep||t.propDep),e}return t?new B(t.thisDep,t.contextDep,t.propDep,function(e,t){var r=e.shared.context;return[0,0,t.def(r,".","framebufferWidth"),t.def(r,".","framebufferHeight")]}):null}var i=e.static,a=e.dynamic;if(e=n("viewport")){var f=e;e=new B(e.thisDep,e.contextDep,e.propDep,function(e,t){var r=f.append(e,t),n=e.shared.context;return t.set(n,".viewportWidth",r[2]),t.set(n,".viewportHeight",r[3]),r})}return{viewport:e,scissor_box:n("scissor.box")}}(e,h=w(e)),l=k(e),p=function(e,t){var r=e.static,n=e.dynamic,i={};return fe.forEach(function(e){function t(t,a){if(e in r){var o=t(r[e]);i[f]=I(function(){return o})}else if(e in n){var u=n[e];i[f]=P(u,function(e,t){return a(e,t,e.invoke(t,u))})}}var f=g(e);switch(e){case"cull.enable":case"blend.enable":case"dither":case"stencil.enable":case"depth.enable":case"scissor.enable":case"polygonOffset.enable":case"sample.alpha":case"sample.enable":case"depth.mask":return t(function(e){return e},function(e,t,r){return r});case"depth.func":return t(function(e){return _e[e]},function(e,t,r){return t.def(e.constants.compareFuncs,"[",r,"]")});case"depth.range":return t(function(e){return e},function(e,t,r){return[t.def("+",r,"[0]"),t=t.def("+",r,"[1]")]});case"blend.func":return t(function(e){return[ke["srcRGB"in e?e.srcRGB:e.src],ke["dstRGB"in e?e.dstRGB:e.dst],ke["srcAlpha"in e?e.srcAlpha:e.src],ke["dstAlpha"in e?e.dstAlpha:e.dst]]},function(e,t,r){function n(e,n){return t.def('"',e,n,'" in ',r,"?",r,".",e,n,":",r,".",e)}e=e.constants.blendFuncs;var i=n("src","RGB"),a=n("dst","RGB"),f=(i=t.def(e,"[",i,"]"),t.def(e,"[",n("src","Alpha"),"]"));return[i,a=t.def(e,"[",a,"]"),f,e=t.def(e,"[",n("dst","Alpha"),"]")]});case"blend.equation":return t(function(e){return"string"==typeof e?[$[e],$[e]]:"object"==typeof e?[$[e.rgb],$[e.alpha]]:void 0},function(e,t,r){var n=e.constants.blendEquations,i=t.def(),a=t.def();return(e=e.cond("typeof ",r,'==="string"')).then(i,"=",a,"=",n,"[",r,"];"),e.else(i,"=",n,"[",r,".rgb];",a,"=",n,"[",r,".alpha];"),t(e),[i,a]});case"blend.color":return t(function(e){return a(4,function(t){return+e[t]})},function(e,t,r){return a(4,function(e){return t.def("+",r,"[",e,"]")})});case"stencil.mask":return t(function(e){return 0|e},function(e,t,r){return t.def(r,"|0")});case"stencil.func":return t(function(e){return[_e[e.cmp||"keep"],e.ref||0,"mask"in e?e.mask:-1]},function(e,t,r){return[e=t.def('"cmp" in ',r,"?",e.constants.compareFuncs,"[",r,".cmp]",":",7680),t.def(r,".ref|0"),t=t.def('"mask" in ',r,"?",r,".mask|0:-1")]});case"stencil.opFront":case"stencil.opBack":return t(function(t){return["stencil.opBack"===e?1029:1028,Oe[t.fail||"keep"],Oe[t.zfail||"keep"],Oe[t.zpass||"keep"]]},function(t,r,n){function i(e){return r.def('"',e,'" in ',n,"?",a,"[",n,".",e,"]:",7680)}var a=t.constants.stencilOps;return["stencil.opBack"===e?1029:1028,i("fail"),i("zfail"),i("zpass")]});case"polygonOffset.offset":return t(function(e){return[0|e.factor,0|e.units]},function(e,t,r){return[t.def(r,".factor|0"),t=t.def(r,".units|0")]});case"cull.face":return t(function(e){var t=0;return"front"===e?t=1028:"back"===e&&(t=1029),t},function(e,t,r){return t.def(r,'==="front"?',1028,":",1029)});case"lineWidth":return t(function(e){return e},function(e,t,r){return r});case"frontFace":return t(function(e){return Ee[e]},function(e,t,r){return t.def(r+'==="cw"?2304:2305')});case"colorMask":return t(function(e){return e.map(function(e){return!!e})},function(e,t,r){return a(4,function(e){return"!!"+r+"["+e+"]"})});case"sample.coverage":return t(function(e){return["value"in e?e.value:1,!!e.invert]},function(e,t,r){return[t.def('"value" in ',r,"?+",r,".value:1"),t=t.def("!!",r,".invert")]})}}),i}(e),d=A(e,0,u);o("viewport"),o(g("scissor.box"));var h,m=0<Object.keys(p).length;if((h={framebuffer:h,draw:l,shader:d,state:p,dirty:m,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}}).profile=function(e){var t,r=e.static;if(e=e.dynamic,"profile"in r){var n=!!r.profile;(t=I(function(e,t){return n})).enable=n}else if("profile"in e){var i=e.profile;t=P(i,function(e,t){return e.invoke(t,i)})}return t}(e),h.uniforms=function(e,t){var r=e.static,n=e.dynamic,i={};return Object.keys(r).forEach(function(e){var t,n=r[e];if("number"==typeof n||"boolean"==typeof n)t=I(function(){return n});else if("function"==typeof n){var f=n._reglType;"texture2d"===f||"textureCube"===f?t=I(function(e){return e.link(n)}):"framebuffer"!==f&&"framebufferCube"!==f||(t=I(function(e){return e.link(n.color[0])}))}else b(n)&&(t=I(function(e){return e.global.def("[",a(n.length,function(e){return n[e]}),"]")}));t.value=n,i[e]=t}),Object.keys(n).forEach(function(e){var t=n[e];i[e]=P(t,function(e,r){return e.invoke(r,t)})}),i}(n),h.drawVAO=h.scopeVAO=l.vao,!h.drawVAO&&d.program&&!u&&r.angle_instanced_arrays&&l.static.elements){var y=!0;if(e=d.program.attributes.map(function(e){return e=t.static[e],y=y&&!!e,e}),y&&0<e.length){var v=c.getVAO(c.createVAO({attributes:e,elements:l.static.elements}));h.drawVAO=new B(null,null,null,function(e,t){return e.link(v)}),h.useVAO=!0}}return u?h.useVAO=!0:h.attributes=_(t),h.context=function(e){var t=e.static,r=e.dynamic,n={};return Object.keys(t).forEach(function(e){var r=t[e];n[e]=I(function(e,t){return"number"==typeof r||"boolean"==typeof r?""+r:e.link(r)})}),Object.keys(r).forEach(function(e){var t=r[e];n[e]=P(t,function(e,r){return e.invoke(r,t)})}),n}(i),h}function E(e,t,r){var n=e.shared.context,i=e.scope();Object.keys(r).forEach(function(a){t.save(n,"."+a);var f=r[a].append(e,t);Array.isArray(f)?i(n,".",a,"=[",f.join(),"];"):i(n,".",a,"=",f,";")}),t(i)}function D(e,t,r,n){var i,a=(o=e.shared).gl,f=o.framebuffer;te&&(i=t.def(o.extensions,".webgl_draw_buffers"));var o=(u=e.constants).drawBuffer,u=u.backBuffer;e=r?r.append(e,t):t.def(f,".next"),n||t("if(",e,"!==",f,".cur){"),t("if(",e,"){",a,".bindFramebuffer(",36160,",",e,".framebuffer);"),te&&t(i,".drawBuffersWEBGL(",o,"[",e,".colorAttachments.length]);"),t("}else{",a,".bindFramebuffer(",36160,",null);"),te&&t(i,".drawBuffersWEBGL(",u,");"),t("}",f,".cur=",e,";"),n||t("}")}function T(e,t,r){var n=e.shared,i=n.gl,f=e.current,o=e.next,u=n.current,s=n.next,c=e.cond(u,".dirty");fe.forEach(function(t){var n,l;if(!((t=g(t))in r.state))if(t in o){n=o[t],l=f[t];var p=a(ie[t].length,function(e){return c.def(n,"[",e,"]")});c(e.cond(p.map(function(e,t){return e+"!=="+l+"["+t+"]"}).join("||")).then(i,".",ue[t],"(",p,");",p.map(function(e,t){return l+"["+t+"]="+e}).join(";"),";"))}else n=c.def(s,".",t),p=e.cond(n,"!==",u,".",t),c(p),t in oe?p(e.cond(n).then(i,".enable(",oe[t],");").else(i,".disable(",oe[t],");"),u,".",t,"=",n,";"):p(i,".",ue[t],"(",n,");",u,".",t,"=",n,";")}),0===Object.keys(r.state).length&&c(u,".dirty=false;"),t(c)}function S(e,t,r,n){var i=e.shared,a=e.current,f=i.current,o=i.gl;F(Object.keys(r)).forEach(function(i){var u=r[i];if(!n||n(u)){var s=u.append(e,t);if(oe[i]){var c=oe[i];z(u)?t(o,s?".enable(":".disable(",c,");"):t(e.cond(s).then(o,".enable(",c,");").else(o,".disable(",c,");")),t(f,".",i,"=",s,";")}else if(b(s)){var l=a[i];t(o,".",ue[i],"(",s,");",s.map(function(e,t){return l+"["+t+"]="+e}).join(";"),";")}else t(o,".",ue[i],"(",s,");",f,".",i,"=",s,";")}})}function L(e,t){ee&&(e.instancing=t.def(e.shared.extensions,".angle_instanced_arrays"))}function M(e,t,r,n,i){function a(){return"undefined"==typeof performance?"Date.now()":"performance.now()"}function f(e){e(s=t.def(),"=",a(),";"),"string"==typeof i?e(p,".count+=",i,";"):e(p,".count++;"),h&&(n?e(c=t.def(),"=",m,".getNumPendingQueries();"):e(m,".beginQuery(",p,");"))}function o(e){e(p,".cpuTime+=",a(),"-",s,";"),h&&(n?e(m,".pushScopeStats(",c,",",m,".getNumPendingQueries(),",p,");"):e(m,".endQuery();"))}function u(e){var r=t.def(d,".profile");t(d,".profile=",e,";"),t.exit(d,".profile=",r,";")}var s,c,l=e.shared,p=e.stats,d=l.current,m=l.timer;if(r=r.profile){if(z(r))return void(r.enable?(f(t),o(t.exit),u("true")):u("false"));u(r=r.append(e,t))}else r=t.def(d,".profile");f(l=e.block()),t("if(",r,"){",l,"}"),o(e=e.block()),t.exit("if(",r,"){",e,"}")}function H(e,t,r,n,i){function a(r,n,i){function a(){t("if(!",c,".buffer){",u,".enableVertexAttribArray(",s,");}");var r,a=i.type;r=i.size?t.def(i.size,"||",n):n,t("if(",c,".type!==",a,"||",c,".size!==",r,"||",d.map(function(e){return c+"."+e+"!=="+i[e]}).join("||"),"){",u,".bindBuffer(",34962,",",l,".buffer);",u,".vertexAttribPointer(",[s,r,a,i.normalized,i.stride,i.offset],");",c,".type=",a,";",c,".size=",r,";",d.map(function(e){return c+"."+e+"="+i[e]+";"}).join(""),"}"),ee&&(a=i.divisor,t("if(",c,".divisor!==",a,"){",e.instancing,".vertexAttribDivisorANGLE(",[s,a],");",c,".divisor=",a,";}"))}function o(){t("if(",c,".buffer){",u,".disableVertexAttribArray(",s,");",c,".buffer=null;","}if(",we.map(function(e,t){return c+"."+e+"!=="+p[t]}).join("||"),"){",u,".vertexAttrib4f(",s,",",p,");",we.map(function(e,t){return c+"."+e+"="+p[t]+";"}).join(""),"}")}var u=f.gl,s=t.def(r,".location"),c=t.def(f.attributes,"[",s,"]");r=i.state;var l=i.buffer,p=[i.x,i.y,i.z,i.w],d=["buffer","normalized","offset","stride"];1===r?a():2===r?o():(t("if(",r,"===",1,"){"),a(),t("}else{"),o(),t("}"))}var f=e.shared;n.forEach(function(n){var f,o=n.name,u=r.attributes[o];if(u){if(!i(u))return;f=u.append(e,t)}else{if(!i(De))return;var s=e.scopeAttrib(o);f={},Object.keys(new Z).forEach(function(e){f[e]=t.def(s,".",e)})}a(e.link(n),function(e){switch(e){case 35664:case 35667:case 35671:return 2;case 35665:case 35668:case 35672:return 3;case 35666:case 35669:case 35673:return 4;default:return 1}}(n.info.type),f)})}function U(e,r,n,i,f,o){for(var u,s=e.shared,c=s.gl,l={},p=0;p<i.length;++p){var d=(x=i[p]).name,h=x.info.type,m=x.info.size,g=n.uniforms[d];if(1<m){if(!g)continue;var y=d.replace("[0]","");if(l[y])continue;l[y]=1}var v,x=e.link(x)+".location";if(g){if(!f(g))continue;if(z(g)){if(d=g.value,35678===h||35680===h)r(c,".uniform1i(",x,",",(h=e.link(d._texture||d.color[0]._texture))+".bind());"),r.exit(h,".unbind();");else if(35674===h||35675===h||35676===h)m=e.global.def("new Float32Array(["+Array.prototype.slice.call(d)+"])"),d=2,35675===h?d=3:35676===h&&(d=4),r(c,".uniformMatrix",d,"fv(",x,",false,",m,");");else{switch(h){case 5126:u="1f";break;case 35664:u="2f";break;case 35665:u="3f";break;case 35666:u="4f";break;case 35670:case 5124:u="1i";break;case 35671:case 35667:u="2i";break;case 35672:case 35668:u="3i";break;case 35673:u="4i";break;case 35669:u="4i"}1<m?(u+="v",d=e.global.def("["+Array.prototype.slice.call(d)+"]")):d=b(d)?Array.prototype.slice.call(d):d,r(c,".uniform",u,"(",x,",",d,");")}continue}v=g.append(e,r)}else{if(!f(De))continue;v=r.def(s.uniforms,"[",t.id(d),"]")}switch(35678===h?r("if(",v,"&&",v,'._reglType==="framebuffer"){',v,"=",v,".color[0];","}"):35680===h&&r("if(",v,"&&",v,'._reglType==="framebufferCube"){',v,"=",v,".color[0];","}"),d=1,h){case 35678:case 35680:h=r.def(v,"._texture"),r(c,".uniform1i(",x,",",h,".bind());"),r.exit(h,".unbind();");continue;case 5124:case 35670:u="1i";break;case 35667:case 35671:u="2i",d=2;break;case 35668:case 35672:u="3i",d=3;break;case 35669:case 35673:u="4i",d=4;break;case 5126:u="1f";break;case 35664:u="2f",d=2;break;case 35665:u="3f",d=3;break;case 35666:u="4f",d=4;break;case 35674:u="Matrix2fv";break;case 35675:u="Matrix3fv";break;case 35676:u="Matrix4fv"}if(-1===u.indexOf("Matrix")&&1<m&&(u+="v",d=1),"M"===u.charAt(0)){r(c,".uniform",u,"(",x,",");x=Math.pow(h-35674+2,2);var w=e.global.def("new Float32Array(",x,")");Array.isArray(v)?r("false,(",a(x,function(e){return w+"["+e+"]="+v[e]}),",",w,")"):r("false,(Array.isArray(",v,")||",v," instanceof Float32Array)?",v,":(",a(x,function(e){return w+"["+e+"]="+v+"["+e+"]"}),",",w,")"),r(");")}else{if(1<d){h=[];var A=[];for(m=0;m<d;++m)Array.isArray(v)?A.push(v[m]):A.push(r.def(v+"["+m+"]")),o&&h.push(r.def());o&&r("if(!",e.batchId,"||",h.map(function(e,t){return e+"!=="+A[t]}).join("||"),"){",h.map(function(e,t){return e+"="+A[t]+";"}).join("")),r(c,".uniform",u,"(",x,",",A.join(","),");")}else o&&(h=r.def(),r("if(!",e.batchId,"||",h,"!==",v,"){",h,"=",v,";")),r(c,".uniform",u,"(",x,",",v,");");o&&r("}")}}}function N(e,t,r,n){function i(i){var a=p[i];return a?a.contextDep&&n.contextDynamic||a.propDep?a.append(e,r):a.append(e,t):t.def(l,".",i)}function a(){function e(){r(u,".drawElementsInstancedANGLE(",[h,b,g,m+"<<(("+g+"-5121)>>1)",o],");")}function t(){r(u,".drawArraysInstancedANGLE(",[h,m,b,o],");")}d&&"null"!==d?y?e():(r("if(",d,"){"),e(),r("}else{"),t(),r("}")):t()}function f(){function e(){r(c+".drawElements("+[h,b,g,m+"<<(("+g+"-5121)>>1)"]+");")}function t(){r(c+".drawArrays("+[h,m,b]+");")}d&&"null"!==d?y?e():(r("if(",d,"){"),e(),r("}else{"),t(),r("}")):t()}var o,u,s=e.shared,c=s.gl,l=s.draw,p=n.draw,d=function(){var i=p.elements,a=t;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(e,a),p.elementsActive&&a("if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);")):(i=a.def(),a(i,"=",l,".","elements",";","if(",i,"){",c,".bindBuffer(",34963,",",i,".buffer.buffer);}","else if(",s.vao,".currentVAO){",i,"=",e.shared.elements+".getElements("+s.vao,".currentVAO.elements);",ne?"":"if("+i+")"+c+".bindBuffer(34963,"+i+".buffer.buffer);","}")),i}(),h=i("primitive"),m=i("offset"),b=function(){var i=p.count,a=t;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(e,a)):i=a.def(l,".","count"),i}();if("number"==typeof b){if(0===b)return}else r("if(",b,"){"),r.exit("}");ee&&(o=i("instances"),u=e.instancing);var g=d+".type",y=p.elements&&z(p.elements)&&!p.vaoActive;ee&&("number"!=typeof o||0<=o)?"string"==typeof o?(r("if(",o,">0){"),a(),r("}else if(",o,"<0){"),f(),r("}")):a():f()}function q(e,t,r,n,i){return i=(t=x()).proc("body",i),ee&&(t.instancing=i.def(t.shared.extensions,".angle_instanced_arrays")),e(t,i,r,n),t.compile().body}function Q(e,t,r,n){L(e,t),r.useVAO?r.drawVAO?t(e.shared.vao,".setVAO(",r.drawVAO.append(e,t),");"):t(e.shared.vao,".setVAO(",e.shared.vao,".targetVAO);"):(t(e.shared.vao,".setVAO(null);"),H(e,t,r,n.attributes,function(){return!0})),U(e,t,r,n.uniforms,function(){return!0},!1),N(e,t,t,r)}function G(e,t,r,n){function i(){return!0}e.batchId="a1",L(e,t),H(e,t,r,n.attributes,i),U(e,t,r,n.uniforms,i,!1),N(e,t,t,r)}function Y(e,t,r,n){function i(e){return e.contextDep&&f||e.propDep}function a(e){return!i(e)}L(e,t);var f=r.contextDep,o=t.def(),u=t.def();e.shared.props=u,e.batchId=o;var s=e.scope(),c=e.scope();t(s.entry,"for(",o,"=0;",o,"<","a1",";++",o,"){",u,"=","a0","[",o,"];",c,"}",s.exit),r.needsContext&&E(e,c,r.context),r.needsFramebuffer&&D(e,c,r.framebuffer),S(e,c,r.state,i),r.profile&&i(r.profile)&&M(e,c,r,!1,!0),n?(r.useVAO?r.drawVAO?i(r.drawVAO)?c(e.shared.vao,".setVAO(",r.drawVAO.append(e,c),");"):s(e.shared.vao,".setVAO(",r.drawVAO.append(e,s),");"):s(e.shared.vao,".setVAO(",e.shared.vao,".targetVAO);"):(s(e.shared.vao,".setVAO(null);"),H(e,s,r,n.attributes,a),H(e,c,r,n.attributes,i)),U(e,s,r,n.uniforms,a,!1),U(e,c,r,n.uniforms,i,!0),N(e,s,c,r)):(t=e.global.def("{}"),n=r.shader.progVar.append(e,c),u=c.def(n,".id"),s=c.def(t,"[",u,"]"),c(e.shared.gl,".useProgram(",n,".program);","if(!",s,"){",s,"=",t,"[",u,"]=",e.link(function(t){return q(G,e,r,t,2)}),"(",n,");}",s,".call(this,a0[",o,"],",o,");"))}function X(e,r){function n(t){var n=r.shader[t];n&&i.set(a.shader,"."+t,n.append(e,i))}var i=e.proc("scope",3);e.batchId="a2";var a=e.shared,f=a.current;E(e,i,r.context),r.framebuffer&&r.framebuffer.append(e,i),F(Object.keys(r.state)).forEach(function(t){var n=r.state[t].append(e,i);b(n)?n.forEach(function(r,n){i.set(e.next[t],"["+n+"]",r)}):i.set(a.next,"."+t,n)}),M(e,i,r,!0,!0),["elements","offset","count","instances","primitive"].forEach(function(t){var n=r.draw[t];n&&i.set(a.draw,"."+t,""+n.append(e,i))}),Object.keys(r.uniforms).forEach(function(n){var f=r.uniforms[n].append(e,i);Array.isArray(f)&&(f="["+f.join()+"]"),i.set(a.uniforms,"["+t.id(n)+"]",f)}),Object.keys(r.attributes).forEach(function(t){var n=r.attributes[t].append(e,i),a=e.scopeAttrib(t);Object.keys(new Z).forEach(function(e){i.set(a,"."+e,n[e])})}),r.scopeVAO&&i.set(a.vao,".targetVAO",r.scopeVAO.append(e,i)),n("vert"),n("frag"),0<Object.keys(r.state).length&&(i(f,".dirty=true;"),i.exit(f,".dirty=true;")),i("a1(",e.shared.context,",a0,",e.batchId,");")}function J(e,t,r){var n=t.static[r];if(n&&function(e){if("object"==typeof e&&!b(e)){for(var t=Object.keys(e),r=0;r<t.length;++r)if(W.isDynamic(e[t[r]]))return!0;return!1}}(n)){var i=e.global,a=Object.keys(n),f=!1,o=!1,u=!1,s=e.global.def("{}");a.forEach(function(t){var r=n[t];if(W.isDynamic(r))"function"==typeof r&&(r=n[t]=W.unbox(r)),t=P(r,null),f=f||t.thisDep,u=u||t.propDep,o=o||t.contextDep;else{switch(i(s,".",t,"="),typeof r){case"number":i(r);break;case"string":i('"',r,'"');break;case"object":Array.isArray(r)&&i("[",r.join(),"]");break;default:i(e.link(r))}i(";")}}),t.dynamic[r]=new W.DynamicVariable(4,{thisDep:f,contextDep:o,propDep:u,ref:s,append:function(e,t){a.forEach(function(r){var i=n[r];W.isDynamic(i)&&(i=e.invoke(t,i),t(s,".",r,"=",i,";"))})}}),delete t.static[r]}}var Z=c.Record,$={add:32774,subtract:32778,"reverse subtract":32779};r.ext_blend_minmax&&($.min=32775,$.max=32776);var ee=r.angle_instanced_arrays,te=r.webgl_draw_buffers,ne=r.oes_vertex_array_object,ie={dirty:!0,profile:m.profile},ae={},fe=[],oe={},ue={};y("dither",3024),y("blend.enable",3042),v("blend.color","blendColor",[0,0,0,0]),v("blend.equation","blendEquationSeparate",[32774,32774]),v("blend.func","blendFuncSeparate",[1,0,1,0]),y("depth.enable",2929,!0),v("depth.func","depthFunc",513),v("depth.range","depthRange",[0,1]),v("depth.mask","depthMask",!0),v("colorMask","colorMask",[!0,!0,!0,!0]),y("cull.enable",2884),v("cull.face","cullFace",1029),v("frontFace","frontFace",2305),v("lineWidth","lineWidth",1),y("polygonOffset.enable",32823),v("polygonOffset.offset","polygonOffset",[0,0]),y("sample.alpha",32926),y("sample.enable",32928),v("sample.coverage","sampleCoverage",[1,!1]),y("stencil.enable",2960),v("stencil.mask","stencilMask",-1),v("stencil.func","stencilFunc",[519,0,-1]),v("stencil.opFront","stencilOpSeparate",[1028,7680,7680,7680]),v("stencil.opBack","stencilOpSeparate",[1029,7680,7680,7680]),y("scissor.enable",3089),v("scissor.box","scissor",[0,0,e.drawingBufferWidth,e.drawingBufferHeight]),v("viewport","viewport",[0,0,e.drawingBufferWidth,e.drawingBufferHeight]);var se={gl:e,context:d,strings:t,next:ae,current:ie,draw:p,elements:f,buffer:i,shader:l,attributes:c.state,vao:c,uniforms:s,framebuffer:u,extensions:r,timer:h,isBufferArgs:V},ce={primTypes:re,compareFuncs:_e,blendFuncs:ke,blendEquations:$,stencilOps:Oe,glTypes:K,orientationType:Ee};te&&(ce.backBuffer=[1029],ce.drawBuffer=a(n.maxDrawbuffers,function(e){return 0===e?[0]:a(e,function(e){return 36064+e})}));var le=0;return{next:ae,current:ie,procs:function(){var e=x(),t=e.proc("poll"),i=e.proc("refresh"),f=e.block();t(f),i(f);var o,u=e.shared,s=u.gl,c=u.next,l=u.current;f(l,".dirty=false;"),D(e,t),D(e,i,null,!0),ee&&(o=e.link(ee)),r.oes_vertex_array_object&&i(e.link(r.oes_vertex_array_object),".bindVertexArrayOES(null);");for(var p=0;p<n.maxAttributes;++p){var d=i.def(u.attributes,"[",p,"]"),h=e.cond(d,".buffer");h.then(s,".enableVertexAttribArray(",p,");",s,".bindBuffer(",34962,",",d,".buffer.buffer);",s,".vertexAttribPointer(",p,",",d,".size,",d,".type,",d,".normalized,",d,".stride,",d,".offset);").else(s,".disableVertexAttribArray(",p,");",s,".vertexAttrib4f(",p,",",d,".x,",d,".y,",d,".z,",d,".w);",d,".buffer=null;"),i(h),ee&&i(o,".vertexAttribDivisorANGLE(",p,",",d,".divisor);")}return i(e.shared.vao,".currentVAO=null;",e.shared.vao,".setVAO(",e.shared.vao,".targetVAO);"),Object.keys(oe).forEach(function(r){var n=oe[r],a=f.def(c,".",r),o=e.block();o("if(",a,"){",s,".enable(",n,")}else{",s,".disable(",n,")}",l,".",r,"=",a,";"),i(o),t("if(",a,"!==",l,".",r,"){",o,"}")}),Object.keys(ue).forEach(function(r){var n,o,u=ue[r],p=ie[r],d=e.block();d(s,".",u,"("),b(p)?(u=p.length,n=e.global.def(c,".",r),o=e.global.def(l,".",r),d(a(u,function(e){return n+"["+e+"]"}),");",a(u,function(e){return o+"["+e+"]="+n+"["+e+"];"}).join("")),t("if(",a(u,function(e){return n+"["+e+"]!=="+o+"["+e+"]"}).join("||"),"){",d,"}")):(n=f.def(c,".",r),o=f.def(l,".",r),d(n,");",l,".",r,"=",n,";"),t("if(",n,"!==",o,"){",d,"}")),i(d)}),e.compile()}(),compile:function(e,t,r,n,i){var a=x();a.stats=a.link(i),Object.keys(t.static).forEach(function(e){J(a,t,e)}),Ae.forEach(function(t){J(a,e,t)});var f=O(e,t,r,n);return function(e,t){var r=e.proc("draw",1);L(e,r),E(e,r,t.context),D(e,r,t.framebuffer),T(e,r,t),S(e,r,t.state),M(e,r,t,!1,!0);var n=t.shader.progVar.append(e,r);if(r(e.shared.gl,".useProgram(",n,".program);"),t.shader.program)Q(e,r,t,t.shader.program);else{r(e.shared.vao,".setVAO(null);");var i=e.global.def("{}"),a=r.def(n,".id"),f=r.def(i,"[",a,"]");r(e.cond(f).then(f,".call(this,a0);").else(f,"=",i,"[",a,"]=",e.link(function(r){return q(Q,e,t,r,1)}),"(",n,");",f,".call(this,a0);"))}0<Object.keys(t.state).length&&r(e.shared.current,".dirty=true;"),e.shared.vao&&r(e.shared.vao,".setVAO(null);")}(a,f),X(a,f),function(e,t){function r(e){return e.contextDep&&i||e.propDep}var n=e.proc("batch",2);e.batchId="0",L(e,n);var i=!1,a=!0;Object.keys(t.context).forEach(function(e){i=i||t.context[e].propDep}),i||(E(e,n,t.context),a=!1);var f=!1;if((o=t.framebuffer)?(o.propDep?i=f=!0:o.contextDep&&i&&(f=!0),f||D(e,n,o)):D(e,n,null),t.state.viewport&&t.state.viewport.propDep&&(i=!0),T(e,n,t),S(e,n,t.state,function(e){return!r(e)}),t.profile&&r(t.profile)||M(e,n,t,!1,"a1"),t.contextDep=i,t.needsContext=a,t.needsFramebuffer=f,(a=t.shader.progVar).contextDep&&i||a.propDep)Y(e,n,t,null);else if(a=a.append(e,n),n(e.shared.gl,".useProgram(",a,".program);"),t.shader.program)Y(e,n,t,t.shader.program);else{n(e.shared.vao,".setVAO(null);");var o=e.global.def("{}"),u=(f=n.def(a,".id"),n.def(o,"[",f,"]"));n(e.cond(u).then(u,".call(this,a0,a1);").else(u,"=",o,"[",f,"]=",e.link(function(r){return q(Y,e,t,r,2)}),"(",a,");",u,".call(this,a0,a1);"))}0<Object.keys(t.state).length&&n(e.shared.current,".dirty=true;"),e.shared.vao&&n(e.shared.vao,".setVAO(null);")}(a,f),R(a.compile(),{destroy:function(){f.shader.program.destroy()}})}}}function M(e,t){for(var r=0;r<e.length;++r)if(e[r]===t)return r;return-1}var R=function(e,t){for(var r=Object.keys(t),n=0;n<r.length;++n)e[r[n]]=t[r[n]];return e},H=0,W={DynamicVariable:e,define:function(r,n){return new e(r,t(n+""))},isDynamic:function(t){return"function"==typeof t&&!t._reglType||t instanceof e},unbox:function t(r,n){return"function"==typeof r?new e(0,r):"number"==typeof r||"boolean"==typeof r?new e(5,r):Array.isArray(r)?new e(6,r.map(function(e,r){return t(e,n+"["+r+"]")})):r instanceof e?r:void 0},accessor:t},U={next:"function"==typeof requestAnimationFrame?function(e){return requestAnimationFrame(e)}:function(e){return setTimeout(e,16)},cancel:"function"==typeof cancelAnimationFrame?function(e){return cancelAnimationFrame(e)}:clearTimeout},N="undefined"!=typeof performance&&performance.now?function(){return performance.now()}:function(){return+new Date},q=o();q.zero=o();var Q=function(e,t){var r=1;t.ext_texture_filter_anisotropic&&(r=e.getParameter(34047));var n=1,i=1;t.webgl_draw_buffers&&(n=e.getParameter(34852),i=e.getParameter(36063));var a=!!t.oes_texture_float;if(a){a=e.createTexture(),e.bindTexture(3553,a),e.texImage2D(3553,0,6408,1,1,0,6408,5126,null);var f=e.createFramebuffer();if(e.bindFramebuffer(36160,f),e.framebufferTexture2D(36160,36064,3553,a,0),e.bindTexture(3553,null),36053!==e.checkFramebufferStatus(36160))a=!1;else{e.viewport(0,0,1,1),e.clearColor(1,0,0,1),e.clear(16384);var o=q.allocType(5126,4);e.readPixels(0,0,1,1,6408,5126,o),e.getError()?a=!1:(e.deleteFramebuffer(f),e.deleteTexture(a),a=1===o[0]),q.freeType(o)}}return o=!0,"undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||/Edge/.test(navigator.userAgent))||(o=e.createTexture(),f=q.allocType(5121,36),e.activeTexture(33984),e.bindTexture(34067,o),e.texImage2D(34069,0,6408,3,3,0,6408,5121,f),q.freeType(f),e.bindTexture(34067,null),e.deleteTexture(o),o=!e.getError()),{colorBits:[e.getParameter(3410),e.getParameter(3411),e.getParameter(3412),e.getParameter(3413)],depthBits:e.getParameter(3414),stencilBits:e.getParameter(3415),subpixelBits:e.getParameter(3408),extensions:Object.keys(t).filter(function(e){return!!t[e]}),maxAnisotropic:r,maxDrawbuffers:n,maxColorAttachments:i,pointSizeDims:e.getParameter(33901),lineWidthDims:e.getParameter(33902),maxViewportDims:e.getParameter(3386),maxCombinedTextureUnits:e.getParameter(35661),maxCubeMapSize:e.getParameter(34076),maxRenderbufferSize:e.getParameter(34024),maxTextureUnits:e.getParameter(34930),maxTextureSize:e.getParameter(3379),maxAttributes:e.getParameter(34921),maxVertexUniforms:e.getParameter(36347),maxVertexTextureUnits:e.getParameter(35660),maxVaryingVectors:e.getParameter(36348),maxFragmentUniforms:e.getParameter(36349),glsl:e.getParameter(35724),renderer:e.getParameter(7937),vendor:e.getParameter(7936),version:e.getParameter(7938),readFloat:a,npotTextureCube:o}},G=function(e){return e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Uint32Array||e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof Uint8ClampedArray},Y=function(e){return Object.keys(e).map(function(t){return e[t]})},X={shape:function(e){for(var t=[];e.length;e=e[0])t.push(e.length);return t},flatten:function(e,t,r,n){var i=1;if(t.length)for(var a=0;a<t.length;++a)i*=t[a];else i=0;switch(r=n||q.allocType(r,i),t.length){case 0:break;case 1:for(n=t[0],t=0;t<n;++t)r[t]=e[t];break;case 2:for(n=t[0],t=t[1],a=i=0;a<n;++a)for(var f=e[a],o=0;o<t;++o)r[i++]=f[o];break;case 3:s(e,t[0],t[1],t[2],r,0);break;default:!function e(t,r,n,i,a){for(var f=1,o=n+1;o<r.length;++o)f*=r[o];var u=r[n];if(4==r.length-n){var c=r[n+1],l=r[n+2];for(r=r[n+3],o=0;o<u;++o)s(t[o],c,l,r,i,a),a+=f}else for(o=0;o<u;++o)e(t[o],r,n+1,i,a),a+=f}(e,t,0,r,0)}return r}},J={"[object Int8Array]":5120,"[object Int16Array]":5122,"[object Int32Array]":5124,"[object Uint8Array]":5121,"[object Uint8ClampedArray]":5121,"[object Uint16Array]":5123,"[object Uint32Array]":5125,"[object Float32Array]":5126,"[object Float64Array]":5121,"[object ArrayBuffer]":5121},K={int8:5120,int16:5122,int32:5124,uint8:5121,uint16:5123,uint32:5125,float:5126,float32:5126},Z={dynamic:35048,stream:35040,static:35044},$=X.flatten,ee=X.shape,te=[];te[5120]=1,te[5122]=2,te[5124]=4,te[5121]=1,te[5123]=2,te[5125]=4,te[5126]=4;var re={points:0,point:0,lines:1,line:1,triangles:4,triangle:4,"line loop":2,"line strip":3,"triangle strip":5,"triangle fan":6},ne=new Float32Array(1),ie=new Uint32Array(ne.buffer),ae=[9984,9986,9985,9987],fe=[0,6409,6410,6407,6408],oe={};oe[6409]=oe[6406]=oe[6402]=1,oe[34041]=oe[6410]=2,oe[6407]=oe[35904]=3,oe[6408]=oe[35906]=4;var ue=g("HTMLCanvasElement"),se=g("OffscreenCanvas"),ce=g("CanvasRenderingContext2D"),le=g("ImageBitmap"),pe=g("HTMLImageElement"),de=g("HTMLVideoElement"),he=Object.keys(J).concat([ue,se,ce,le,pe,de]),me=[];me[5121]=1,me[5126]=4,me[36193]=2,me[5123]=2,me[5125]=4;var be=[];be[32854]=2,be[32855]=2,be[36194]=2,be[34041]=4,be[33776]=.5,be[33777]=.5,be[33778]=1,be[33779]=1,be[35986]=.5,be[35987]=1,be[34798]=1,be[35840]=.5,be[35841]=.25,be[35842]=.5,be[35843]=.25,be[36196]=.5;var ge=[];ge[32854]=2,ge[32855]=2,ge[36194]=2,ge[33189]=2,ge[36168]=1,ge[34041]=4,ge[35907]=4,ge[34836]=16,ge[34842]=8,ge[34843]=6;var ye=function(e,t,r,n,i){function a(e){this.id=s++,this.refCount=1,this.renderbuffer=e,this.format=32854,this.height=this.width=0,i.profile&&(this.stats={size:0})}function f(t){var r=t.renderbuffer;e.bindRenderbuffer(36161,null),e.deleteRenderbuffer(r),t.renderbuffer=null,t.refCount=0,delete c[t.id],n.renderbufferCount--}var o={rgba4:32854,rgb565:36194,"rgb5 a1":32855,depth:33189,stencil:36168,"depth stencil":34041};t.ext_srgb&&(o.srgba=35907),t.ext_color_buffer_half_float&&(o.rgba16f=34842,o.rgb16f=34843),t.webgl_color_buffer_float&&(o.rgba32f=34836);var u=[];Object.keys(o).forEach(function(e){u[o[e]]=e});var s=0,c={};return a.prototype.decRef=function(){0>=--this.refCount&&f(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var e=0;return Object.keys(c).forEach(function(t){e+=c[t].stats.size}),e}),{create:function(t,r){function f(t,r){var n=0,a=0,c=32854;if("object"==typeof t&&t?("shape"in t?(n=0|(a=t.shape)[0],a=0|a[1]):("radius"in t&&(n=a=0|t.radius),"width"in t&&(n=0|t.width),"height"in t&&(a=0|t.height)),"format"in t&&(c=o[t.format])):"number"==typeof t?(n=0|t,a="number"==typeof r?0|r:n):t||(n=a=1),n!==s.width||a!==s.height||c!==s.format)return f.width=s.width=n,f.height=s.height=a,s.format=c,e.bindRenderbuffer(36161,s.renderbuffer),e.renderbufferStorage(36161,c,n,a),i.profile&&(s.stats.size=ge[s.format]*s.width*s.height),f.format=u[s.format],f}var s=new a(e.createRenderbuffer());return c[s.id]=s,n.renderbufferCount++,f(t,r),f.resize=function(t,r){var n=0|t,a=0|r||n;return n===s.width&&a===s.height?f:(f.width=s.width=n,f.height=s.height=a,e.bindRenderbuffer(36161,s.renderbuffer),e.renderbufferStorage(36161,s.format,n,a),i.profile&&(s.stats.size=ge[s.format]*s.width*s.height),f)},f._reglType="renderbuffer",f._renderbuffer=s,i.profile&&(f.stats=s.stats),f.destroy=function(){s.decRef()},f},clear:function(){Y(c).forEach(f)},restore:function(){Y(c).forEach(function(t){t.renderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(36161,t.renderbuffer),e.renderbufferStorage(36161,t.format,t.width,t.height)}),e.bindRenderbuffer(36161,null)}}},ve=[];ve[6408]=4,ve[6407]=3;var xe=[];xe[5121]=1,xe[5126]=4,xe[36193]=2;var we=["x","y","z","w"],Ae="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),ke={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},_e={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Oe={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},Ee={cw:2304,ccw:2305},De=new B(!1,!1,!1,function(){});return function(e){function t(){if(0===J.length)A&&A.update(),ee=null;else{ee=U.next(t),l();for(var e=J.length-1;0<=e;--e){var r=J[e];r&&r(C,null,0)}b.flush(),A&&A.update()}}function r(){!ee&&0<J.length&&(ee=U.next(t))}function n(){ee&&(U.cancel(t),ee=null)}function a(e){e.preventDefault(),n(),K.forEach(function(e){e()})}function f(e){b.getError(),y.restore(),I.restore(),F.restore(),P.restore(),H.restore(),q.restore(),z.restore(),A&&A.restore(),G.procs.refresh(),r(),Z.forEach(function(e){e()})}function o(e){function t(e,t){var r={},n={};return Object.keys(e).forEach(function(i){var a=e[i];if(W.isDynamic(a))n[i]=W.unbox(a,i);else{if(t&&Array.isArray(a))for(var f=0;f<a.length;++f)if(W.isDynamic(a[f]))return void(n[i]=W.unbox(a,i));r[i]=a}}),{dynamic:n,static:r}}var r=t(e.context||{},!0),n=t(e.uniforms||{},!0),i=t(e.attributes||{},!1);e=t(function(e){function t(e){if(e in r){var t=r[e];delete r[e],Object.keys(t).forEach(function(n){r[e+"."+n]=t[n]})}}var r=R({},e);return delete r.uniforms,delete r.attributes,delete r.context,delete r.vao,"stencil"in r&&r.stencil.op&&(r.stencil.opBack=r.stencil.opFront=r.stencil.op,delete r.stencil.op),t("blend"),t("depth"),t("cull"),t("stencil"),t("polygonOffset"),t("scissor"),t("sample"),"vao"in e&&(r.vao=e.vao),r}(e),!1);var a={gpuTime:0,cpuTime:0,count:0},f=G.compile(e,i,n,r,a),o=f.draw,u=f.batch,s=f.scope,c=[];return R(function(e,t){var r;if("function"==typeof e)return s.call(this,null,e,0);if("function"==typeof t)if("number"==typeof e)for(r=0;r<e;++r)s.call(this,null,t,r);else{if(!Array.isArray(e))return s.call(this,e,t,0);for(r=0;r<e.length;++r)s.call(this,e[r],t,r)}else if("number"==typeof e){if(0<e)return u.call(this,function(e){for(;c.length<e;)c.push(null);return c}(0|e),0|e)}else{if(!Array.isArray(e))return o.call(this,e);if(e.length)return u.call(this,e,e.length)}},{stats:a,destroy:function(){f.destroy()}})}function u(e,t){var r=0;G.procs.poll();var n=t.color;n&&(b.clearColor(+n[0]||0,+n[1]||0,+n[2]||0,+n[3]||0),r|=16384),"depth"in t&&(b.clearDepth(+t.depth),r|=256),"stencil"in t&&(b.clearStencil(0|t.stencil),r|=1024),b.clear(r)}function s(e){return J.push(e),r(),{cancel:function(){var t=M(J,e);J[t]=function e(){var t=M(J,e);J[t]=J[J.length-1],--J.length,0>=J.length&&n()}}}}function c(){var e=Y.viewport,t=Y.scissor_box;e[0]=e[1]=t[0]=t[1]=0,C.viewportWidth=C.framebufferWidth=C.drawingBufferWidth=e[2]=t[2]=b.drawingBufferWidth,C.viewportHeight=C.framebufferHeight=C.drawingBufferHeight=e[3]=t[3]=b.drawingBufferHeight}function l(){C.tick+=1,C.time=m(),c(),G.procs.poll()}function p(){P.refresh(),c(),G.procs.refresh(),A&&A.update()}function m(){return(N()-k)/1e3}if(!(e=i(e)))return null;var b=e.gl,g=b.getContextAttributes();b.isContextLost();var y=function(e,t){function r(t){var r;t=t.toLowerCase();try{r=n[t]=e.getExtension(t)}catch(e){}return!!r}for(var n={},i=0;i<t.extensions.length;++i){var a=t.extensions[i];if(!r(a))return t.onDestroy(),t.onDone('"'+a+'" extension is not supported by the current WebGL context, try upgrading your system or a different browser'),null}return t.optionalExtensions.forEach(r),{extensions:n,restore:function(){Object.keys(n).forEach(function(e){if(n[e]&&!r(e))throw Error("(regl): error restoring extension "+e)})}}}(b,e);if(!y)return null;var v=function(){var e={"":0},t=[""];return{id:function(r){var n=e[r];return n||(n=e[r]=t.length,t.push(r),n)},str:function(e){return t[e]}}}(),x={vaoCount:0,bufferCount:0,elementsCount:0,framebufferCount:0,shaderCount:0,textureCount:0,cubeCount:0,renderbufferCount:0,maxTextureUnits:0},w=y.extensions,A=function(e,t){function r(){this.endQueryIndex=this.startQueryIndex=-1,this.sum=0,this.stats=null}function n(e,t,n){var i=f.pop()||new r;i.startQueryIndex=e,i.endQueryIndex=t,i.sum=0,i.stats=n,o.push(i)}if(!t.ext_disjoint_timer_query)return null;var i=[],a=[],f=[],o=[],u=[],s=[];return{beginQuery:function(e){var r=i.pop()||t.ext_disjoint_timer_query.createQueryEXT();t.ext_disjoint_timer_query.beginQueryEXT(35007,r),a.push(r),n(a.length-1,a.length,e)},endQuery:function(){t.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:n,update:function(){var e,r;if(0!==(e=a.length)){s.length=Math.max(s.length,e+1),u.length=Math.max(u.length,e+1),u[0]=0;var n=s[0]=0;for(r=e=0;r<a.length;++r){var c=a[r];t.ext_disjoint_timer_query.getQueryObjectEXT(c,34919)?(n+=t.ext_disjoint_timer_query.getQueryObjectEXT(c,34918),i.push(c)):a[e++]=c,u[r+1]=n,s[r+1]=e}for(a.length=e,r=e=0;r<o.length;++r){var l=(n=o[r]).startQueryIndex;c=n.endQueryIndex,n.sum+=u[c]-u[l],l=s[l],(c=s[c])===l?(n.stats.gpuTime+=n.sum/1e6,f.push(n)):(n.startQueryIndex=l,n.endQueryIndex=c,o[e++]=n)}o.length=e}},getNumPendingQueries:function(){return a.length},clear:function(){i.push.apply(i,a);for(var e=0;e<i.length;e++)t.ext_disjoint_timer_query.deleteQueryEXT(i[e]);a.length=0,i.length=0},restore:function(){a.length=0,i.length=0}}}(0,w),k=N(),E=b.drawingBufferWidth,j=b.drawingBufferHeight,C={tick:0,time:0,viewportWidth:E,viewportHeight:j,framebufferWidth:E,framebufferHeight:j,drawingBufferWidth:E,drawingBufferHeight:j,pixelRatio:e.pixelRatio},V=(E={elements:null,primitive:4,count:-1,offset:0,instances:-1},Q(b,w)),F=d(b,x,e,function(e){return z.destroyBuffer(e)}),B=h(b,w,F,x),z=D(b,w,V,x,F,B,E),I=T(b,v,x,e),P=_(b,w,V,function(){G.procs.poll()},C,x,e),H=ye(b,w,0,x,e),q=O(b,w,V,P,H,x),G=L(b,v,w,V,F,B,0,q,{},z,I,E,C,A,e),Y=(v=S(b,q,G.procs.poll,C),G.next),X=b.canvas,J=[],K=[],Z=[],$=[e.onDestroy],ee=null;X&&(X.addEventListener("webglcontextlost",a,!1),X.addEventListener("webglcontextrestored",f,!1));var te=q.setFBO=o({framebuffer:W.define.call(null,1,"framebuffer")});return p(),g=R(o,{clear:function(e){if("framebuffer"in e)if(e.framebuffer&&"framebufferCube"===e.framebuffer_reglType)for(var t=0;6>t;++t)te(R({framebuffer:e.framebuffer.faces[t]},e),u);else te(e,u);else u(0,e)},prop:W.define.bind(null,1),context:W.define.bind(null,2),this:W.define.bind(null,3),draw:o({}),buffer:function(e){return F.create(e,34962,!1,!1)},elements:function(e){return B.create(e,!1)},texture:P.create2D,cube:P.createCube,renderbuffer:H.create,framebuffer:q.create,framebufferCube:q.createCube,vao:z.createVAO,attributes:g,frame:s,on:function(e,t){var r;switch(e){case"frame":return s(t);case"lost":r=K;break;case"restore":r=Z;break;case"destroy":r=$}return r.push(t),{cancel:function(){for(var e=0;e<r.length;++e)if(r[e]===t){r[e]=r[r.length-1],r.pop();break}}}},limits:V,hasExtension:function(e){return 0<=V.extensions.indexOf(e.toLowerCase())},read:v,destroy:function(){J.length=0,n(),X&&(X.removeEventListener("webglcontextlost",a),X.removeEventListener("webglcontextrestored",f)),I.clear(),q.clear(),H.clear(),z.clear(),P.clear(),B.clear(),F.clear(),A&&A.clear(),$.forEach(function(e){e()})},_gl:b,_refresh:p,poll:function(){l(),A&&A.update()},now:m,stats:x}),e.onDone(null,g),g}});
|
|
261
237
|
|
|
238
|
+
},{}],80:[function(require,module,exports){
|
|
239
|
+
const flatten=t=>t.reduce((t,a)=>Array.isArray(a)?t.concat(flatten(a)):t.concat(a),[]);module.exports=flatten;
|
|
240
|
+
|
|
241
|
+
},{}],81:[function(require,module,exports){
|
|
242
|
+
const fnNumberSort=(o,r)=>o-r;module.exports=fnNumberSort;
|
|
243
|
+
|
|
244
|
+
},{}],82:[function(require,module,exports){
|
|
245
|
+
const head=r=>{if(Array.isArray(r)&&0!==r.length)return r[0]};module.exports=head;
|
|
246
|
+
|
|
247
|
+
},{}],83:[function(require,module,exports){
|
|
248
|
+
module.exports={flatten:require("./flatten"),fnNumberSort:require("./fnNumberSort"),head:require("./head"),insertSorted:require("./insertSorted"),nth:require("./nth"),padToLength:require("./padToLength"),toArray:require("./toArray")};
|
|
249
|
+
|
|
250
|
+
},{"./flatten":80,"./fnNumberSort":81,"./head":82,"./insertSorted":84,"./nth":85,"./padToLength":86,"./toArray":87}],84:[function(require,module,exports){
|
|
251
|
+
const insertSorted=(t,e,o)=>{let r=0,n=t.length;for(;n>r;){const s=Math.floor((r+n)/2);o(e,t[s])>0?r=s+1:n=s}return t.splice(r,0,e),t};module.exports=insertSorted;
|
|
252
|
+
|
|
253
|
+
},{}],85:[function(require,module,exports){
|
|
254
|
+
const nth=(r,t)=>{if(Array.isArray(r)&&!(r.length<t))return r[t]};module.exports=nth;
|
|
255
|
+
|
|
256
|
+
},{}],86:[function(require,module,exports){
|
|
257
|
+
const padToLength=(e,o,t)=>{for(e=e.slice();e.length<t;)e.push(o);return e};module.exports=padToLength;
|
|
258
|
+
|
|
259
|
+
},{}],87:[function(require,module,exports){
|
|
260
|
+
const toArray=r=>Array.isArray(r)?r:null==r?[]:[r];module.exports=toArray;
|
|
261
|
+
|
|
262
262
|
},{}],88:[function(require,module,exports){
|
|
263
263
|
const boundingBox=r=>{if(0===r.length)return[[0,0,0],[0,0,0]];const e=Array.isArray(r)&&Array.isArray(r[0]),n=e?r[0].length:3,o=new Array(n),t=new Array(n);for(let r=0;r<n;r+=1)o[r]=1/0,t[r]=-1/0;if(e)r.forEach(r=>{for(let l=0;l<n;l+=1){const n=e?r[l]:r;t[l]=n>t[l]?n:t[l],o[l]=n<o[l]?n:o[l]}});else for(let e=0;e<r.length;e+=n)for(let l=0;l<n;l+=1){const n=r[l+e];t[l]=n>t[l]?n:t[l],o[l]=n<o[l]?n:o[l]}return[o,t]};module.exports=boundingBox;
|
|
264
264
|
|
|
265
265
|
},{}],89:[function(require,module,exports){
|
|
266
266
|
const vec3=require("gl-vec3"),{flatten:flatten}=require("@jscad/array-utils"),boundingBox=require("./boundingBox"),computeBounds=(...e)=>{let c;(e=flatten(e)).forEach(e=>{let t=boundingBox(e.positions);t=t.map(c=>vec3.transformMat4(c,c,e.transforms)),c?(vec3.min(c[0],c[0],t[0]),vec3.max(c[1],c[1],t[1])):c=t});const t=vec3.min(vec3.create(),c[1],c[0]),a=vec3.max(vec3.create(),c[1],c[0]),n=vec3.subtract(vec3.create(),a,t);let r=vec3.scale(vec3.create(),n,.5);return r=vec3.add(r,t,r),{dia:vec3.distance(r,a),center:[...r],min:[...t],max:[...a],size:[...n]}};module.exports=computeBounds;
|
|
267
267
|
|
|
268
|
-
},{"./boundingBox":88,"@jscad/array-utils":
|
|
268
|
+
},{"./boundingBox":88,"@jscad/array-utils":83,"gl-vec3":51}],90:[function(require,module,exports){
|
|
269
269
|
const vec3=require("gl-vec3"),mat4=require("gl-mat4"),fromOrthographicToPerspective=e=>{const{near:t,far:r,fov:o,zoom:a}=e,{viewport:i}=e,c=require("./perspectiveCamera").setProjection(e,{width:i[2],height:i[3]}),{projectionType:p}=require("./perspectiveCamera").cameraState;return Object.assign({},e,c,{projectionType:p},{near:t,far:r,fov:o})},fromPerspectiveToOrthographic=e=>{const{fov:t,aspect:r}=e,o=.3*vec3.length(vec3.subtract([],e.position,e.target)),a=Math.tan(t)*o*r,i=Math.tan(t)*o,{near:c,far:p,viewport:s}=e,n={zoom:1,near:c,far:p},v=require("./orthographicCamera").cameraState,h=require("./orthographicCamera").setProjection(n,{width:a,height:i});return Object.assign({},v,e,h,{projectionType:v.projectionType,viewport:s})},toPerspectiveView=({camera:e})=>{const t=vec3.distance(e.position,e.target),r=[t,t,t];return{view:mat4.lookAt(mat4.create(),r,e.target,e.up),position:r}},toPresetView=(e,{camera:t})=>{const r=vec3.distance(t.position,t.target),o=vec3.add(vec3.create(),{top:[0,-1e-6,1],bottom:[0,0,-1],front:[0,1,0],back:[0,-1,0],left:[-1,0,0],right:[1,0,0],undefined:[0,0,0]}[e].map(e=>e*r),t.target);return{view:mat4.lookAt(mat4.create(),o,t.target,t.up),position:o}};module.exports={toPerspectiveView:toPerspectiveView,toPresetView:toPresetView,fromOrthographicToPerspective:fromOrthographicToPerspective,fromPerspectiveToOrthographic:fromPerspectiveToOrthographic};
|
|
270
270
|
|
|
271
|
-
},{"./orthographicCamera":91,"./perspectiveCamera":92,"gl-mat4":
|
|
271
|
+
},{"./orthographicCamera":91,"./perspectiveCamera":92,"gl-mat4":18,"gl-vec3":51}],91:[function(require,module,exports){
|
|
272
272
|
const mat4=require("gl-mat4"),cameraState={view:mat4.identity(new Float32Array(16)),projection:mat4.identity(new Float32Array(16)),matrix:mat4.identity(new Float32Array(16)),near:1,far:1300,up:[0,0,1],eye:new Float32Array(3),position:[150,250,200],target:[0,0,0],fov:Math.PI/4,aspect:1,viewport:[0,0,0,0],zoom:1,projectionType:"orthographic"},cameraProps={},setProjection=(t,e)=>{const{width:a,height:r}=e,o=a/r,i=[0,0,a,r],n=t.zoom,c=-a*n,m=a*n,p=-r*n,s=r*n;return{projection:mat4.ortho([],c,m,p,s,t.near,t.far),aspect:o,viewport:i}};module.exports={cameraState:cameraState,cameraProps:cameraProps,setProjection:setProjection};
|
|
273
273
|
|
|
274
|
-
},{"gl-mat4":
|
|
274
|
+
},{"gl-mat4":18}],92:[function(require,module,exports){
|
|
275
275
|
const mat4=require("gl-mat4"),vec3=require("gl-vec3"),cameraState={view:mat4.identity(new Float32Array(16)),projection:mat4.identity(new Float32Array(16)),matrix:mat4.identity(new Float32Array(16)),near:1,far:18e3,up:[0,0,1],eye:new Float32Array(3),position:[450,550,700],target:[0,0,0],fov:Math.PI/4,aspect:1,viewport:[0,0,0,0],projectionType:"perspective"},cameraProps={},defaults=Object.assign({},cameraState,cameraProps),setProjection=(e,t,a)=>{const r=a.width/a.height,o=mat4.perspective(mat4.identity([]),t.fov,r,t.near,t.far),i=[0,0,a.width,a.height],c=e||{};return c.projection=o,c.aspect=r,c.viewport=i,c},update=(e,t)=>{t||(t=e);const{position:a,target:r,up:o}=t,i=vec3.subtract([],a,r),c=vec3.add(vec3.create(),r,i),n=mat4.lookAt(mat4.create(),c,r,o),p=e||{};return p.position=c,p.view=n,p};module.exports={cameraState:cameraState,cameraProps:cameraProps,defaults:defaults,setProjection:setProjection,update:update};
|
|
276
276
|
|
|
277
|
-
},{"gl-mat4":
|
|
277
|
+
},{"gl-mat4":18,"gl-vec3":51}],93:[function(require,module,exports){
|
|
278
278
|
const vec3=require("gl-vec3"),mat4=require("gl-mat4"),{max:max,min:min,sqrt:sqrt,PI:PI,sin:sin,cos:cos,atan2:atan2}=Math,computeBounds=require("../bound-utils/computeBounds"),controlsProps={limits:{minDistance:.01,maxDistance:1e4},drag:.27,EPS:1e-6,zoomToFit:{auto:!0,targets:"all",tightness:1.5},userControl:{zoom:!0,zoomSpeed:1,rotate:!0,rotateSpeed:1,pan:!0,panSpeed:1},autoRotate:{enabled:!1,speed:1},autoAdjustPlanes:!0},controlsState={thetaDelta:0,phiDelta:0,scale:1},defaults=Object.assign({},controlsState,controlsProps),update=({controls:t,camera:e},a)=>{const{EPS:o,drag:s}=t,{position:r,target:n}=e,c=t.up?t.up:e.up;let i=t.thetaDelta;const l=t.phiDelta,m=t.scale,p=vec3.subtract([],r,n);let u,d;1===c[2]?(u=atan2(p[0],p[1]),d=atan2(sqrt(p[0]*p[0]+p[1]*p[1]),p[2])):(u=atan2(p[0],p[2]),d=atan2(sqrt(p[0]*p[0]+p[2]*p[2]),p[1])),t.autoRotate.enabled&&t.userControl.rotate&&(i+=2*Math.PI/60/60*t.autoRotate.speed),u+=i,d=max(o,min(PI-o,d+=l));const h=max(t.limits.minDistance,min(t.limits.maxDistance,vec3.length(p)*m));1===c[2]?(p[0]=h*sin(d)*sin(u),p[2]=h*cos(d),p[1]=h*sin(d)*cos(u)):(p[0]=h*sin(d)*sin(u),p[1]=h*cos(d),p[2]=h*sin(d)*cos(u));const g=vec3.add(vec3.create(),n,p),v=mat4.lookAt(mat4.create(),g,n,c),D=1-max(min(s,1),.01);return{controls:{thetaDelta:i*D,phiDelta:l*D,scale:1,changed:vec3.distance(r,g)>.001},camera:{position:g,view:v}}},rotate=({controls:t,camera:e,speed:a=1},o)=>{let{thetaDelta:s,phiDelta:r}=t;return t.userControl.rotate&&(s+=o[0]*a,r+=o[1]*a),{controls:{thetaDelta:s,phiDelta:r},camera:e}},zoom=({controls:t,camera:e,speed:a=1},o=0)=>{let{scale:s}=t;if(t.userControl.zoom&&e&&void 0!==o&&0!==o&&!isNaN(o)){const r=(o=o/o*(0===Math.sign(o)?1:Math.sign(o))*a)+t.scale,n=vec3.distance(e.position,e.target)*r;if(n>t.limits.minDistance&&n<t.limits.maxDistance&&(s+=o),"orthographic"===e.projectionType){const t=.3*vec3.length(vec3.subtract([],e.position,e.target)),a=Math.tan(e.fov)*t*e.aspect,o=Math.tan(e.fov)*t;e=require("../cameras/orthographicCamera").setProjection(e,{width:a,height:o})}}return{controls:{scale:s},camera:e}},pan=({controls:t,camera:e,speed:a=1},o)=>{const s=require("camera-unproject"),{projection:r,view:n,viewport:c}=e,i=mat4.multiply([],r,n),l=mat4.invert([],i),m=[c[2],c[3],0],p=[c[2]-o[0],c[3]+o[1],0],u=s([],m,c,l),d=s([],p,c,l),h=vec3.distance(e.position,e.eye),g=vec3.subtract([],u,d).map(e=>e*a*h*t.scale);return{controls:t,camera:{position:vec3.add(vec3.create(),e.position,g),target:vec3.add(vec3.create(),e.target,g)}}},zoomToFit=({controls:t,camera:e,entities:a})=>{const{zoomToFit:o}=t;if("all"!==o.targets)return{controls:t,camera:e};if(0===a.length)return{controls:t,camera:e};const s=a.map(t=>t.geometry),r=computeBounds(s),{fov:n,target:c,position:i}=e,{tightness:l}=Object.assign({},o,controlsProps.zoomToFit),m=r.dia*l/Math.tan(n/2)/vec3.distance(c,i);return{camera:{target:r.center},controls:{scale:m}}},reset=({controls:t,camera:e},a)=>{return{camera:{position:a.camera.position,target:a.camera.target,projection:mat4.perspective([],e.fov,e.aspect,e.near,e.far),view:a.camera.view},controls:{thetaDelta:a.controls.thetaDelta,phiDelta:a.controls.phiDelta,scale:a.controls.scale}}};module.exports={controlsProps:controlsProps,controlsState:controlsState,defaults:defaults,update:update,rotate:rotate,zoom:zoom,pan:pan,zoomToFit:zoomToFit,reset:reset};
|
|
279
279
|
|
|
280
|
-
},{"../bound-utils/computeBounds":89,"../cameras/orthographicCamera":91,"camera-unproject":
|
|
280
|
+
},{"../bound-utils/computeBounds":89,"../cameras/orthographicCamera":91,"camera-unproject":1,"gl-mat4":18,"gl-vec3":51}],94:[function(require,module,exports){
|
|
281
281
|
const{flatten:flatten,toArray:toArray}=require("@jscad/array-utils"),{meshColor:meshColor}=require("../rendering/renderDefaults"),geom2ToGeometries=require("./geom2ToGeometries"),geom3ToGeometries=require("./geom3ToGeometries"),path2ToGeometries=require("./path2ToGeometries"),assembleEntities=e=>{return e.map(e=>{return{geometry:e,visuals:{drawCmd:"2d"===e.type?"drawLines":"drawMesh",show:!0,transparent:e.isTransparent,useVertexColors:!0}}})},entitiesFromSolids=(e,...o)=>{const r={color:meshColor,smoothNormals:!0},{color:t,smoothNormals:s}=Object.assign({},r,e);o=(o=flatten(toArray(o))).filter(e=>e&&e instanceof Object);const i=[];return o.forEach(e=>{let o=[];"sides"in e?o=geom2ToGeometries({color:t},e):"points"in e?o=path2ToGeometries({color:t},e):"polygons"in e&&(o=geom3ToGeometries({smoothLighting:s,normalThreshold:.3,color:t},e)),i.push(...assembleEntities(o))}),i};module.exports=entitiesFromSolids;
|
|
282
282
|
|
|
283
|
-
},{"../rendering/renderDefaults":111,"./geom2ToGeometries":95,"./geom3ToGeometries":96,"./path2ToGeometries":97,"@jscad/array-utils":
|
|
283
|
+
},{"../rendering/renderDefaults":111,"./geom2ToGeometries":95,"./geom3ToGeometries":96,"./path2ToGeometries":97,"@jscad/array-utils":83}],95:[function(require,module,exports){
|
|
284
284
|
const mat4=require("gl-mat4"),maxIndex=Math.floor(32767.5),geom2ToGeometries=(o,e)=>{let{color:t}=o;const n=e.sides;if(0===n.length)return[];"color"in e&&(t=e.color);const r=t[3]<1,s=[],l=Math.floor(n.length/maxIndex)+1,a=(o,e)=>{s.push(o,e||o)},m=[];for(let o=0;o<l;o++){const l=o*maxIndex,c=Math.min(l+maxIndex,n.length),h=[];for(let o=l;o<c;o++){const e=n[o];if(e.color){if(0===s.length&&h.length>0){const o=h.length;for(let e=0;e<o;e++)s.push(t)}a(e.color,e.endColor)}else s.length&&a(t);h.push([e[0][0],e[0][1],0]),h.push([e[1][0],e[1][1],0])}const i=h.map(o=>[0,0,-1]),f=h.map((o,e)=>e),p=e.transforms?mat4.clone(e.transforms):mat4.create();m.push({type:"2d",positions:h,normals:i,indices:f,transforms:p,color:t,colors:s,isTransparent:r})}return m};module.exports=geom2ToGeometries;
|
|
285
285
|
|
|
286
|
-
},{"gl-mat4":
|
|
286
|
+
},{"gl-mat4":18}],96:[function(require,module,exports){
|
|
287
287
|
const vec3=require("gl-vec3"),mat4=require("gl-mat4"),maxIndex=65535,geom3ToGeometries=(o,e)=>{let{color:t,smoothLighting:n}=o;"color"in e&&(t=e.color);const r=e.polygons,l=e.transforms?mat4.clone(e.transforms):mat4.create(),s=[];let c=0;for(;c<r.length;){let o=0,e=c;for(let t=c;t<r.length&&!((o+=r[t].vertices.length)>65535);t++)e++;const n=[],i=[],a=[],p=[],m=t[3]<1;for(let o=c;o<e;o++){const e=r[o],l=e.vertices,s=calculateNormal(e),c=polygonColor(e,t),m=[];for(let o=0;o<l.length;o++){const e=l[o];n.push(e),i.push(s),p.push(c);const t=n.length-1;m.push(t)}for(let o=2;o<m.length;o++)a.push([m[0],m[o-1],m[o]])}const u={type:"3d",positions:n,normals:i,indices:a,colors:p,transforms:l,isTransparent:m};s.push(u),c=e}return s},smoothing=()=>{const o=[],e=[];let t=!0;const n=[],r=[],l=[],s=[],c=[];let i=0;for(let a=0;a<o.length;a++){const p=o[a],m=p.vertices,u=polygonColor(p,e),h=calculateNormal(p);u&&1!==u[3]&&(t=!0);const g=[];for(let o=0;o<m.length;o++){let e;const t=m[o];{const o={normal:h,position:t},l=fuzyNormalAndPositionLookup(c,o,.5);if(l)e=l.index;else{const l=c[o.position],a=[{normal:o.normal,index:i}];c[o.position]=l?c[o.position].concat(a):a,e=i,u&&s.push(u),r.push(h),n.push(t),i+=1}}g.push(e)}for(let o=2;o<g.length;o++)l.push([g[0],g[o-1],g[o]])}},polygonColor=(o,e)=>{let t=e;return o.color&&(t=o.color),t&&t.length<4&&t.push(1),t},calculateNormal=o=>{if(o.plane)return vec3.clone(o.plane);const e=o.vertices,t=vec3.create();vec3.subtract(t,e[1],e[0]);const n=vec3.create();vec3.subtract(n,e[2],e[0]);const r=vec3.create();return vec3.cross(r,t,n),vec3.normalize(r,r),r},areNormalsSimilar=(o,e,t)=>vec3.distance(o,e)<=t,fuzyNormalAndPositionLookup=(o,e,t)=>{const n=o[e.position];if(n)for(let o=0;o<n.length;o++){const r=n[o].normal;if(areNormalsSimilar(r,e.normal,t))return{tupple:{position:e.position,normal:r},index:n[o].index}}};module.exports=geom3ToGeometries;
|
|
288
288
|
|
|
289
|
-
},{"gl-mat4":
|
|
289
|
+
},{"gl-mat4":18,"gl-vec3":51}],97:[function(require,module,exports){
|
|
290
290
|
const mat4=require("gl-mat4"),maxIndex=Math.floor(32767.5)-2,path2ToGeometries=(o,t)=>{let{color:e}=o;const s=t.points;if(0===s.length)return[];"color"in t&&(e=t.color);const n=e[3]<1,r=Math.floor(s.length/maxIndex)+1,a=[];for(let o=0;o<r;o++){const l=o*maxIndex,m=Math.min(l+maxIndex,s.length),c=[];let i;for(let o=l;o<m;o++){const t=s[o];i&&(c.push([i[0],i[1],0]),c.push([t[0],t[1],0])),i=t}if(o+1===r&&t.isClosed&&i){const o=s[0];c.push([i[0],i[1],0]),c.push([o[0],o[1],0])}const p=c.map(o=>[0,0,-1]),h=c.map((o,t)=>t),f=t.transforms?mat4.clone(t.transforms):mat4.create();a.push({type:"2d",positions:c,normals:p,indices:h,transforms:f,color:e,isTransparent:n})}return a};module.exports=path2ToGeometries;
|
|
291
291
|
|
|
292
|
-
},{"gl-mat4":
|
|
292
|
+
},{"gl-mat4":18}],98:[function(require,module,exports){
|
|
293
293
|
module.exports={prepareRender:require("./rendering/render"),drawCommands:{drawGrid:require("./rendering/commands/drawGrid/multi.js"),drawAxis:require("./rendering/commands/drawAxis"),drawMesh:require("./rendering/commands/drawMesh"),drawLines:require("./rendering/commands/drawLines")},cameras:{camera:require("./cameras/camera"),orthographic:require("./cameras/orthographicCamera"),perspective:require("./cameras/perspectiveCamera")},controls:{orbit:require("./controls/orbitControls")},entitiesFromSolids:require("./geometry-utils-V2/entitiesFromSolids")};
|
|
294
294
|
|
|
295
295
|
},{"./cameras/camera":90,"./cameras/orthographicCamera":91,"./cameras/perspectiveCamera":92,"./controls/orbitControls":93,"./geometry-utils-V2/entitiesFromSolids":94,"./rendering/commands/drawAxis":99,"./rendering/commands/drawGrid/multi.js":101,"./rendering/commands/drawLines":103,"./rendering/commands/drawMesh":106,"./rendering/render":109}],99:[function(require,module,exports){
|
|
296
296
|
const mat4=require("gl-mat4"),drawAxis=(t,i)=>{let{size:o,xColor:e,yColor:l,zColor:m,lineWidth:a,alwaysVisible:n}=Object.assign({},{xColor:[1,0,0,1],yColor:[0,1,0,1],zColor:[0,0,1,1],size:10,lineWidth:3,alwaysVisible:!0},i);a>t.limits.lineWidthDims[1]&&(a=t.limits.lineWidthDims[1]);const r=[0,0,0,o,0,0],d={frag:"precision mediump float;\n uniform vec4 color;\n void main() {\n gl_FragColor = color;\n }",vert:"\n precision mediump float;\n attribute vec3 position;\n uniform mat4 model, view, projection;\n void main() {\n gl_Position = projection * view * model * vec4(position, 1);\n }",uniforms:{model:(t,i)=>i&&i.model?i.model:mat4.identity([]),color:(t,i)=>i.color,angle:(t,i)=>i.angle},attributes:{position:r},count:r.length/3,primitive:"line loop",lineWidth:a,depth:{enable:!n}},s=mat4.identity([]),c=mat4.rotateZ(mat4.create(),mat4.identity([]),Math.PI/2),p=mat4.rotateY(mat4.create(),mat4.identity([]),-Math.PI/2),u=t(d);return t=>{const i={model:mat4.identity([])};return t=Object.assign({},i,t),u([{color:e,model:mat4.multiply(mat4.create(),t.model,s)},{color:l,model:mat4.multiply(mat4.create(),t.model,c)},{color:m,model:mat4.multiply(mat4.create(),t.model,p)}])}};module.exports=drawAxis;
|
|
297
297
|
|
|
298
|
-
},{"gl-mat4":
|
|
298
|
+
},{"gl-mat4":18}],100:[function(require,module,exports){
|
|
299
299
|
const mat4=require("gl-mat4"),makeDrawGrid=(o,i={})=>{const n=[],t={visuals:{color:[0,0,1,1],fadeOut:!1},ticks:1,size:[16,16],centered:!1,lineWidth:2},e=Object.assign({},t.visuals,i.visuals||{}),{fadeOut:r,color:s}=e,{size:l,ticks:a,centered:c,lineWidth:d}=Object.assign({},t,i),f=l[0],u=l[1];if(c){const o=.5*f,i=.5*u,t=-o+o%a,e=-t,r=-i+i%a,s=-r,l=0;for(let o=t,i=0;o<=e;o+=a,i+=1)i%l!=0&&(n.push(r,o,0),n.push(s,o,0),n.push(r,o,0));for(let o=r,i=0;o<=s;o+=a,i+=1)i%l!=0&&(n.push(o,t,0),n.push(o,e,0),n.push(o,t,0))}else{for(let o=.5*-f;o<=.5*f;o+=a)n.push(.5*-u,o,0),n.push(.5*u,o,0),n.push(.5*-u,o,0);for(let o=.5*-u;o<=.5*u;o+=a)n.push(o,.5*-f,0),n.push(o,.5*f,0),n.push(o,.5*-f,0)}return o({vert:"precision mediump float;\n\n uniform float camNear, camFar;\n uniform mat4 model, view, projection;\n\n attribute vec3 position;\n varying vec3 fragNormal, fragPosition;\n varying vec4 worldPosition;\n\n void main() {\n fragPosition = position;\n worldPosition = model * vec4(position, 1);\n vec4 glPosition = projection * view * worldPosition;\n gl_Position = glPosition;\n }",frag:"precision mediump float;\n uniform vec4 color;\n varying vec3 fragNormal, fragPosition;\n varying vec4 worldPosition;\n\n uniform vec4 fogColor;\n uniform bool fadeOut;\n void main() {\n float dist = .5;\n if(fadeOut){\n dist = distance( vec2(0.,0.), vec2(worldPosition.x, worldPosition.y));\n dist *= 0.0025;\n dist = sqrt(dist);\n }\n\n gl_FragColor = mix(color, fogColor, dist);\n }\n ",attributes:{position:o.buffer(n)},count:n.length/3,uniforms:{model:(o,i)=>i&&i.model?i.model:mat4.identity([]),color:(o,i)=>i&&i.color?i.color:s,fogColor:(o,i)=>i&&i.color?[i.color[0],i.color[1],i.color[2],0]:[s[0],s[1],s[2],0],fadeOut:(o,i)=>i&&void 0!==i.fadeOut?i.fadeOut:r},lineWidth:(i,n)=>Math.min(n&&n.lineWidth?n.lineWidth:d,o.limits.lineWidthDims[1]),primitive:"lines",cull:{enable:!0,face:"front"},polygonOffset:{enable:!0,offset:{factor:1,units:10*Math.random()}},blend:{enable:!0,func:{src:"src alpha",dst:"one minus src alpha"}}})};module.exports=makeDrawGrid;
|
|
300
300
|
|
|
301
|
-
},{"gl-mat4":
|
|
301
|
+
},{"gl-mat4":18}],101:[function(require,module,exports){
|
|
302
302
|
const makeDrawMultiGrid=(e,i)=>{const{size:s,ticks:r}=Object.assign({},{size:[50,50],ticks:[10,1]},i),t=require("./index")(e,{size:s,ticks:r[0]}),u=require("./index")(e,{size:s,ticks:r[1]});return e=>{t(e),u({color:e.subColor,fadeOut:e.fadeOut})}};module.exports=makeDrawMultiGrid;
|
|
303
303
|
|
|
304
304
|
},{"./index":100}],102:[function(require,module,exports){
|
|
@@ -307,7 +307,7 @@ const vColorFrag="\nprecision mediump float;\nuniform vec4 ucolor;\n\nvoid main
|
|
|
307
307
|
},{}],103:[function(require,module,exports){
|
|
308
308
|
const mat4=require("gl-mat4"),{meshColor:meshColor}=require("../../renderDefaults"),drawLines=(e,r={})=>{const o={color:meshColor,geometry:void 0};let{geometry:t,color:s,transparent:a}=Object.assign({},o,r);"color"in t&&(s=t.color);const l=!!(t.indices&&t.indices.length>0),i=!!(t.normals&&t.normals.length>0),n=!!(t.colors&&t.colors.length>0),c={primitive:"lines",vert:n?require("./vColorShaders").vert:require("./meshShaders").vert,frag:n?require("./vColorShaders").frag:require("./colorOnlyShaders").frag,uniforms:{model:(e,r)=>r.model||t.transforms||mat4.create(),ucolor:(e,r)=>r&&r.color?r.color:s},attributes:{position:e.buffer({usage:"static",type:"float",data:t.positions})}};return a&&(c.blend={enable:!0,func:{src:"src alpha",dst:"one minus src alpha"}}),n&&(c.attributes.color=e.buffer({usage:"static",type:"float",data:t.colors})),l&&(c.elements=e.elements({usage:"static",type:"uint16",data:t.indices})),i&&(c.attributes.normal=e.buffer({usage:"static",type:"float",data:t.normals})),e(c)};module.exports=drawLines;
|
|
309
309
|
|
|
310
|
-
},{"../../renderDefaults":111,"./colorOnlyShaders":102,"./meshShaders":104,"./vColorShaders":105,"gl-mat4":
|
|
310
|
+
},{"../../renderDefaults":111,"./colorOnlyShaders":102,"./meshShaders":104,"./vColorShaders":105,"gl-mat4":18}],104:[function(require,module,exports){
|
|
311
311
|
const meshVert="\nprecision mediump float;\n\nuniform float camNear, camFar;\nuniform mat4 model, view, projection;\n\nattribute vec3 position, normal;\n\n\nvarying vec3 surfaceNormal, surfacePosition;\nvarying vec4 _worldSpacePosition;\n\n\nvoid main() {\n\n\n surfacePosition = position;\n surfaceNormal = normal;\n vec4 worldSpacePosition = model * vec4(position, 1);\n _worldSpacePosition = worldSpacePosition;\n\n vec4 glPosition = projection * view * model * vec4(position, 1);\n gl_Position = glPosition;\n}\n",meshFrag="\nprecision mediump float;\nvarying vec3 surfaceNormal;\nuniform float ambientLightAmount;\nuniform float diffuseLightAmount;\nuniform vec4 ucolor;\nuniform vec3 lightDirection;\nuniform vec3 opacity;\n\nvarying vec4 _worldSpacePosition;\n\nuniform vec2 printableArea;\n\nvec4 errorColor = vec4(0.15, 0.15, 0.15, 0.3);\n\nvoid main () {\n vec4 depth = gl_FragCoord;\n\n float v = 0.8; // shadow value\n vec4 endColor = ucolor;\n\n vec3 ambient = ambientLightAmount * endColor.rgb;\n float cosTheta = dot(surfaceNormal, lightDirection);\n vec3 diffuse = diffuseLightAmount * endColor.rgb * clamp(cosTheta , 0.0, 1.0 );\n\n float cosTheta2 = dot(surfaceNormal, vec3(-lightDirection.x, -lightDirection.y, lightDirection.z));\n vec3 diffuse2 = diffuseLightAmount * endColor.rgb * clamp(cosTheta2 , 0.0, 1.0 );\n\n gl_FragColor = vec4((ambient + diffuse + diffuse2 * v), endColor.a);\n}";module.exports={vert:meshVert,frag:meshFrag};
|
|
312
312
|
|
|
313
313
|
},{}],105:[function(require,module,exports){
|
|
@@ -316,7 +316,7 @@ const vColorVert="\nprecision mediump float;\n\nuniform float camNear, camFar;\n
|
|
|
316
316
|
},{}],106:[function(require,module,exports){
|
|
317
317
|
const mat4=require("gl-mat4"),{meshColor:meshColor}=require("../../renderDefaults"),drawMesh=(e,r={extras:{}})=>{const t={useVertexColors:!0,dynamicCulling:!0,geometry:void 0,color:meshColor,visuals:{}},{geometry:s,dynamicCulling:a,useVertexColors:o,color:l,visuals:n}=Object.assign({},t,r),i=e.buffer([]),u=!!(s.indices&&s.indices.length>0),c=!!(s.normals&&s.normals.length>0),m="transparent"in n&&n.transparent,g=!!(o&&s.colors&&s.colors.length>0),d=s.transforms||mat4.create(),f=mat4.determinant(d)<0,h=a&&f?"front":"back",p=g?require("./vColorShaders").vert:require("./meshShaders").vert,b=g?require("./vColorShaders").frag:require("./meshShaders").frag,v=mat4.invert(mat4.create(),d);let C={primitive:"triangles",vert:p,frag:b,uniforms:{model:(e,r)=>d,ucolor:(e,r)=>r&&r.color?r.color:l,vColorToggler:(e,r)=>r&&r.useVertexColors&&!0===r.useVertexColors?1:0,unormal:(e,r)=>{const t=mat4.invert(mat4.create(),r.camera.view);return mat4.multiply(t,v,t),mat4.transpose(t,t),t}},attributes:{position:e.buffer({usage:"static",type:"float",data:s.positions}),ao:i},cull:{enable:!0,face:h}};return m&&(C.blend={enable:!0,func:{src:"src alpha",dst:"one minus src alpha"}}),s.cells?C.elements=s.cells:u?C.elements=e.elements({usage:"static",type:"uint16",data:s.indices}):s.triangles?C.elements=s.triangles:C.count=s.positions.length/3,c&&(C.attributes.normal=e.buffer({usage:"static",type:"float",data:s.normals})),g&&(C.attributes.color=e.buffer({usage:"static",type:"float",data:s.colors})),e(C=Object.assign({},C,r.extras))};module.exports=drawMesh;
|
|
318
318
|
|
|
319
|
-
},{"../../renderDefaults":111,"./meshShaders":107,"./vColorShaders":108,"gl-mat4":
|
|
319
|
+
},{"../../renderDefaults":111,"./meshShaders":107,"./vColorShaders":108,"gl-mat4":18}],107:[function(require,module,exports){
|
|
320
320
|
const meshFrag="\nprecision mediump float;\nvarying vec3 surfaceNormal;\nuniform float ambientLightAmount;\nuniform float diffuseLightAmount;\nuniform vec4 ucolor;\nuniform vec3 lightDirection;\nuniform vec3 opacity;\n\nvarying vec4 _worldSpacePosition;\n\nuniform vec2 printableArea;\n\nvec4 errorColor = vec4(0.15, 0.15, 0.15, 0.3);\n\nvoid main () {\n vec4 depth = gl_FragCoord;\n\n float v = 0.8; // shadow value\n vec4 endColor = ucolor;\n\n vec3 ambient = ambientLightAmount * endColor.rgb;\n float cosTheta = dot(surfaceNormal, lightDirection);\n vec3 diffuse = diffuseLightAmount * endColor.rgb * clamp(cosTheta , 0.0, 1.0 );\n\n float cosTheta2 = dot(surfaceNormal, vec3(-lightDirection.x, -lightDirection.y, lightDirection.z));\n vec3 diffuse2 = diffuseLightAmount * endColor.rgb * clamp(cosTheta2 , 0.0, 1.0 );\n\n gl_FragColor = vec4((ambient + diffuse + diffuse2 * v), endColor.a);\n}",meshVert="\nprecision mediump float;\n\nuniform float camNear, camFar;\nuniform mat4 model, view, projection;\n\nattribute vec3 position, normal;\n\nvarying vec3 surfaceNormal, surfacePosition;\nvarying vec4 _worldSpacePosition;\n\nvoid main() {\n surfacePosition = position;\n surfaceNormal = normal;\n vec4 worldSpacePosition = model * vec4(position, 1);\n _worldSpacePosition = worldSpacePosition;\n\n vec4 glPosition = projection * view * model * vec4(position, 1);\n gl_Position = glPosition;\n}\n";module.exports={vert:meshVert,frag:meshFrag};
|
|
321
321
|
|
|
322
322
|
},{}],108:[function(require,module,exports){
|
|
@@ -325,10 +325,10 @@ const vColorVert="\nprecision mediump float;\n\nuniform float camNear, camFar;\n
|
|
|
325
325
|
},{}],109:[function(require,module,exports){
|
|
326
326
|
const renderContext=require("./renderContext"),renderDefaults=require("./renderDefaults"),prepareRender=e=>{const r=Object.assign({},{},e.glOptions,{onDone:(e,r)=>{if(e)throw e}}),n=require("regl")(r),a=new Map;return function(e){var r;n.poll(),(r=e).rendering=Object.assign({},renderDefaults,r.rendering),renderContext(n)(r,e=>{n.clear({color:r.rendering.background,depth:1}),r.entities&&r.entities.sort((e,r)=>{const n="transparent"in e.visuals&&e.visuals.transparent;return n===("transparent"in r.visuals&&r.visuals.transparent)?0:n?1:-1}).forEach(e=>{const{visuals:t}=e;if((!("show"in t)||t.show)&&t.drawCmd&&r.drawCommands[t.drawCmd]){let s;t.cacheId?s=a.get(t.cacheId):(t.cacheId=a.size,s=r.drawCommands[t.drawCmd](n,e),a.set(t.cacheId,s)),s({...e,...t,camera:r.camera})}})})}};module.exports=prepareRender;
|
|
327
327
|
|
|
328
|
-
},{"./renderContext":110,"./renderDefaults":111,"regl":
|
|
328
|
+
},{"./renderContext":110,"./renderDefaults":111,"regl":79}],110:[function(require,module,exports){
|
|
329
329
|
const mat4=require("gl-mat4"),renderWrapper=(e,i={})=>{const{fbo:r}=i,n={cull:{enable:!0},context:{lightDirection:[.2,.2,1]},uniforms:{view:(e,i)=>i.camera.view,eye:(e,i)=>i.camera.position,projection:(e,i)=>i.camera.projection,camNear:(e,i)=>i.camera.near,camFar:(e,i)=>i.camera.far,invertedView:(e,i)=>mat4.invert([],i.camera.view),lightPosition:(e,i)=>i&&i.rendering&&i.rendering.lightPosition?i.rendering.lightPosition:[100,200,100],lightDirection:(e,i)=>i&&i.rendering&&i.rendering.lightDirection?i.rendering.lightDirection:e.lightDirection||[0,0,0],lightView:e=>mat4.lookAt([],e.lightDirection,[0,0,0],[0,0,1]),lightProjection:mat4.ortho([],-25,-25,-20,20,-25,25),lightColor:(e,i)=>i&&i.rendering&&i.rendering.lightColor?i.rendering.lightColor:[1,.8,0],ambientLightAmount:(e,i)=>i&&i.rendering&&i.rendering.ambientLightAmount?i.rendering.ambientLightAmount:.3,diffuseLightAmount:(e,i)=>i&&i.rendering&&i.rendering.diffuseLightAmount?i&&i.rendering&&i.rendering.diffuseLightAmount:.89,specularLightAmount:(e,i)=>i&&i.rendering&&i.rendering.specularLightAmount?i.rendering.specularLightAmount:.16,uMaterialShininess:(e,i)=>i&&i.rendering&&i.rendering.materialShininess?i.rendering.materialShininess:8,materialAmbient:[.5,.8,.3],materialDiffuse:[.5,.8,.3],materialSpecular:[.5,.8,.3]},framebuffer:r};return e(Object.assign({},n,i.extras))};module.exports=renderWrapper;
|
|
330
330
|
|
|
331
|
-
},{"gl-mat4":
|
|
331
|
+
},{"gl-mat4":18}],111:[function(require,module,exports){
|
|
332
332
|
module.exports={background:[1,1,1,1],meshColor:[0,.6,1,1],lightColor:[1,1,1,1],lightDirection:[.2,.2,1],lightPosition:[100,200,100],ambientLightAmount:.3,diffuseLightAmount:.89,specularLightAmount:.16,materialShininess:8};
|
|
333
333
|
|
|
334
334
|
},{}]},{},[98])(98)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jscad/regl-renderer",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.14",
|
|
4
4
|
"description": "Renderer for JSCAD Geometries",
|
|
5
5
|
"homepage": "https://openjscad.xyz/",
|
|
6
6
|
"repository": "https://github.com/jscad/OpenJSCAD.org",
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@jscad/img-utils": "2.0.5",
|
|
39
|
-
"@jscad/modeling": "2.12.
|
|
39
|
+
"@jscad/modeling": "2.12.7",
|
|
40
40
|
"ava": "3.15.0",
|
|
41
41
|
"browserify": "16.5.1",
|
|
42
42
|
"budo": "11.6.4",
|
|
43
43
|
"nyc": "15.1.0",
|
|
44
44
|
"uglifyify": "5.0.2"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "138ee568542545f27629166bd93fff653cc3c26d"
|
|
47
47
|
}
|