@rings-webgpu/core 1.0.29 → 1.0.31
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/dist/rings.es.js +217 -211
- package/dist/rings.es.js.map +3 -3
- package/dist/rings.es.max.js +717 -123
- package/dist/rings.umd.js +217 -211
- package/dist/rings.umd.js.map +3 -3
- package/dist/rings.umd.max.js +720 -122
- package/dist/types/index.d.ts +4 -0
- package/dist/types/loader/parser/las/LASLoader.d.ts +45 -0
- package/dist/types/loader/parser/las/LASParser.d.ts +39 -0
- package/dist/types/loader/parser/las/LASTypes.d.ts +71 -0
- package/dist/types/loader/parser/las/LASUtils.d.ts +37 -0
- package/package.json +1 -1
package/dist/rings.es.max.js
CHANGED
|
@@ -42146,7 +42146,7 @@ class PostProcessingComponent extends ComponentBase {
|
|
|
42146
42146
|
}
|
|
42147
42147
|
}
|
|
42148
42148
|
|
|
42149
|
-
const version = "1.0.
|
|
42149
|
+
const version = "1.0.30";
|
|
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) {
|
|
@@ -61357,6 +62062,8 @@ class PNTSLoader extends PNTSLoaderBase {
|
|
|
61357
62062
|
const pointCloudObj = new Object3D();
|
|
61358
62063
|
const renderer = pointCloudObj.addComponent(PointCloudRenderer);
|
|
61359
62064
|
renderer.initFromData(positions, colors, pointsLength);
|
|
62065
|
+
renderer.setPointShape("circle");
|
|
62066
|
+
renderer.setPointSize(4);
|
|
61360
62067
|
const rtcCenter = featureTable.getData("RTC_CENTER", 1, "FLOAT", "VEC3");
|
|
61361
62068
|
if (rtcCenter) {
|
|
61362
62069
|
pointCloudObj.transform.localPosition.set(
|
|
@@ -62496,9 +63203,9 @@ class PrefabTextureParser extends ParserBase {
|
|
|
62496
63203
|
}
|
|
62497
63204
|
}
|
|
62498
63205
|
|
|
62499
|
-
var __getOwnPropDesc$
|
|
62500
|
-
var __decorateClass$
|
|
62501
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
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;
|
|
62502
63209
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
62503
63210
|
if (decorator = decorators[i])
|
|
62504
63211
|
result = (decorator(result)) || result;
|
|
@@ -62617,13 +63324,13 @@ let LitSSSShader = class extends Shader {
|
|
|
62617
63324
|
}
|
|
62618
63325
|
}
|
|
62619
63326
|
};
|
|
62620
|
-
LitSSSShader = __decorateClass$
|
|
63327
|
+
LitSSSShader = __decorateClass$3([
|
|
62621
63328
|
RegisterShader(LitSSSShader, "LitSSSShader")
|
|
62622
63329
|
], LitSSSShader);
|
|
62623
63330
|
|
|
62624
|
-
var __getOwnPropDesc$
|
|
62625
|
-
var __decorateClass$
|
|
62626
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
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;
|
|
62627
63334
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
62628
63335
|
if (decorator = decorators[i])
|
|
62629
63336
|
result = (decorator(result)) || result;
|
|
@@ -62719,7 +63426,7 @@ let LitShader = class extends Shader {
|
|
|
62719
63426
|
}
|
|
62720
63427
|
}
|
|
62721
63428
|
};
|
|
62722
|
-
LitShader = __decorateClass$
|
|
63429
|
+
LitShader = __decorateClass$2([
|
|
62723
63430
|
RegisterShader(LitShader, "LitShader")
|
|
62724
63431
|
], LitShader);
|
|
62725
63432
|
|
|
@@ -62878,47 +63585,6 @@ class PrefabStringUtil {
|
|
|
62878
63585
|
}
|
|
62879
63586
|
}
|
|
62880
63587
|
|
|
62881
|
-
var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
|
|
62882
|
-
var __decorateClass$2 = (decorators, target, key, kind) => {
|
|
62883
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
|
|
62884
|
-
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
62885
|
-
if (decorator = decorators[i])
|
|
62886
|
-
result = (decorator(result)) || result;
|
|
62887
|
-
return result;
|
|
62888
|
-
};
|
|
62889
|
-
let FatLineShader = class extends Shader {
|
|
62890
|
-
constructor() {
|
|
62891
|
-
super();
|
|
62892
|
-
const colorShader = new RenderShaderPass("FatLine_VS", "FatLine_FS");
|
|
62893
|
-
colorShader.setShaderEntry(`VertMain`, `FragMain`);
|
|
62894
|
-
this.addRenderPass(colorShader);
|
|
62895
|
-
const shaderState = colorShader.shaderState;
|
|
62896
|
-
shaderState.acceptShadow = false;
|
|
62897
|
-
shaderState.castShadow = false;
|
|
62898
|
-
shaderState.receiveEnv = false;
|
|
62899
|
-
shaderState.acceptGI = false;
|
|
62900
|
-
shaderState.useLight = false;
|
|
62901
|
-
shaderState.cullMode = GPUCullMode.none;
|
|
62902
|
-
shaderState.depthWriteEnabled = true;
|
|
62903
|
-
this.setDefault();
|
|
62904
|
-
}
|
|
62905
|
-
/**
|
|
62906
|
-
* Set default uniform values
|
|
62907
|
-
*/
|
|
62908
|
-
setDefault() {
|
|
62909
|
-
this.setUniformColor(`baseColor`, new Color(1, 1, 1, 1));
|
|
62910
|
-
this.setUniformFloat(`lineWidth`, 1);
|
|
62911
|
-
this.setUniformFloat(`opacity`, 1);
|
|
62912
|
-
this.setUniformVector2(`resolution`, new Vector2(1920, 1080));
|
|
62913
|
-
const identityMatrix = new Matrix4();
|
|
62914
|
-
const pass = this.getDefaultColorShader();
|
|
62915
|
-
pass.setUniform(`modelMatrix`, identityMatrix.rawData);
|
|
62916
|
-
}
|
|
62917
|
-
};
|
|
62918
|
-
FatLineShader = __decorateClass$2([
|
|
62919
|
-
RegisterShader(FatLineShader, "FatLineShader")
|
|
62920
|
-
], FatLineShader);
|
|
62921
|
-
|
|
62922
63588
|
var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
|
|
62923
63589
|
var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
62924
63590
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
|
|
@@ -65292,78 +65958,6 @@ class ColorLitMaterial extends Material {
|
|
|
65292
65958
|
}
|
|
65293
65959
|
}
|
|
65294
65960
|
|
|
65295
|
-
class FatLineMaterial extends Material {
|
|
65296
|
-
constructor() {
|
|
65297
|
-
super();
|
|
65298
|
-
this.shader = new FatLineShader();
|
|
65299
|
-
this.transparent = true;
|
|
65300
|
-
}
|
|
65301
|
-
/**
|
|
65302
|
-
* Set instance buffer for line segments
|
|
65303
|
-
* This should be called after setting the geometry
|
|
65304
|
-
*/
|
|
65305
|
-
setInstanceBuffer(buffer) {
|
|
65306
|
-
this.shader.setStorageBuffer("instances", buffer);
|
|
65307
|
-
}
|
|
65308
|
-
/**
|
|
65309
|
-
* Set model matrix for transforming line segments
|
|
65310
|
-
* This should be updated each frame if the object moves
|
|
65311
|
-
*/
|
|
65312
|
-
setModelMatrix(matrix) {
|
|
65313
|
-
const pass = this.shader.getDefaultColorShader();
|
|
65314
|
-
pass.setUniform("modelMatrix", matrix.rawData);
|
|
65315
|
-
}
|
|
65316
|
-
/**
|
|
65317
|
-
* Set base color (tint color)
|
|
65318
|
-
*/
|
|
65319
|
-
set baseColor(color) {
|
|
65320
|
-
this.shader.setUniformColor(`baseColor`, color);
|
|
65321
|
-
}
|
|
65322
|
-
/**
|
|
65323
|
-
* Get base color (tint color)
|
|
65324
|
-
*/
|
|
65325
|
-
get baseColor() {
|
|
65326
|
-
return this.shader.getUniformColor("baseColor");
|
|
65327
|
-
}
|
|
65328
|
-
/**
|
|
65329
|
-
* Set line width in pixels
|
|
65330
|
-
*/
|
|
65331
|
-
set lineWidth(value) {
|
|
65332
|
-
this.shader.setUniformFloat(`lineWidth`, value);
|
|
65333
|
-
}
|
|
65334
|
-
/**
|
|
65335
|
-
* Get line width in pixels
|
|
65336
|
-
*/
|
|
65337
|
-
get lineWidth() {
|
|
65338
|
-
return this.shader.getUniformFloat("lineWidth");
|
|
65339
|
-
}
|
|
65340
|
-
/**
|
|
65341
|
-
* Set opacity (0-1)
|
|
65342
|
-
*/
|
|
65343
|
-
set opacity(value) {
|
|
65344
|
-
this.shader.setUniformFloat(`opacity`, value);
|
|
65345
|
-
}
|
|
65346
|
-
/**
|
|
65347
|
-
* Get opacity (0-1)
|
|
65348
|
-
*/
|
|
65349
|
-
get opacity() {
|
|
65350
|
-
return this.shader.getUniformFloat("opacity");
|
|
65351
|
-
}
|
|
65352
|
-
/**
|
|
65353
|
-
* Set viewport resolution for correct pixel-space calculations
|
|
65354
|
-
* This should be set automatically by the renderer
|
|
65355
|
-
*/
|
|
65356
|
-
set resolution(value) {
|
|
65357
|
-
this.shader.setUniformVector2(`resolution`, value);
|
|
65358
|
-
}
|
|
65359
|
-
/**
|
|
65360
|
-
* Get viewport resolution
|
|
65361
|
-
*/
|
|
65362
|
-
get resolution() {
|
|
65363
|
-
return this.shader.getUniformVector2("resolution");
|
|
65364
|
-
}
|
|
65365
|
-
}
|
|
65366
|
-
|
|
65367
65961
|
class LambertMaterial extends Material {
|
|
65368
65962
|
/**
|
|
65369
65963
|
* @constructor
|
|
@@ -71080,4 +71674,4 @@ const __viteBrowserExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.def
|
|
|
71080
71674
|
__proto__: null
|
|
71081
71675
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
71082
71676
|
|
|
71083
|
-
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 };
|
|
71677
|
+
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 };
|