@rings-webgpu/core 1.0.30 → 1.0.32

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.
@@ -42146,7 +42146,7 @@ class PostProcessingComponent extends ComponentBase {
42146
42146
  }
42147
42147
  }
42148
42148
 
42149
- const version = "1.0.29";
42149
+ const version = "1.0.31";
42150
42150
 
42151
42151
  class Engine3D {
42152
42152
  /**
@@ -61147,6 +61147,711 @@ class KHR_lights_punctual {
61147
61147
  class KHR_materials_ior {
61148
61148
  }
61149
61149
 
61150
+ class LASUtils {
61151
+ /**
61152
+ * Split array into chunks of specified size
61153
+ */
61154
+ static chunk(arr, size) {
61155
+ const overall = [];
61156
+ let index = 0;
61157
+ while (index < arr.length) {
61158
+ overall.push(arr.slice(index, index + size));
61159
+ index += size;
61160
+ }
61161
+ return overall;
61162
+ }
61163
+ /**
61164
+ * Remove comments from text (lines starting with #)
61165
+ */
61166
+ static removeComment(str) {
61167
+ return str.split("\n").filter((f) => !(f.trim().charAt(0) === "#")).join("\n");
61168
+ }
61169
+ /**
61170
+ * Convert string to number or string
61171
+ * Returns number if string represents a valid number, otherwise returns string
61172
+ */
61173
+ static convertToValue(s) {
61174
+ return Boolean(+s) || /^0|0$/.test(s) ? +s : s;
61175
+ }
61176
+ /**
61177
+ * Parse a LAS section from text
61178
+ * @param text Full LAS file text
61179
+ * @param sectionName Section name (e.g., 'VERSION', 'WELL', 'CURVE')
61180
+ * @returns Section content as string
61181
+ */
61182
+ static parseSection(text, sectionName) {
61183
+ const regex = new RegExp(`~${sectionName}(?:\\w*\\s*)*\\n\\s*`, "i");
61184
+ const parts = text.split(regex);
61185
+ if (parts.length > 1) {
61186
+ return parts[1].split(/~/)[0];
61187
+ }
61188
+ return "";
61189
+ }
61190
+ /**
61191
+ * Parse a parameter line from LAS file
61192
+ * Format: MNEM.UNIT VALUE :DESCRIPTION
61193
+ * @param line Parameter line text
61194
+ * @returns Parsed parameter object
61195
+ */
61196
+ static parseParameterLine(line) {
61197
+ const trimmed = line.trim();
61198
+ if (!trimmed) {
61199
+ return { mnemonic: "", unit: "", value: "", description: "" };
61200
+ }
61201
+ const colonIndex = trimmed.indexOf(":");
61202
+ const beforeColon = colonIndex >= 0 ? trimmed.substring(0, colonIndex).trim() : trimmed;
61203
+ const description = colonIndex >= 0 ? trimmed.substring(colonIndex + 1).trim() : "none";
61204
+ const parts = beforeColon.split(/\s{2,}|\s+/);
61205
+ const mnemonicPart = parts[0] || "";
61206
+ const dotIndex = mnemonicPart.indexOf(".");
61207
+ let mnemonic = "";
61208
+ let unit = "none";
61209
+ if (dotIndex >= 0) {
61210
+ mnemonic = mnemonicPart.substring(0, dotIndex).trim();
61211
+ unit = mnemonicPart.substring(dotIndex + 1).trim() || "none";
61212
+ } else {
61213
+ mnemonic = mnemonicPart.trim();
61214
+ }
61215
+ const value = parts.length > 1 ? parts[parts.length - 1].trim() : "";
61216
+ return {
61217
+ mnemonic: mnemonic.toUpperCase(),
61218
+ unit,
61219
+ value,
61220
+ description: description || "none"
61221
+ };
61222
+ }
61223
+ }
61224
+
61225
+ class LASLoader {
61226
+ /**
61227
+ * Parse LAS file (supports both ASCII text and binary buffer)
61228
+ * @param input LAS file content as string or ArrayBuffer
61229
+ * @returns Parsed LAS data (ASCII or Binary)
61230
+ */
61231
+ async parse(input) {
61232
+ if (input instanceof ArrayBuffer) {
61233
+ const dataView = new DataView(input);
61234
+ const magic = readMagicBytes(dataView);
61235
+ if (magic === "LASF") {
61236
+ return await this.parseBinary(input);
61237
+ } else {
61238
+ const decoder = new TextDecoder("utf-8", { fatal: false });
61239
+ const text = decoder.decode(input);
61240
+ return await this.parseText(text);
61241
+ }
61242
+ } else {
61243
+ return await this.parseText(input);
61244
+ }
61245
+ }
61246
+ /**
61247
+ * Parse ASCII LAS (Log ASCII Standard) format
61248
+ * @param text LAS file content as string
61249
+ * @returns Parsed ASCII LAS data
61250
+ */
61251
+ async parseText(text) {
61252
+ const metadata = this.parseMetadata(text);
61253
+ const wellParams = this.parseWellParams(text);
61254
+ const curveParams = this.parseCurveParams(text);
61255
+ const headers = this.parseHeaders(text);
61256
+ const nullValue = wellParams.NULL?.value;
61257
+ const nullValueNum = typeof nullValue === "string" ? +nullValue : nullValue;
61258
+ const data = this.parseData(text, headers, nullValueNum || -999.25);
61259
+ return {
61260
+ headers,
61261
+ data,
61262
+ wellParams,
61263
+ curveParams,
61264
+ metadata,
61265
+ nullValue: nullValueNum || -999.25
61266
+ };
61267
+ }
61268
+ /**
61269
+ * Parse binary LAS (LIDAR Point Cloud) format
61270
+ * @param buffer LAS file content as ArrayBuffer
61271
+ * @returns Parsed binary LAS data
61272
+ */
61273
+ async parseBinary(buffer) {
61274
+ const dataView = new DataView(buffer);
61275
+ const magic = readMagicBytes(dataView);
61276
+ if (magic !== "LASF") {
61277
+ throw new Error(`LASLoader: Invalid binary LAS file, expected 'LASF' magic bytes, got '${magic}'`);
61278
+ }
61279
+ const versionMinor = dataView.getUint8(24);
61280
+ const versionMajor = dataView.getUint8(25);
61281
+ const version = versionMajor + versionMinor / 10;
61282
+ const pointDataFormat = dataView.getUint8(104);
61283
+ const numPoints = dataView.getUint32(107, true);
61284
+ const xScale = dataView.getFloat64(131, true);
61285
+ const yScale = dataView.getFloat64(139, true);
61286
+ const zScale = dataView.getFloat64(147, true);
61287
+ const xOffset = dataView.getFloat64(155, true);
61288
+ const yOffset = dataView.getFloat64(163, true);
61289
+ const zOffset = dataView.getFloat64(171, true);
61290
+ const xMin = dataView.getFloat64(187, true);
61291
+ const xMax = dataView.getFloat64(195, true);
61292
+ const yMin = dataView.getFloat64(203, true);
61293
+ const yMax = dataView.getFloat64(211, true);
61294
+ const zMin = dataView.getFloat64(219, true);
61295
+ const zMax = dataView.getFloat64(227, true);
61296
+ const offsetToPointData = dataView.getUint32(96, true);
61297
+ const numVLRs = dataView.getUint32(100, true);
61298
+ let pointDataOffset = offsetToPointData;
61299
+ for (let i = 0; i < numVLRs; i++) {
61300
+ const vlrDataLength = dataView.getUint16(pointDataOffset + 54, true);
61301
+ pointDataOffset += 54 + vlrDataLength;
61302
+ }
61303
+ const pointRecordLengths = [20, 28, 26, 34, 57, 63, 30, 36, 38, 59, 67];
61304
+ const pointRecordLength = pointRecordLengths[pointDataFormat] || 20;
61305
+ if (pointDataFormat > 10) {
61306
+ throw new Error(`LASLoader: Unsupported point data format ${pointDataFormat}`);
61307
+ }
61308
+ const positions = new Float32Array(numPoints * 3);
61309
+ const colors = new Uint8Array(numPoints * 4);
61310
+ let baseOffset = pointDataOffset;
61311
+ for (let i = 0; i < numPoints; i++) {
61312
+ const offset = baseOffset + i * pointRecordLength;
61313
+ let xInt, yInt, zInt;
61314
+ if (pointDataFormat >= 6) {
61315
+ xInt = Number(dataView.getBigInt64(offset, true));
61316
+ yInt = Number(dataView.getBigInt64(offset + 8, true));
61317
+ zInt = Number(dataView.getBigInt64(offset + 16, true));
61318
+ } else {
61319
+ xInt = dataView.getInt32(offset, true);
61320
+ yInt = dataView.getInt32(offset + 4, true);
61321
+ zInt = dataView.getInt32(offset + 8, true);
61322
+ }
61323
+ const x = xInt * xScale + xOffset;
61324
+ const y = yInt * yScale + yOffset;
61325
+ const z = zInt * zScale + zOffset;
61326
+ positions[i * 3 + 0] = x;
61327
+ positions[i * 3 + 1] = y;
61328
+ positions[i * 3 + 2] = z;
61329
+ let intensityOffset;
61330
+ if (pointDataFormat >= 6) {
61331
+ intensityOffset = offset + 24;
61332
+ } else {
61333
+ intensityOffset = offset + 12;
61334
+ }
61335
+ const intensity = dataView.getUint16(intensityOffset, true);
61336
+ if ([2, 3, 5, 7, 8, 9, 10].includes(pointDataFormat)) {
61337
+ let rgbOffset;
61338
+ const recordEnd = offset + pointRecordLength;
61339
+ if (pointDataFormat === 5) {
61340
+ rgbOffset = offset + 28;
61341
+ } else if (pointDataFormat === 10) {
61342
+ rgbOffset = offset + 59;
61343
+ } else {
61344
+ rgbOffset = recordEnd - 6;
61345
+ }
61346
+ if (rgbOffset >= offset && rgbOffset + 6 <= recordEnd && rgbOffset + 6 <= buffer.byteLength) {
61347
+ try {
61348
+ const r = dataView.getUint16(rgbOffset, true);
61349
+ const g = dataView.getUint16(rgbOffset + 2, true);
61350
+ const b = dataView.getUint16(rgbOffset + 4, true);
61351
+ colors[i * 4 + 0] = r < 256 ? r : r >> 8;
61352
+ colors[i * 4 + 1] = g < 256 ? g : g >> 8;
61353
+ colors[i * 4 + 2] = b < 256 ? b : b >> 8;
61354
+ colors[i * 4 + 3] = 255;
61355
+ } catch (e) {
61356
+ console.warn(`LASLoader: Failed to read RGB at offset ${rgbOffset} (format ${pointDataFormat}, record length ${pointRecordLength}), using intensity instead. Error: ${e}`);
61357
+ const intensityNorm = Math.min(intensity / 65535, 1);
61358
+ colors[i * 4 + 0] = Math.floor(intensityNorm * 255);
61359
+ colors[i * 4 + 1] = Math.floor(intensityNorm * 255);
61360
+ colors[i * 4 + 2] = Math.floor(intensityNorm * 255);
61361
+ colors[i * 4 + 3] = 255;
61362
+ }
61363
+ } else {
61364
+ console.warn(`LASLoader: RGB offset ${rgbOffset} out of bounds (offset: ${offset}, record end: ${recordEnd}, buffer size: ${buffer.byteLength}, format: ${pointDataFormat}), using intensity instead`);
61365
+ const intensityNorm = Math.min(intensity / 65535, 1);
61366
+ colors[i * 4 + 0] = Math.floor(intensityNorm * 255);
61367
+ colors[i * 4 + 1] = Math.floor(intensityNorm * 255);
61368
+ colors[i * 4 + 2] = Math.floor(intensityNorm * 255);
61369
+ colors[i * 4 + 3] = 255;
61370
+ }
61371
+ } else {
61372
+ const intensityNorm = Math.min(intensity / 65535, 1);
61373
+ colors[i * 4 + 0] = Math.floor(intensityNorm * 255);
61374
+ colors[i * 4 + 1] = Math.floor(intensityNorm * 255);
61375
+ colors[i * 4 + 2] = Math.floor(intensityNorm * 255);
61376
+ colors[i * 4 + 3] = 255;
61377
+ }
61378
+ }
61379
+ return {
61380
+ format: "binary",
61381
+ version,
61382
+ pointDataFormat,
61383
+ numPoints,
61384
+ positions,
61385
+ colors,
61386
+ bbox: { xMin, xMax, yMin, yMax, zMin, zMax },
61387
+ scale: { x: xScale, y: yScale, z: zScale },
61388
+ offset: { x: xOffset, y: yOffset, z: zOffset }
61389
+ };
61390
+ }
61391
+ /**
61392
+ * Parse version information section (~VERSION)
61393
+ */
61394
+ parseMetadata(text) {
61395
+ const versionSection = LASUtils.parseSection(text, "V");
61396
+ if (!versionSection) {
61397
+ throw new Error("LASLoader: ~VERSION section not found");
61398
+ }
61399
+ const cleaned = LASUtils.removeComment(versionSection);
61400
+ const lines = cleaned.split("\n").filter(Boolean);
61401
+ let version = 2;
61402
+ let wrap = false;
61403
+ for (const line of lines) {
61404
+ const parts = line.split(/\s{2,}|\s*:/).filter(Boolean);
61405
+ if (parts.length >= 2) {
61406
+ const key = parts[0].trim().toUpperCase();
61407
+ const value = parts[1].trim().toUpperCase();
61408
+ if (key === "VERS" || key === "VERSION") {
61409
+ const versionMatch = value.match(/(\d+\.?\d*)/);
61410
+ if (versionMatch) {
61411
+ version = +versionMatch[1];
61412
+ }
61413
+ } else if (key === "WRAP" || key === "WRAP.") {
61414
+ wrap = value === "YES" || value === "Y";
61415
+ }
61416
+ }
61417
+ }
61418
+ return { version, wrap };
61419
+ }
61420
+ /**
61421
+ * Parse well information section (~WELL)
61422
+ */
61423
+ parseWellParams(text) {
61424
+ const wellSection = LASUtils.parseSection(text, "W");
61425
+ if (!wellSection) {
61426
+ return {};
61427
+ }
61428
+ const cleaned = LASUtils.removeComment(wellSection);
61429
+ const lines = cleaned.split("\n").filter(Boolean);
61430
+ const params = {};
61431
+ for (const line of lines) {
61432
+ const parsed = LASUtils.parseParameterLine(line);
61433
+ if (parsed.mnemonic) {
61434
+ params[parsed.mnemonic] = {
61435
+ unit: parsed.unit,
61436
+ value: LASUtils.convertToValue(parsed.value),
61437
+ description: parsed.description
61438
+ };
61439
+ }
61440
+ }
61441
+ return params;
61442
+ }
61443
+ /**
61444
+ * Parse curve information section (~CURVE)
61445
+ */
61446
+ parseCurveParams(text) {
61447
+ const curveSection = LASUtils.parseSection(text, "C");
61448
+ if (!curveSection) {
61449
+ return {};
61450
+ }
61451
+ const cleaned = LASUtils.removeComment(curveSection);
61452
+ const lines = cleaned.split("\n").filter(Boolean);
61453
+ const params = {};
61454
+ for (const line of lines) {
61455
+ const parsed = LASUtils.parseParameterLine(line);
61456
+ if (parsed.mnemonic) {
61457
+ params[parsed.mnemonic] = {
61458
+ unit: parsed.unit,
61459
+ value: parsed.value,
61460
+ description: parsed.description
61461
+ };
61462
+ }
61463
+ }
61464
+ return params;
61465
+ }
61466
+ /**
61467
+ * Parse headers (column names) from curve section
61468
+ */
61469
+ parseHeaders(text) {
61470
+ const curveSection = LASUtils.parseSection(text, "C");
61471
+ if (!curveSection) {
61472
+ throw new Error("LASLoader: ~CURVE section not found");
61473
+ }
61474
+ const cleaned = LASUtils.removeComment(curveSection);
61475
+ const lines = cleaned.split("\n").filter(Boolean);
61476
+ const headers = [];
61477
+ for (const line of lines) {
61478
+ const parsed = LASUtils.parseParameterLine(line);
61479
+ if (parsed.mnemonic) {
61480
+ headers.push(parsed.mnemonic);
61481
+ }
61482
+ }
61483
+ if (headers.length === 0) {
61484
+ throw new Error("LASLoader: No headers found in ~CURVE section");
61485
+ }
61486
+ return headers;
61487
+ }
61488
+ /**
61489
+ * Parse ASCII data section (~A)
61490
+ */
61491
+ parseData(text, headers, nullValue) {
61492
+ const dataMatch = text.match(/~A(?:[\x20-\x7E])*(?:\r\n|\r|\n)([\s\S]*?)(?=~|$)/);
61493
+ if (!dataMatch || !dataMatch[1]) {
61494
+ throw new Error("LASLoader: ~A data section not found");
61495
+ }
61496
+ const dataSection = dataMatch[1].trim();
61497
+ if (!dataSection) {
61498
+ throw new Error("LASLoader: Data section is empty");
61499
+ }
61500
+ const values = dataSection.split(/\s+/).filter((v) => v.trim().length > 0).map((m) => LASUtils.convertToValue(m.trim()));
61501
+ if (values.length === 0) {
61502
+ throw new Error("LASLoader: No data values found");
61503
+ }
61504
+ const rowCount = Math.floor(values.length / headers.length);
61505
+ if (rowCount === 0) {
61506
+ throw new Error("LASLoader: Insufficient data values");
61507
+ }
61508
+ const data = [];
61509
+ for (let i = 0; i < rowCount; i++) {
61510
+ const row = [];
61511
+ for (let j = 0; j < headers.length; j++) {
61512
+ const idx = i * headers.length + j;
61513
+ if (idx < values.length) {
61514
+ row.push(values[idx]);
61515
+ }
61516
+ }
61517
+ if (row.length === headers.length) {
61518
+ data.push(row);
61519
+ }
61520
+ }
61521
+ return data;
61522
+ }
61523
+ }
61524
+
61525
+ var LASVisualizationMode = /* @__PURE__ */ ((LASVisualizationMode2) => {
61526
+ LASVisualizationMode2["PointCloud"] = "pointcloud";
61527
+ LASVisualizationMode2["Curve"] = "curve";
61528
+ LASVisualizationMode2["WellTrajectory"] = "trajectory";
61529
+ return LASVisualizationMode2;
61530
+ })(LASVisualizationMode || {});
61531
+
61532
+ var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
61533
+ var __decorateClass$4 = (decorators, target, key, kind) => {
61534
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
61535
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
61536
+ if (decorator = decorators[i])
61537
+ result = (decorator(result)) || result;
61538
+ return result;
61539
+ };
61540
+ let FatLineShader = class extends Shader {
61541
+ constructor() {
61542
+ super();
61543
+ const colorShader = new RenderShaderPass("FatLine_VS", "FatLine_FS");
61544
+ colorShader.setShaderEntry(`VertMain`, `FragMain`);
61545
+ this.addRenderPass(colorShader);
61546
+ const shaderState = colorShader.shaderState;
61547
+ shaderState.acceptShadow = false;
61548
+ shaderState.castShadow = false;
61549
+ shaderState.receiveEnv = false;
61550
+ shaderState.acceptGI = false;
61551
+ shaderState.useLight = false;
61552
+ shaderState.cullMode = GPUCullMode.none;
61553
+ shaderState.depthWriteEnabled = true;
61554
+ this.setDefault();
61555
+ }
61556
+ /**
61557
+ * Set default uniform values
61558
+ */
61559
+ setDefault() {
61560
+ this.setUniformColor(`baseColor`, new Color(1, 1, 1, 1));
61561
+ this.setUniformFloat(`lineWidth`, 1);
61562
+ this.setUniformFloat(`opacity`, 1);
61563
+ this.setUniformVector2(`resolution`, new Vector2(1920, 1080));
61564
+ const identityMatrix = new Matrix4();
61565
+ const pass = this.getDefaultColorShader();
61566
+ pass.setUniform(`modelMatrix`, identityMatrix.rawData);
61567
+ }
61568
+ };
61569
+ FatLineShader = __decorateClass$4([
61570
+ RegisterShader(FatLineShader, "FatLineShader")
61571
+ ], FatLineShader);
61572
+
61573
+ class FatLineMaterial extends Material {
61574
+ constructor() {
61575
+ super();
61576
+ this.shader = new FatLineShader();
61577
+ this.transparent = true;
61578
+ }
61579
+ /**
61580
+ * Set instance buffer for line segments
61581
+ * This should be called after setting the geometry
61582
+ */
61583
+ setInstanceBuffer(buffer) {
61584
+ this.shader.setStorageBuffer("instances", buffer);
61585
+ }
61586
+ /**
61587
+ * Set model matrix for transforming line segments
61588
+ * This should be updated each frame if the object moves
61589
+ */
61590
+ setModelMatrix(matrix) {
61591
+ const pass = this.shader.getDefaultColorShader();
61592
+ pass.setUniform("modelMatrix", matrix.rawData);
61593
+ }
61594
+ /**
61595
+ * Set base color (tint color)
61596
+ */
61597
+ set baseColor(color) {
61598
+ this.shader.setUniformColor(`baseColor`, color);
61599
+ }
61600
+ /**
61601
+ * Get base color (tint color)
61602
+ */
61603
+ get baseColor() {
61604
+ return this.shader.getUniformColor("baseColor");
61605
+ }
61606
+ /**
61607
+ * Set line width in pixels
61608
+ */
61609
+ set lineWidth(value) {
61610
+ this.shader.setUniformFloat(`lineWidth`, value);
61611
+ }
61612
+ /**
61613
+ * Get line width in pixels
61614
+ */
61615
+ get lineWidth() {
61616
+ return this.shader.getUniformFloat("lineWidth");
61617
+ }
61618
+ /**
61619
+ * Set opacity (0-1)
61620
+ */
61621
+ set opacity(value) {
61622
+ this.shader.setUniformFloat(`opacity`, value);
61623
+ }
61624
+ /**
61625
+ * Get opacity (0-1)
61626
+ */
61627
+ get opacity() {
61628
+ return this.shader.getUniformFloat("opacity");
61629
+ }
61630
+ /**
61631
+ * Set viewport resolution for correct pixel-space calculations
61632
+ * This should be set automatically by the renderer
61633
+ */
61634
+ set resolution(value) {
61635
+ this.shader.setUniformVector2(`resolution`, value);
61636
+ }
61637
+ /**
61638
+ * Get viewport resolution
61639
+ */
61640
+ get resolution() {
61641
+ return this.shader.getUniformVector2("resolution");
61642
+ }
61643
+ }
61644
+
61645
+ class LASParser extends ParserBase {
61646
+ static format = ParserFormat.BIN;
61647
+ // Can handle both binary and text
61648
+ visualizationMode = LASVisualizationMode.PointCloud;
61649
+ async parseBuffer(buffer) {
61650
+ const loader = new LASLoader();
61651
+ const parsedData = await loader.parse(buffer);
61652
+ await this.createVisualization(parsedData);
61653
+ }
61654
+ /**
61655
+ * Create visualization from parsed LAS data
61656
+ */
61657
+ async createVisualization(parsedData) {
61658
+ if ("format" in parsedData && parsedData.format === "binary") {
61659
+ this.data = this.createBinaryPointCloudVisualization(parsedData);
61660
+ } else {
61661
+ const asciiData = parsedData;
61662
+ let result;
61663
+ switch (this.visualizationMode) {
61664
+ case LASVisualizationMode.PointCloud:
61665
+ result = this.createPointCloudVisualization(asciiData);
61666
+ break;
61667
+ case LASVisualizationMode.Curve:
61668
+ result = this.createCurveVisualization(asciiData);
61669
+ break;
61670
+ case LASVisualizationMode.WellTrajectory:
61671
+ result = this.createWellTrajectoryVisualization(asciiData);
61672
+ break;
61673
+ default:
61674
+ result = this.createPointCloudVisualization(asciiData);
61675
+ }
61676
+ result["lasData"] = asciiData;
61677
+ result["wellParams"] = asciiData.wellParams;
61678
+ result["curveParams"] = asciiData.curveParams;
61679
+ this.data = result;
61680
+ }
61681
+ }
61682
+ /**
61683
+ * Create point cloud visualization from binary LAS data
61684
+ */
61685
+ createBinaryPointCloudVisualization(binaryData) {
61686
+ const pointCloudObj = new Object3D();
61687
+ pointCloudObj.name = "LASPointCloud";
61688
+ const pointCloudObjRoot = new Object3D();
61689
+ pointCloudObjRoot.name = "LASPointCloudRoot";
61690
+ pointCloudObj.addChild(pointCloudObjRoot);
61691
+ const renderer = pointCloudObjRoot.addComponent(PointCloudRenderer);
61692
+ renderer.initFromData(binaryData.positions, binaryData.colors, binaryData.numPoints);
61693
+ renderer.setPointShape("circle");
61694
+ renderer.setPointSize(4);
61695
+ pointCloudObj["lasFormat"] = "binary";
61696
+ pointCloudObj["lasVersion"] = binaryData.version;
61697
+ pointCloudObj["numPoints"] = binaryData.numPoints;
61698
+ pointCloudObj["pointDataFormat"] = binaryData.pointDataFormat;
61699
+ pointCloudObj["bbox"] = binaryData.bbox;
61700
+ return pointCloudObj;
61701
+ }
61702
+ verification() {
61703
+ if (this.data) {
61704
+ return true;
61705
+ }
61706
+ throw new Error("LASParser: Parse failed");
61707
+ }
61708
+ /**
61709
+ * Create point cloud visualization from LAS data
61710
+ * Depth as Z axis, curve values as X/Y axes
61711
+ */
61712
+ createPointCloudVisualization(lasData) {
61713
+ const { headers, data, nullValue } = lasData;
61714
+ const depthIndex = headers.findIndex(
61715
+ (h) => h.toUpperCase() === "DEPTH" || h.toUpperCase() === "DEPT"
61716
+ );
61717
+ if (depthIndex < 0) {
61718
+ throw new Error("LASParser: DEPTH column not found");
61719
+ }
61720
+ const curveIndices = headers.map((_, i) => i).filter((i) => i !== depthIndex).slice(0, 2);
61721
+ const validData = data.filter(
61722
+ (row) => !row.some((val) => val === nullValue || val === +nullValue)
61723
+ );
61724
+ if (validData.length === 0) {
61725
+ throw new Error("LASParser: No valid data points after filtering");
61726
+ }
61727
+ const pointCount = validData.length;
61728
+ const positions = new Float32Array(pointCount * 3);
61729
+ const colors = new Uint8Array(pointCount * 4);
61730
+ let minX = Infinity, maxX = -Infinity;
61731
+ let minY = Infinity, maxY = -Infinity;
61732
+ if (curveIndices.length > 0) {
61733
+ const xValues = validData.map((row) => +row[curveIndices[0]]).filter((v) => !isNaN(v));
61734
+ minX = Math.min(...xValues);
61735
+ maxX = Math.max(...xValues);
61736
+ if (curveIndices.length > 1) {
61737
+ const yValues = validData.map((row) => +row[curveIndices[1]]).filter((v) => !isNaN(v));
61738
+ minY = Math.min(...yValues);
61739
+ maxY = Math.max(...yValues);
61740
+ }
61741
+ }
61742
+ for (let i = 0; i < validData.length; i++) {
61743
+ const row = validData[i];
61744
+ const idx = i * 3;
61745
+ const colorIdx = i * 4;
61746
+ positions[idx + 2] = +row[depthIndex];
61747
+ if (curveIndices.length > 0) {
61748
+ const xValue = +row[curveIndices[0]];
61749
+ const normalizedX = maxX !== minX ? (xValue - minX) / (maxX - minX) : 0;
61750
+ positions[idx + 0] = normalizedX * 10;
61751
+ if (curveIndices.length > 1) {
61752
+ const yValue = +row[curveIndices[1]];
61753
+ const normalizedY = maxY !== minY ? (yValue - minY) / (maxY - minY) : 0;
61754
+ positions[idx + 1] = normalizedY * 10;
61755
+ } else {
61756
+ positions[idx + 1] = 0;
61757
+ }
61758
+ } else {
61759
+ positions[idx + 0] = 0;
61760
+ positions[idx + 1] = 0;
61761
+ }
61762
+ if (curveIndices.length > 0) {
61763
+ const curveValue = +row[curveIndices[0]];
61764
+ const normalizedValue = maxX !== minX ? (curveValue - minX) / (maxX - minX) : 0;
61765
+ this.mapValueToColor(normalizedValue, colors, colorIdx);
61766
+ } else {
61767
+ colors[colorIdx + 0] = 255;
61768
+ colors[colorIdx + 1] = 255;
61769
+ colors[colorIdx + 2] = 255;
61770
+ colors[colorIdx + 3] = 255;
61771
+ }
61772
+ }
61773
+ const pointCloudObj = new Object3D();
61774
+ pointCloudObj.name = "LASPointCloud";
61775
+ const renderer = pointCloudObj.addComponent(PointCloudRenderer);
61776
+ renderer.initFromData(positions, colors, pointCount);
61777
+ renderer.setPointShape("circle");
61778
+ renderer.setPointSize(4);
61779
+ return pointCloudObj;
61780
+ }
61781
+ /**
61782
+ * Create curve visualization using FatLineRenderer
61783
+ * Depth as Z axis, normalized curve value as X axis
61784
+ */
61785
+ createCurveVisualization(lasData) {
61786
+ const { headers, data, nullValue } = lasData;
61787
+ const depthIndex = headers.findIndex(
61788
+ (h) => h.toUpperCase() === "DEPTH" || h.toUpperCase() === "DEPT"
61789
+ );
61790
+ if (depthIndex < 0) {
61791
+ throw new Error("LASParser: DEPTH column not found");
61792
+ }
61793
+ const curveIndex = headers.map((_, i) => i).find((i) => i !== depthIndex);
61794
+ if (curveIndex === void 0) {
61795
+ throw new Error("LASParser: No curve column found");
61796
+ }
61797
+ const validData = data.filter((row) => {
61798
+ const depth = +row[depthIndex];
61799
+ const curveValue = +row[curveIndex];
61800
+ return !isNaN(depth) && !isNaN(curveValue) && curveValue !== nullValue && curveValue !== +nullValue;
61801
+ });
61802
+ if (validData.length === 0) {
61803
+ throw new Error("LASParser: No valid data points");
61804
+ }
61805
+ const curveValues = validData.map((row) => +row[curveIndex]);
61806
+ const minCurve = Math.min(...curveValues);
61807
+ const maxCurve = Math.max(...curveValues);
61808
+ const curveRange = maxCurve - minCurve;
61809
+ const positions = new Float32Array(validData.length * 3);
61810
+ for (let i = 0; i < validData.length; i++) {
61811
+ const row = validData[i];
61812
+ const idx = i * 3;
61813
+ const depth = +row[depthIndex];
61814
+ const curveValue = +row[curveIndex];
61815
+ positions[idx + 2] = depth;
61816
+ const normalizedCurve = curveRange > 0 ? (curveValue - minCurve) / curveRange : 0;
61817
+ positions[idx + 0] = normalizedCurve * 10;
61818
+ positions[idx + 1] = 0;
61819
+ }
61820
+ const geometry = new FatLineGeometry();
61821
+ geometry.setPositions(positions);
61822
+ const material = new FatLineMaterial();
61823
+ material.baseColor = new Color(1, 0, 0, 1);
61824
+ material.lineWidth = 2;
61825
+ const curveObj = new Object3D();
61826
+ curveObj.name = `LASCurve_${headers[curveIndex]}`;
61827
+ const renderer = curveObj.addComponent(FatLineRenderer);
61828
+ renderer.geometry = geometry;
61829
+ renderer.material = material;
61830
+ return curveObj;
61831
+ }
61832
+ /**
61833
+ * Create well trajectory visualization
61834
+ * TODO: Implement when well trajectory data is available
61835
+ */
61836
+ createWellTrajectoryVisualization(lasData) {
61837
+ throw new Error("LASParser: Well trajectory visualization not yet implemented");
61838
+ }
61839
+ normalizeValue(value, data, columnIndex) {
61840
+ const values = data.map((row) => +row[columnIndex]).filter((v) => !isNaN(v));
61841
+ const min = Math.min(...values);
61842
+ const max = Math.max(...values);
61843
+ return max !== min ? (value - min) / (max - min) : 0;
61844
+ }
61845
+ mapValueToColor(normalizedValue, colors, index) {
61846
+ const r = Math.floor(normalizedValue * 255);
61847
+ const b = Math.floor((1 - normalizedValue) * 255);
61848
+ colors[index + 0] = r;
61849
+ colors[index + 1] = 0;
61850
+ colors[index + 2] = b;
61851
+ colors[index + 3] = 255;
61852
+ }
61853
+ }
61854
+
61150
61855
  class PlyParser extends ParserBase {
61151
61856
  static format = ParserFormat.BIN;
61152
61857
  async parseBuffer(buffer) {
@@ -62498,9 +63203,9 @@ class PrefabTextureParser extends ParserBase {
62498
63203
  }
62499
63204
  }
62500
63205
 
62501
- var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
62502
- var __decorateClass$4 = (decorators, target, key, kind) => {
62503
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
63206
+ var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
63207
+ var __decorateClass$3 = (decorators, target, key, kind) => {
63208
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
62504
63209
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
62505
63210
  if (decorator = decorators[i])
62506
63211
  result = (decorator(result)) || result;
@@ -62619,13 +63324,13 @@ let LitSSSShader = class extends Shader {
62619
63324
  }
62620
63325
  }
62621
63326
  };
62622
- LitSSSShader = __decorateClass$4([
63327
+ LitSSSShader = __decorateClass$3([
62623
63328
  RegisterShader(LitSSSShader, "LitSSSShader")
62624
63329
  ], LitSSSShader);
62625
63330
 
62626
- var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
62627
- var __decorateClass$3 = (decorators, target, key, kind) => {
62628
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
63331
+ var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
63332
+ var __decorateClass$2 = (decorators, target, key, kind) => {
63333
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
62629
63334
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
62630
63335
  if (decorator = decorators[i])
62631
63336
  result = (decorator(result)) || result;
@@ -62721,7 +63426,7 @@ let LitShader = class extends Shader {
62721
63426
  }
62722
63427
  }
62723
63428
  };
62724
- LitShader = __decorateClass$3([
63429
+ LitShader = __decorateClass$2([
62725
63430
  RegisterShader(LitShader, "LitShader")
62726
63431
  ], LitShader);
62727
63432
 
@@ -62880,47 +63585,6 @@ class PrefabStringUtil {
62880
63585
  }
62881
63586
  }
62882
63587
 
62883
- var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
62884
- var __decorateClass$2 = (decorators, target, key, kind) => {
62885
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
62886
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
62887
- if (decorator = decorators[i])
62888
- result = (decorator(result)) || result;
62889
- return result;
62890
- };
62891
- let FatLineShader = class extends Shader {
62892
- constructor() {
62893
- super();
62894
- const colorShader = new RenderShaderPass("FatLine_VS", "FatLine_FS");
62895
- colorShader.setShaderEntry(`VertMain`, `FragMain`);
62896
- this.addRenderPass(colorShader);
62897
- const shaderState = colorShader.shaderState;
62898
- shaderState.acceptShadow = false;
62899
- shaderState.castShadow = false;
62900
- shaderState.receiveEnv = false;
62901
- shaderState.acceptGI = false;
62902
- shaderState.useLight = false;
62903
- shaderState.cullMode = GPUCullMode.none;
62904
- shaderState.depthWriteEnabled = true;
62905
- this.setDefault();
62906
- }
62907
- /**
62908
- * Set default uniform values
62909
- */
62910
- setDefault() {
62911
- this.setUniformColor(`baseColor`, new Color(1, 1, 1, 1));
62912
- this.setUniformFloat(`lineWidth`, 1);
62913
- this.setUniformFloat(`opacity`, 1);
62914
- this.setUniformVector2(`resolution`, new Vector2(1920, 1080));
62915
- const identityMatrix = new Matrix4();
62916
- const pass = this.getDefaultColorShader();
62917
- pass.setUniform(`modelMatrix`, identityMatrix.rawData);
62918
- }
62919
- };
62920
- FatLineShader = __decorateClass$2([
62921
- RegisterShader(FatLineShader, "FatLineShader")
62922
- ], FatLineShader);
62923
-
62924
63588
  var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
62925
63589
  var __decorateClass$1 = (decorators, target, key, kind) => {
62926
63590
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
@@ -64200,6 +64864,8 @@ class TilesRenderer {
64200
64864
  _root = null;
64201
64865
  // Active and visible tiles set
64202
64866
  _activeTiles = /* @__PURE__ */ new Set();
64867
+ // Tiles that should be hidden but are delayed due to children loading
64868
+ _delayedHideTiles = /* @__PURE__ */ new Set();
64203
64869
  // Rings-specific: Scene group
64204
64870
  group;
64205
64871
  // Rings-specific: Camera management
@@ -64316,6 +64982,7 @@ class TilesRenderer {
64316
64982
  _usedSet.forEach((tile) => lruCache.markUnused(tile));
64317
64983
  _usedSet.clear();
64318
64984
  this.updateCameraInfo();
64985
+ this._checkDelayedHideTiles();
64319
64986
  markUsedTiles(root, this);
64320
64987
  markUsedSetLeaves(root, this);
64321
64988
  markVisibleTiles(root, this);
@@ -64785,6 +65452,9 @@ class TilesRenderer {
64785
65452
  setTileActive(tile, active) {
64786
65453
  if (active) {
64787
65454
  this._activeTiles.add(tile);
65455
+ if (this._delayedHideTiles.has(tile)) {
65456
+ this._delayedHideTiles.delete(tile);
65457
+ }
64788
65458
  } else {
64789
65459
  this._activeTiles.delete(tile);
64790
65460
  }
@@ -64804,7 +65474,42 @@ class TilesRenderer {
64804
65474
  }
64805
65475
  scene.transform.enable = true;
64806
65476
  } else {
64807
- scene.transform.enable = false;
65477
+ if (!this._delayedHideTiles.has(tile)) {
65478
+ this._delayedHideTiles.add(tile);
65479
+ }
65480
+ }
65481
+ }
65482
+ /**
65483
+ * Get children tiles that are loading and will be active
65484
+ * Check if child is used in current frame (will be displayed) but not yet loaded
65485
+ */
65486
+ _getLoadingChildrenThatWillBeActive(tile) {
65487
+ const loadingChildren = [];
65488
+ const children = tile.children;
65489
+ for (let i = 0, l = children.length; i < l; i++) {
65490
+ const child = children[i];
65491
+ if (child.loadingState !== LOADED && child.loadingState !== FAILED) {
65492
+ loadingChildren.push(child);
65493
+ }
65494
+ if (child.children && child.children.length > 0) {
65495
+ loadingChildren.push(...this._getLoadingChildrenThatWillBeActive(child));
65496
+ }
65497
+ }
65498
+ return loadingChildren;
65499
+ }
65500
+ /**
65501
+ * Check and process delayed hide tiles when a child finishes loading
65502
+ */
65503
+ _checkDelayedHideTiles() {
65504
+ for (const tile of this._delayedHideTiles) {
65505
+ const stillLoading = this._getLoadingChildrenThatWillBeActive(tile);
65506
+ if (stillLoading.length === 0) {
65507
+ this._delayedHideTiles.delete(tile);
65508
+ const scene = tile.cached.scene;
65509
+ if (scene) {
65510
+ scene.transform.enable = false;
65511
+ }
65512
+ }
64808
65513
  }
64809
65514
  }
64810
65515
  /**
@@ -64813,6 +65518,9 @@ class TilesRenderer {
64813
65518
  setTileVisible(tile, visible) {
64814
65519
  if (visible) {
64815
65520
  this._visibleTiles.add(tile);
65521
+ if (this._delayedHideTiles.has(tile)) {
65522
+ this._delayedHideTiles.delete(tile);
65523
+ }
64816
65524
  } else {
64817
65525
  this._visibleTiles.delete(tile);
64818
65526
  }
@@ -64820,7 +65528,13 @@ class TilesRenderer {
64820
65528
  if (!scene) {
64821
65529
  return;
64822
65530
  }
64823
- scene.transform.enable = visible;
65531
+ if (visible) {
65532
+ scene.transform.enable = true;
65533
+ } else {
65534
+ if (!this._delayedHideTiles.has(tile)) {
65535
+ this._delayedHideTiles.add(tile);
65536
+ }
65537
+ }
64824
65538
  }
64825
65539
  /**
64826
65540
  * Add tile to download queue
@@ -65294,78 +66008,6 @@ class ColorLitMaterial extends Material {
65294
66008
  }
65295
66009
  }
65296
66010
 
65297
- class FatLineMaterial extends Material {
65298
- constructor() {
65299
- super();
65300
- this.shader = new FatLineShader();
65301
- this.transparent = true;
65302
- }
65303
- /**
65304
- * Set instance buffer for line segments
65305
- * This should be called after setting the geometry
65306
- */
65307
- setInstanceBuffer(buffer) {
65308
- this.shader.setStorageBuffer("instances", buffer);
65309
- }
65310
- /**
65311
- * Set model matrix for transforming line segments
65312
- * This should be updated each frame if the object moves
65313
- */
65314
- setModelMatrix(matrix) {
65315
- const pass = this.shader.getDefaultColorShader();
65316
- pass.setUniform("modelMatrix", matrix.rawData);
65317
- }
65318
- /**
65319
- * Set base color (tint color)
65320
- */
65321
- set baseColor(color) {
65322
- this.shader.setUniformColor(`baseColor`, color);
65323
- }
65324
- /**
65325
- * Get base color (tint color)
65326
- */
65327
- get baseColor() {
65328
- return this.shader.getUniformColor("baseColor");
65329
- }
65330
- /**
65331
- * Set line width in pixels
65332
- */
65333
- set lineWidth(value) {
65334
- this.shader.setUniformFloat(`lineWidth`, value);
65335
- }
65336
- /**
65337
- * Get line width in pixels
65338
- */
65339
- get lineWidth() {
65340
- return this.shader.getUniformFloat("lineWidth");
65341
- }
65342
- /**
65343
- * Set opacity (0-1)
65344
- */
65345
- set opacity(value) {
65346
- this.shader.setUniformFloat(`opacity`, value);
65347
- }
65348
- /**
65349
- * Get opacity (0-1)
65350
- */
65351
- get opacity() {
65352
- return this.shader.getUniformFloat("opacity");
65353
- }
65354
- /**
65355
- * Set viewport resolution for correct pixel-space calculations
65356
- * This should be set automatically by the renderer
65357
- */
65358
- set resolution(value) {
65359
- this.shader.setUniformVector2(`resolution`, value);
65360
- }
65361
- /**
65362
- * Get viewport resolution
65363
- */
65364
- get resolution() {
65365
- return this.shader.getUniformVector2("resolution");
65366
- }
65367
- }
65368
-
65369
66011
  class LambertMaterial extends Material {
65370
66012
  /**
65371
66013
  * @constructor
@@ -71082,4 +71724,4 @@ const __viteBrowserExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.def
71082
71724
  __proto__: null
71083
71725
  }, Symbol.toStringTag, { value: 'Module' }));
71084
71726
 
71085
- export { AccelerateDecelerateInterpolator, AccelerateInterpolator, AnimationCurve, AnimationCurveT, AnimationMonitor, AnimatorComponent, AnimatorEventKeyframe, AnticipateInterpolator, AnticipateOvershootInterpolator, ArrayHas, ArrayItemIndex, AtlasParser, AtmosphericComponent, AtmosphericScatteringSky, AtmosphericScatteringSkySetting, AtmosphericScatteringSky_shader, AttributeAnimCurve, AxisObject, B3DMLoader, B3DMLoaderBase, B3DMParseUtil, B3DMParser, BRDFLUT, BRDFLUTGenerate, BRDF_frag, BatchTable, BiMap, BillboardComponent, BillboardType, BitUtil, BitmapTexture2D, BitmapTexture2DArray, BitmapTextureCube, Blend, BlendFactor, BlendMode, BlendShapeData, BlendShapePropertyData, BloomPost, BlurEffectCreatorBlur_cs, BlurEffectCreatorSample_cs, BlurTexture2DBufferCreator, BounceInterpolator, BoundUtil, BoundingBox, BoundingSphere, BoundingVolume, BoxColliderShape, BoxGeometry, BrdfLut_frag, BsDF_frag, BxDF_frag, BxdfDebug_frag, BytesArray, CEvent, CEventDispatcher, CEventListener, CResizeEvent, CSM, Camera3D, CameraControllerBase, CameraType, CameraUtil, CapsuleColliderShape, CastPointShadowMaterialPass, CastShadowMaterialPass, Clearcoat_frag, ClusterBoundsSource_cs, ClusterConfig, ClusterDebug_frag, ClusterLight, ClusterLightingBuffer, ClusterLightingRender, ClusterLighting_cs, CollectInfo, ColliderComponent, ColliderShape, ColliderShapeType, Color, ColorGradient, ColorLitMaterial, ColorLitShader, ColorPassFragmentOutput, ColorPassRenderer, ColorUtil, ComData, Combine_cs, Common_frag, Common_vert, ComponentBase, ComponentCollect, ComputeGPUBuffer, ComputeShader, Context3D, CubeCamera, CubeMapFaceEnum, CubeSky_Shader, CubicBezierCurve, CubicBezierPath, CubicBezierType, CycleInterpolator, CylinderGeometry, DDGIIrradianceComputePass, DDGIIrradianceGPUBufferReader, DDGIIrradianceVolume, DDGIIrradiance_shader, DDGILightingPass, DDGILighting_shader, DDGIMultiBouncePass, DDGIProbeRenderer, DEGREES_TO_RADIANS, DRACO_DECODER_GLTF_JS, DecelerateInterpolator, Denoising_cs, Depth2DTextureArray, DepthCubeArrayTexture, DepthMaterialPass, DepthOfFieldPost, DepthOfView_cs, DirectLight, DoubleArray, EditorInspector, Engine3D, Entity, EntityBatchCollect, EntityCollect, EnvMap_frag, ErpImage2CubeMap, ErpImage2CubeMapCreateCube_cs, ErpImage2CubeMapRgbe2rgba_cs, ExtrudeGeometry, FAILED, FASTFLOOR, FXAAPost, FXAAShader, FastMathShader, FatLineGeometry, FatLineMaterial, FatLineRenderer, FatLineShader, FatLine_FS, FatLine_VS, FeatureTable, FileLoader, FirstPersonCameraController, Float16ArrayTexture, Float32ArrayTexture, FlyCameraController, FontChar, FontInfo, FontPage, FontParser, ForwardRenderJob, FragmentOutput, FragmentVarying, FrameCache, Frustum, FrustumCSM, FrustumCulling_cs, FullQuad_vert_wgsl, GBufferFrame, GBufferPass, GBufferPost, GBufferStand, GBuffer_pass, GILighting, GIProbeMaterial, GIProbeMaterialType, GIProbeShader, GIRenderCompleteEvent, GIRenderStartEvent, GLBChunk, GLBHeader, GLBParser, GLSLLexer, GLSLLexerToken, GLSLPreprocessor, GLSLSyntax, GLTFBinaryExtension, GLTFMaterial, GLTFParser, GLTFSubParser, GLTFSubParserCamera, GLTFSubParserConverter, GLTFSubParserMaterial, GLTFSubParserMesh, GLTFSubParserSkeleton, GLTFSubParserSkin, GLTFType, GLTF_Accessors, GLTF_Info, GLTF_Light, GLTF_Mesh, GLTF_Node, GLTF_Primitives, GLTF_Scene, GPUAddressMode, GPUBlendFactor, GPUBufferBase, GPUBufferType, GPUCompareFunction, GPUContext, GPUCullMode, GPUFilterMode, GPUPrimitiveTopology, GPUTextureFormat, GPUVertexFormat, GPUVertexStepMode, GSplatFormat, GSplatGeometry, GSplatMaterial, GSplatRenderer, GSplatShader, GSplat_FS, GSplat_VS, GTAOPost, GTAO_cs, GUIAtlasTexture, GUICanvas, GUIConfig, GUIGeometry, GUIGeometryRebuild, GUIMaterial, GUIPassRenderer, GUIPick, GUIPickHelper, GUIQuad, GUIQuadAttrEnum, GUIRenderer, GUIShader, GUISpace, GUISprite, GUITexture, GaussianSplatParser, GenerayRandomDir, GeoJsonParser, GeoJsonUtil, GeoType, GeometryBase, GeometryIndicesBuffer, GeometryUtil, GeometryVertexBuffer, GeometryVertexType, GetComponentClass, GetCountInstanceID, GetRepeat, GetShader, GlassShader, GlobalBindGroup, GlobalBindGroupLayout, GlobalFog, GlobalFog_shader, GlobalIlluminationComponent, GlobalUniform, GlobalUniformGroup, GodRayPost, GodRay_cs, GridObject, HDRTexture, HDRTextureCube, Hair_frag, Hair_shader_op, Hair_shader_tr, HaltonSeq, Horizontal, HoverCameraController, I3DMLoader, I3DMLoaderBase, I3DMParser, IBLEnvMapCreator, IBLEnvMapCreator_cs, IESProfiles, IESProfiles_frag, IKDTreeUserData, ImageType, IndicesGPUBuffer, Inline_vert, InputSystem, InstanceDrawComponent, InstanceUniform, InstancedMesh, Interpolator, InterpolatorEnum, IrradianceDataReaderCompleteEvent, IrradianceVolumeData_frag, Irradiance_frag, IsEditorInspector, IsNonSerialize, Joint, JointPose, JumperInterpolator, KDTreeEntity, KDTreeNode, KDTreeRange, KDTreeSpace, KDTreeUUID, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_emissive_strength, KHR_materials_ior, KHR_materials_unlit, KMZParser, KV, KelvinUtil, KeyCode, KeyEvent, Keyframe, KeyframeT, LDRTextureCube, LOADED, LOADING, LRUCache, LambertMaterial, Lambert_shader, Light, LightBase, LightData, LightEntries, LightType, LightingFunction_frag, Line, LineClassification, LinearInterpolator, LitMaterial, LitSSSShader, LitShader, Lit_shader, LoaderBase, LoaderEvent, LoaderManager, MAX_VALUE, MIN_VALUE, Material, MaterialDataUniformGPUBuffer, MaterialUtilities, MathShader, MathUtil, Matrix3, Matrix4, MatrixBindGroup, MatrixGPUBuffer, MatrixShader, MemoryDO, MemoryInfo, MergeRGBACreator, MergeRGBA_cs, MeshColliderShape, MeshFilter, MeshRenderer, MinMaxAnimationCurves, MinMaxCurve, MinMaxCurveState, MinMaxPolyCurves, MorePassParser, MorePassShader, MorphTargetBlender, MorphTargetData, MorphTargetFrame, MorphTargetTransformKey, MorphTarget_shader, MouseCode, MultiBouncePass_cs, Navi3DAstar, Navi3DConst, Navi3DEdge, Navi3DFunnel, Navi3DMaskType, Navi3DMesh, Navi3DPoint, Navi3DPoint2D, Navi3DPointFat, Navi3DRouter, Navi3DTriangle, NonSerialize, NormalMap_frag, OAnimationEvent, OBJParser, Object3D, Object3DEvent, Object3DTransformTools, Object3DUtil, ObjectAnimClip, OcclusionSystem, Octree, OctreeEntity, OrbitController, OrderMap, Orientation3D, OutLineBlendColor_cs, OutlineCalcOutline_cs, OutlinePass, OutlinePost, OutlinePostData, OutlinePostManager, OutlinePostSlot, Outline_cs, OvershootInterpolator, PARSING, PBRLItShader, PBRLitSSSShader, PLUGIN_REGISTERED, PNTSLoader, PNTSLoaderBase, PNTSParser, ParserBase, ParserFormat, ParticleSystemCurveEvalMode, ParticleSystemRandomnessIds, PassGenerate, PassShader, PassType, PhysicMaterialUniform_frag, PickCompute, PickFire, PickGUIEvent3D, PickResult, Picker_cs, PingPong, PipelinePool, Plane3D, PlaneClassification, PlaneGeometry, PlyMode, PlyParser, PointClassification, PointCloudGeometry, PointCloudMaterial, PointCloudRenderer, PointCloudShader, PointCloud_FS, PointCloud_VS, PointLight, PointLightShadowRenderer, PointShadowCubeCamera, PointerEvent3D, Polynomial, PolynomialCurve, Polynomials, PoolNode, PostBase, PostProcessingComponent, PostRenderer, PreDepthPassRenderer, PreFilteredEnvironment_cs, PreFilteredEnvironment_cs2, PreIntegratedLut, PreIntegratedLutCompute, PrefabAvatarData, PrefabAvatarParser, PrefabBoneData, PrefabMaterialParser, PrefabMeshData, PrefabMeshParser, PrefabNode, PrefabParser, PrefabStringUtil, PrefabTextureData, PrefabTextureParser, Preprocessor, PriorityQueue, Probe, ProbeEntries, ProbeGBufferFrame, ProfilerUtil, PropertyAnimClip, PropertyAnimTag, PropertyAnimation, PropertyAnimationClip, PropertyAnimationClipState, PropertyAnimationEvent, PropertyHelp, QuadAABB, QuadGlsl_fs, QuadGlsl_vs, QuadRoot, QuadShader, QuadTree, QuadTreeCell, Quad_depth2dArray_frag_wgsl, Quad_depth2d_frag_wgsl, Quad_depthCube_frag_wgsl, Quad_frag_wgsl, Quad_vert_wgsl, Quaternion, R32UintTexture, RADIANS_TO_DEGREES, RGBEErrorCode, RGBEHeader, RGBEParser, RTDescriptor, RTFrame, RTResourceConfig, RTResourceMap, Rand, RandomSeed, Ray, RayCastMeshDetail, Reader, Rect, Reference, Reflection, ReflectionCG, ReflectionEntries, ReflectionMaterial, ReflectionRenderer, ReflectionShader, ReflectionShader_shader, RegisterComponent, RegisterShader, RenderContext, RenderLayer, RenderLayerUtil, RenderNode, RenderShaderCollect, RenderShaderCompute, RenderShaderPass, RenderTexture, RendererBase, RendererJob, RendererMap, RendererMask, RendererMaskUtil, RendererPassState, RepeatSE, Res, RotationControlComponents, SHCommon_frag, SN_ArrayConstant, SN_BinaryOperation, SN_Break, SN_CodeBlock, SN_Constant, SN_Continue, SN_Declaration, SN_Discard, SN_DoWhileLoop, SN_Expression, SN_ForLoop, SN_Function, SN_FunctionArgs, SN_FunctionCall, SN_IFBranch, SN_Identifier, SN_IndexOperation, SN_Layout, SN_ParenExpression, SN_Precision, SN_Return, SN_SelectOperation, SN_Struct, SN_TernaryOperation, SN_UnaryOperation, SN_WhileLoop, SSAO_cs, SSGI2_cs, SSGIPost, SSRPost, SSR_BlendColor_cs, SSR_IS_Kernel, SSR_IS_cs, SSR_RayTrace_cs, ScaleControlComponents, Scene3D, Shader, ShaderAttributeInfo, ShaderConverter, ShaderConverterResult, ShaderLib, ShaderPassBase, ShaderReflection, ShaderStage, ShaderState, ShaderUniformInfo, ShaderUtil, ShadingInput, ShadowLightsCollect, ShadowMapPassRenderer, ShadowMapping_frag, Skeleton, SkeletonAnimationClip, SkeletonAnimationClipState, SkeletonAnimationComponent, SkeletonAnimationCompute, SkeletonAnimation_shader, SkeletonBlendComputeArgs, SkeletonPose, SkeletonTransformComputeArgs, SkinnedMeshRenderer, SkinnedMeshRenderer2, SkyGBufferPass, SkyGBuffer_pass, SkyMaterial, SkyRenderer, SkyShader, SolidColorSky, SphereColliderShape, SphereGeometry, SphereReflection, SpotLight, StandShader, StatementNode, StorageGPUBuffer, StringUtil, Struct, StructStorageGPUBuffer, SubGeometry, TAACopyTex_cs, TAAPost, TAASharpTex_cs, TAA_cs, TestComputeLoadBuffer, TextAnchor, TextFieldLayout, TextFieldLine, Texture, TextureCube, TextureCubeFaceData, TextureCubeStdCreator, TextureCubeUtils, TextureMipmapCompute, TextureMipmapGenerator, TextureScaleCompute, ThirdPersonCameraController, Tile, TileSet, TileSetChild, TileSetChildContent, TileSetChildContentMetaData, TileSetRoot, TilesRenderer, Time, TokenType, TorusGeometry, TouchData, TrailGeometry, Transform, TransformAxisEnum, TransformControllerBaseComponent, TransformMode, TransformSpaceMode, TranslationControlComponents, TranslatorContext, TriGeometry, Triangle, UIButton, UIButtonTransition, UIComponentBase, UIEvent, UIImage, UIImageGroup, UIInteractive, UIInteractiveStyle, UIPanel, UIRenderAble, UIShadow, UITextField, UITransform, UNLOADED, UUID, UV, Uint32ArrayTexture, Uint8ArrayTexture, UnLit, UnLitMaterial, UnLitMaterialUniform_frag, UnLitShader, UnLitTexArrayMaterial, UnLitTexArrayShader, UnLitTextureArray, UnLit_frag, UniformGPUBuffer, UniformNode, UniformType, ValueEnumType, ValueOp, ValueParser, ValueSpread, Vector2, Vector3, Vector3Ex, Vector4, VertexAttribute, VertexAttributeIndexShader, VertexAttributeName, VertexAttributeSize, VertexAttributeStride, VertexAttributes_vert, VertexBufferLayout, VertexFormat, VertexGPUBuffer, Vertical, VideoUniform_frag, View3D, ViewPanel, ViewQuad, VirtualTexture, WGS84_FLATTENING, WGS84_HEIGHT, WGS84_RADIUS, WGSLTranslator, WayLines3D, WayPoint3D, WebGPUDescriptorCreator, WorldMatrixUniform, WorldPanel, WrapMode, WrapTimeMode, ZCullingCompute, ZPassShader_cs, ZPassShader_fs, ZPassShader_vs, ZSorterUtil, append, arrayToString, blendComponent, buildCurves, byteSizeOfType, calculateCurveRangesValue, calculateMinMax, castPointShadowMap_vert, clamp, clampRepeat, computeAABBFromPositions, cos, crossProduct, cubicPolynomialRoot, cubicPolynomialRootsGeneric, curvesSupportProcedural, deg2Rad, detectGSplatFormat, directionShadowCastMap_frag, dot, doubleIntegrateSegment, downSample, fastInvSqrt, floorfToIntPos, fonts, generateRandom, generateRandom3, getFloatFromInt, getGLTypeFromTypedArray, getGLTypeFromTypedArrayType, getGlobalRandomSeed, getTypedArray, getTypedArrayTypeFromGLType, grad1, grad2, grad3, grad4, inferSHOrder, integrateSegment, irradianceDataReader, kPI, lerp, lerpByte, lerpColor, lerpVector3, lruPriorityCallback, magnitude, makeAloneSprite, makeGUISprite, makeMatrix44, markUsedSetLeaves, markUsedTiles, markVisibleTiles, matrixMultiply, matrixRotate, matrixRotateY, mergeFunctions, multiplyMatrices4x4REF, normal_distribution, normalizeFast, normalizeSafe, normalizedToByte, normalizedToWord, outlinePostData, outlinePostManager, parsePlyGaussianSplat, parsePlyHeader, parsePlyMesh, parsePlyPointCloud, perm, post, priorityCallback, quadraticPolynomialRootsGeneric, rad2Deg, random01, randomBarycentricCoord, randomPointBetweenEllipsoid, randomPointBetweenSphere, randomPointInsideCube, randomPointInsideEllipsoid, randomPointInsideUnitCircle, randomPointInsideUnitSphere, randomQuaternion, randomQuaternionUniformDistribution, randomSeed, randomUnitVector, randomUnitVector2, rangedRandomFloat, rangedRandomInt, readByType, readMagicBytes, registerMaterial, repeat, rotMatrix, rotateVectorByQuat, roundfToIntPos, scale, shadowCastMap_frag, shadowCastMap_vert, simplex, sin, snoise1, snoise2, snoise3, snoise4, splatColorProperties, splatProperties, sqrMagnitude, sqrtImpl, stencilStateFace, swap, textureCompress, threshold, throttle, toHalfFloat, toggleTiles, traverseAncestors, traverseSet, tw, uniform_real_distribution, uniform_real_distribution2, upSample$1 as upSample, webGPUContext, zSorterUtil };
71727
+ export { AccelerateDecelerateInterpolator, AccelerateInterpolator, AnimationCurve, AnimationCurveT, AnimationMonitor, AnimatorComponent, AnimatorEventKeyframe, AnticipateInterpolator, AnticipateOvershootInterpolator, ArrayHas, ArrayItemIndex, AtlasParser, AtmosphericComponent, AtmosphericScatteringSky, AtmosphericScatteringSkySetting, AtmosphericScatteringSky_shader, AttributeAnimCurve, AxisObject, B3DMLoader, B3DMLoaderBase, B3DMParseUtil, B3DMParser, BRDFLUT, BRDFLUTGenerate, BRDF_frag, BatchTable, BiMap, BillboardComponent, BillboardType, BitUtil, BitmapTexture2D, BitmapTexture2DArray, BitmapTextureCube, Blend, BlendFactor, BlendMode, BlendShapeData, BlendShapePropertyData, BloomPost, BlurEffectCreatorBlur_cs, BlurEffectCreatorSample_cs, BlurTexture2DBufferCreator, BounceInterpolator, BoundUtil, BoundingBox, BoundingSphere, BoundingVolume, BoxColliderShape, BoxGeometry, BrdfLut_frag, BsDF_frag, BxDF_frag, BxdfDebug_frag, BytesArray, CEvent, CEventDispatcher, CEventListener, CResizeEvent, CSM, Camera3D, CameraControllerBase, CameraType, CameraUtil, CapsuleColliderShape, CastPointShadowMaterialPass, CastShadowMaterialPass, Clearcoat_frag, ClusterBoundsSource_cs, ClusterConfig, ClusterDebug_frag, ClusterLight, ClusterLightingBuffer, ClusterLightingRender, ClusterLighting_cs, CollectInfo, ColliderComponent, ColliderShape, ColliderShapeType, Color, ColorGradient, ColorLitMaterial, ColorLitShader, ColorPassFragmentOutput, ColorPassRenderer, ColorUtil, ComData, Combine_cs, Common_frag, Common_vert, ComponentBase, ComponentCollect, ComputeGPUBuffer, ComputeShader, Context3D, CubeCamera, CubeMapFaceEnum, CubeSky_Shader, CubicBezierCurve, CubicBezierPath, CubicBezierType, CycleInterpolator, CylinderGeometry, DDGIIrradianceComputePass, DDGIIrradianceGPUBufferReader, DDGIIrradianceVolume, DDGIIrradiance_shader, DDGILightingPass, DDGILighting_shader, DDGIMultiBouncePass, DDGIProbeRenderer, DEGREES_TO_RADIANS, DRACO_DECODER_GLTF_JS, DecelerateInterpolator, Denoising_cs, Depth2DTextureArray, DepthCubeArrayTexture, DepthMaterialPass, DepthOfFieldPost, DepthOfView_cs, DirectLight, DoubleArray, EditorInspector, Engine3D, Entity, EntityBatchCollect, EntityCollect, EnvMap_frag, ErpImage2CubeMap, ErpImage2CubeMapCreateCube_cs, ErpImage2CubeMapRgbe2rgba_cs, ExtrudeGeometry, FAILED, FASTFLOOR, FXAAPost, FXAAShader, FastMathShader, FatLineGeometry, FatLineMaterial, FatLineRenderer, FatLineShader, FatLine_FS, FatLine_VS, FeatureTable, FileLoader, FirstPersonCameraController, Float16ArrayTexture, Float32ArrayTexture, FlyCameraController, FontChar, FontInfo, FontPage, FontParser, ForwardRenderJob, FragmentOutput, FragmentVarying, FrameCache, Frustum, FrustumCSM, FrustumCulling_cs, FullQuad_vert_wgsl, GBufferFrame, GBufferPass, GBufferPost, GBufferStand, GBuffer_pass, GILighting, GIProbeMaterial, GIProbeMaterialType, GIProbeShader, GIRenderCompleteEvent, GIRenderStartEvent, GLBChunk, GLBHeader, GLBParser, GLSLLexer, GLSLLexerToken, GLSLPreprocessor, GLSLSyntax, GLTFBinaryExtension, GLTFMaterial, GLTFParser, GLTFSubParser, GLTFSubParserCamera, GLTFSubParserConverter, GLTFSubParserMaterial, GLTFSubParserMesh, GLTFSubParserSkeleton, GLTFSubParserSkin, GLTFType, GLTF_Accessors, GLTF_Info, GLTF_Light, GLTF_Mesh, GLTF_Node, GLTF_Primitives, GLTF_Scene, GPUAddressMode, GPUBlendFactor, GPUBufferBase, GPUBufferType, GPUCompareFunction, GPUContext, GPUCullMode, GPUFilterMode, GPUPrimitiveTopology, GPUTextureFormat, GPUVertexFormat, GPUVertexStepMode, GSplatFormat, GSplatGeometry, GSplatMaterial, GSplatRenderer, GSplatShader, GSplat_FS, GSplat_VS, GTAOPost, GTAO_cs, GUIAtlasTexture, GUICanvas, GUIConfig, GUIGeometry, GUIGeometryRebuild, GUIMaterial, GUIPassRenderer, GUIPick, GUIPickHelper, GUIQuad, GUIQuadAttrEnum, GUIRenderer, GUIShader, GUISpace, GUISprite, GUITexture, GaussianSplatParser, GenerayRandomDir, GeoJsonParser, GeoJsonUtil, GeoType, GeometryBase, GeometryIndicesBuffer, GeometryUtil, GeometryVertexBuffer, GeometryVertexType, GetComponentClass, GetCountInstanceID, GetRepeat, GetShader, GlassShader, GlobalBindGroup, GlobalBindGroupLayout, GlobalFog, GlobalFog_shader, GlobalIlluminationComponent, GlobalUniform, GlobalUniformGroup, GodRayPost, GodRay_cs, GridObject, HDRTexture, HDRTextureCube, Hair_frag, Hair_shader_op, Hair_shader_tr, HaltonSeq, Horizontal, HoverCameraController, I3DMLoader, I3DMLoaderBase, I3DMParser, IBLEnvMapCreator, IBLEnvMapCreator_cs, IESProfiles, IESProfiles_frag, IKDTreeUserData, ImageType, IndicesGPUBuffer, Inline_vert, InputSystem, InstanceDrawComponent, InstanceUniform, InstancedMesh, Interpolator, InterpolatorEnum, IrradianceDataReaderCompleteEvent, IrradianceVolumeData_frag, Irradiance_frag, IsEditorInspector, IsNonSerialize, Joint, JointPose, JumperInterpolator, KDTreeEntity, KDTreeNode, KDTreeRange, KDTreeSpace, KDTreeUUID, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_emissive_strength, KHR_materials_ior, KHR_materials_unlit, KMZParser, KV, KelvinUtil, KeyCode, KeyEvent, Keyframe, KeyframeT, LASLoader, LASParser, LASUtils, LASVisualizationMode, LDRTextureCube, LOADED, LOADING, LRUCache, LambertMaterial, Lambert_shader, Light, LightBase, LightData, LightEntries, LightType, LightingFunction_frag, Line, LineClassification, LinearInterpolator, LitMaterial, LitSSSShader, LitShader, Lit_shader, LoaderBase, LoaderEvent, LoaderManager, MAX_VALUE, MIN_VALUE, Material, MaterialDataUniformGPUBuffer, MaterialUtilities, MathShader, MathUtil, Matrix3, Matrix4, MatrixBindGroup, MatrixGPUBuffer, MatrixShader, MemoryDO, MemoryInfo, MergeRGBACreator, MergeRGBA_cs, MeshColliderShape, MeshFilter, MeshRenderer, MinMaxAnimationCurves, MinMaxCurve, MinMaxCurveState, MinMaxPolyCurves, MorePassParser, MorePassShader, MorphTargetBlender, MorphTargetData, MorphTargetFrame, MorphTargetTransformKey, MorphTarget_shader, MouseCode, MultiBouncePass_cs, Navi3DAstar, Navi3DConst, Navi3DEdge, Navi3DFunnel, Navi3DMaskType, Navi3DMesh, Navi3DPoint, Navi3DPoint2D, Navi3DPointFat, Navi3DRouter, Navi3DTriangle, NonSerialize, NormalMap_frag, OAnimationEvent, OBJParser, Object3D, Object3DEvent, Object3DTransformTools, Object3DUtil, ObjectAnimClip, OcclusionSystem, Octree, OctreeEntity, OrbitController, OrderMap, Orientation3D, OutLineBlendColor_cs, OutlineCalcOutline_cs, OutlinePass, OutlinePost, OutlinePostData, OutlinePostManager, OutlinePostSlot, Outline_cs, OvershootInterpolator, PARSING, PBRLItShader, PBRLitSSSShader, PLUGIN_REGISTERED, PNTSLoader, PNTSLoaderBase, PNTSParser, ParserBase, ParserFormat, ParticleSystemCurveEvalMode, ParticleSystemRandomnessIds, PassGenerate, PassShader, PassType, PhysicMaterialUniform_frag, PickCompute, PickFire, PickGUIEvent3D, PickResult, Picker_cs, PingPong, PipelinePool, Plane3D, PlaneClassification, PlaneGeometry, PlyMode, PlyParser, PointClassification, PointCloudGeometry, PointCloudMaterial, PointCloudRenderer, PointCloudShader, PointCloud_FS, PointCloud_VS, PointLight, PointLightShadowRenderer, PointShadowCubeCamera, PointerEvent3D, Polynomial, PolynomialCurve, Polynomials, PoolNode, PostBase, PostProcessingComponent, PostRenderer, PreDepthPassRenderer, PreFilteredEnvironment_cs, PreFilteredEnvironment_cs2, PreIntegratedLut, PreIntegratedLutCompute, PrefabAvatarData, PrefabAvatarParser, PrefabBoneData, PrefabMaterialParser, PrefabMeshData, PrefabMeshParser, PrefabNode, PrefabParser, PrefabStringUtil, PrefabTextureData, PrefabTextureParser, Preprocessor, PriorityQueue, Probe, ProbeEntries, ProbeGBufferFrame, ProfilerUtil, PropertyAnimClip, PropertyAnimTag, PropertyAnimation, PropertyAnimationClip, PropertyAnimationClipState, PropertyAnimationEvent, PropertyHelp, QuadAABB, QuadGlsl_fs, QuadGlsl_vs, QuadRoot, QuadShader, QuadTree, QuadTreeCell, Quad_depth2dArray_frag_wgsl, Quad_depth2d_frag_wgsl, Quad_depthCube_frag_wgsl, Quad_frag_wgsl, Quad_vert_wgsl, Quaternion, R32UintTexture, RADIANS_TO_DEGREES, RGBEErrorCode, RGBEHeader, RGBEParser, RTDescriptor, RTFrame, RTResourceConfig, RTResourceMap, Rand, RandomSeed, Ray, RayCastMeshDetail, Reader, Rect, Reference, Reflection, ReflectionCG, ReflectionEntries, ReflectionMaterial, ReflectionRenderer, ReflectionShader, ReflectionShader_shader, RegisterComponent, RegisterShader, RenderContext, RenderLayer, RenderLayerUtil, RenderNode, RenderShaderCollect, RenderShaderCompute, RenderShaderPass, RenderTexture, RendererBase, RendererJob, RendererMap, RendererMask, RendererMaskUtil, RendererPassState, RepeatSE, Res, RotationControlComponents, SHCommon_frag, SN_ArrayConstant, SN_BinaryOperation, SN_Break, SN_CodeBlock, SN_Constant, SN_Continue, SN_Declaration, SN_Discard, SN_DoWhileLoop, SN_Expression, SN_ForLoop, SN_Function, SN_FunctionArgs, SN_FunctionCall, SN_IFBranch, SN_Identifier, SN_IndexOperation, SN_Layout, SN_ParenExpression, SN_Precision, SN_Return, SN_SelectOperation, SN_Struct, SN_TernaryOperation, SN_UnaryOperation, SN_WhileLoop, SSAO_cs, SSGI2_cs, SSGIPost, SSRPost, SSR_BlendColor_cs, SSR_IS_Kernel, SSR_IS_cs, SSR_RayTrace_cs, ScaleControlComponents, Scene3D, Shader, ShaderAttributeInfo, ShaderConverter, ShaderConverterResult, ShaderLib, ShaderPassBase, ShaderReflection, ShaderStage, ShaderState, ShaderUniformInfo, ShaderUtil, ShadingInput, ShadowLightsCollect, ShadowMapPassRenderer, ShadowMapping_frag, Skeleton, SkeletonAnimationClip, SkeletonAnimationClipState, SkeletonAnimationComponent, SkeletonAnimationCompute, SkeletonAnimation_shader, SkeletonBlendComputeArgs, SkeletonPose, SkeletonTransformComputeArgs, SkinnedMeshRenderer, SkinnedMeshRenderer2, SkyGBufferPass, SkyGBuffer_pass, SkyMaterial, SkyRenderer, SkyShader, SolidColorSky, SphereColliderShape, SphereGeometry, SphereReflection, SpotLight, StandShader, StatementNode, StorageGPUBuffer, StringUtil, Struct, StructStorageGPUBuffer, SubGeometry, TAACopyTex_cs, TAAPost, TAASharpTex_cs, TAA_cs, TestComputeLoadBuffer, TextAnchor, TextFieldLayout, TextFieldLine, Texture, TextureCube, TextureCubeFaceData, TextureCubeStdCreator, TextureCubeUtils, TextureMipmapCompute, TextureMipmapGenerator, TextureScaleCompute, ThirdPersonCameraController, Tile, TileSet, TileSetChild, TileSetChildContent, TileSetChildContentMetaData, TileSetRoot, TilesRenderer, Time, TokenType, TorusGeometry, TouchData, TrailGeometry, Transform, TransformAxisEnum, TransformControllerBaseComponent, TransformMode, TransformSpaceMode, TranslationControlComponents, TranslatorContext, TriGeometry, Triangle, UIButton, UIButtonTransition, UIComponentBase, UIEvent, UIImage, UIImageGroup, UIInteractive, UIInteractiveStyle, UIPanel, UIRenderAble, UIShadow, UITextField, UITransform, UNLOADED, UUID, UV, Uint32ArrayTexture, Uint8ArrayTexture, UnLit, UnLitMaterial, UnLitMaterialUniform_frag, UnLitShader, UnLitTexArrayMaterial, UnLitTexArrayShader, UnLitTextureArray, UnLit_frag, UniformGPUBuffer, UniformNode, UniformType, ValueEnumType, ValueOp, ValueParser, ValueSpread, Vector2, Vector3, Vector3Ex, Vector4, VertexAttribute, VertexAttributeIndexShader, VertexAttributeName, VertexAttributeSize, VertexAttributeStride, VertexAttributes_vert, VertexBufferLayout, VertexFormat, VertexGPUBuffer, Vertical, VideoUniform_frag, View3D, ViewPanel, ViewQuad, VirtualTexture, WGS84_FLATTENING, WGS84_HEIGHT, WGS84_RADIUS, WGSLTranslator, WayLines3D, WayPoint3D, WebGPUDescriptorCreator, WorldMatrixUniform, WorldPanel, WrapMode, WrapTimeMode, ZCullingCompute, ZPassShader_cs, ZPassShader_fs, ZPassShader_vs, ZSorterUtil, append, arrayToString, blendComponent, buildCurves, byteSizeOfType, calculateCurveRangesValue, calculateMinMax, castPointShadowMap_vert, clamp, clampRepeat, computeAABBFromPositions, cos, crossProduct, cubicPolynomialRoot, cubicPolynomialRootsGeneric, curvesSupportProcedural, deg2Rad, detectGSplatFormat, directionShadowCastMap_frag, dot, doubleIntegrateSegment, downSample, fastInvSqrt, floorfToIntPos, fonts, generateRandom, generateRandom3, getFloatFromInt, getGLTypeFromTypedArray, getGLTypeFromTypedArrayType, getGlobalRandomSeed, getTypedArray, getTypedArrayTypeFromGLType, grad1, grad2, grad3, grad4, inferSHOrder, integrateSegment, irradianceDataReader, kPI, lerp, lerpByte, lerpColor, lerpVector3, lruPriorityCallback, magnitude, makeAloneSprite, makeGUISprite, makeMatrix44, markUsedSetLeaves, markUsedTiles, markVisibleTiles, matrixMultiply, matrixRotate, matrixRotateY, mergeFunctions, multiplyMatrices4x4REF, normal_distribution, normalizeFast, normalizeSafe, normalizedToByte, normalizedToWord, outlinePostData, outlinePostManager, parsePlyGaussianSplat, parsePlyHeader, parsePlyMesh, parsePlyPointCloud, perm, post, priorityCallback, quadraticPolynomialRootsGeneric, rad2Deg, random01, randomBarycentricCoord, randomPointBetweenEllipsoid, randomPointBetweenSphere, randomPointInsideCube, randomPointInsideEllipsoid, randomPointInsideUnitCircle, randomPointInsideUnitSphere, randomQuaternion, randomQuaternionUniformDistribution, randomSeed, randomUnitVector, randomUnitVector2, rangedRandomFloat, rangedRandomInt, readByType, readMagicBytes, registerMaterial, repeat, rotMatrix, rotateVectorByQuat, roundfToIntPos, scale, shadowCastMap_frag, shadowCastMap_vert, simplex, sin, snoise1, snoise2, snoise3, snoise4, splatColorProperties, splatProperties, sqrMagnitude, sqrtImpl, stencilStateFace, swap, textureCompress, threshold, throttle, toHalfFloat, toggleTiles, traverseAncestors, traverseSet, tw, uniform_real_distribution, uniform_real_distribution2, upSample$1 as upSample, webGPUContext, zSorterUtil };