@carbonenginejs/runtime-resource 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FORMAT-PROVENANCE.md +155 -144
- package/LICENSE +21 -21
- package/NOTICE +29 -29
- package/README.md +11 -0
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3005 -3005
- package/dist/CjsResManQueue.js +214 -214
- package/dist/CjsResource.js +566 -566
- package/dist/CjsResourceSource.js +59 -59
- package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
- package/dist/format/CjsBlueReader.js +269 -269
- package/dist/format/CjsFormat.js +192 -192
- package/dist/format/CjsReader.js +18 -18
- package/dist/format/CjsResourceProbe.js +277 -277
- package/dist/format/payloadContract.js +173 -173
- package/dist/formats/black/CjsBlackFormat.js +278 -278
- package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -153
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -382
- package/dist/formats/black/core/CjsBlackReader.js +639 -639
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -433
- package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -4
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackEnums.js +6 -6
- package/dist/formats/black/core/blackSchema.js +3 -3
- package/dist/formats/black/core/blackVersion.js +22 -22
- package/dist/formats/black/core/helpers.js +182 -182
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +125 -125
- package/dist/formats/bnk/core/graph.js +140 -140
- package/dist/formats/bnk/core/helpers.js +409 -409
- package/dist/formats/bnk/core/musicNodes.js +489 -489
- package/dist/formats/bnk/core/soundbanksInfo.js +246 -246
- package/dist/formats/bnk/index.js +2 -2
- package/dist/formats/cmf/CjsCmfFormat.js +497 -497
- package/dist/formats/cmf/core/binary.js +118 -118
- package/dist/formats/cmf/core/buffers.js +233 -233
- package/dist/formats/cmf/core/constants.js +47 -47
- package/dist/formats/cmf/core/gr2Anim.js +453 -453
- package/dist/formats/cmf/core/helpers.js +287 -287
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +364 -364
- package/dist/formats/cmf/core/shared.js +268 -268
- package/dist/formats/cmf/core/writer.js +517 -517
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +193 -193
- package/dist/formats/dds/core/bc6h.js +288 -0
- package/dist/formats/dds/core/bc6h.js.map +1 -0
- package/dist/formats/dds/core/bc7.js +251 -0
- package/dist/formats/dds/core/bc7.js.map +1 -0
- package/dist/formats/dds/core/helpers.js +815 -812
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -266
- package/dist/formats/fbx/core/helpers.js +3901 -3901
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +87 -87
- package/dist/formats/flac/core/helpers.js +295 -295
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +87 -87
- package/dist/formats/gif/core/helpers.js +360 -360
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +290 -290
- package/dist/formats/gltf/core/helpers.js +292 -292
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +666 -666
- package/dist/formats/gltf/core/targets.js +163 -163
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/index.js +23 -23
- package/dist/formats/jpeg/CjsJpegFormat.js +206 -206
- package/dist/formats/jpeg/core/helpers.js +350 -350
- package/dist/formats/jpeg/core/jpeg.js +377 -377
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +192 -192
- package/dist/formats/mp3/core/helpers.js +338 -338
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +191 -191
- package/dist/formats/mp4/core/helpers.js +449 -449
- package/dist/formats/mp4/index.js +2 -2
- package/dist/formats/obj/CjsObjFormat.js +253 -253
- package/dist/formats/obj/core/helpers.js +573 -573
- package/dist/formats/obj/core/json.js +64 -64
- package/dist/formats/obj/core/parser.js +321 -321
- package/dist/formats/obj/index.js +2 -2
- package/dist/formats/ogg/CjsOggFormat.js +88 -88
- package/dist/formats/ogg/core/helpers.js +387 -387
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +999 -999
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +195 -195
- package/dist/formats/png/core/helpers.js +583 -583
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +261 -261
- package/dist/formats/red/core/CjsRedReader.js +194 -194
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +139 -139
- package/dist/formats/red/core/redGraph.js +68 -68
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +365 -365
- package/dist/formats/stl/core/helpers.js +261 -261
- package/dist/formats/stl/core/json.js +51 -51
- package/dist/formats/stl/core/stl.js +629 -629
- package/dist/formats/stl/core/targets.js +163 -163
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +192 -192
- package/dist/formats/tga/core/helpers.js +446 -446
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +192 -192
- package/dist/formats/wav/core/helpers.js +328 -328
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +191 -191
- package/dist/formats/webm/core/helpers.js +537 -537
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +86 -86
- package/dist/formats/webp/core/helpers.js +214 -214
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +241 -241
- package/dist/formats/wem/core/bitStream.js +259 -259
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +417 -417
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
- package/dist/formats/wem/core/ptadpcm.js +77 -77
- package/dist/formats/wem/core/resolve.js +121 -121
- package/dist/formats/wem/core/wemToOgg.js +485 -485
- package/dist/formats/wem/index.js +2 -2
- package/dist/formats/yaml/CjsYamlFormat.js +83 -83
- package/dist/formats/yaml/core/CjsYamlReader.js +305 -305
- package/dist/formats/yaml/core/helpers.js +160 -160
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +48 -48
- package/dist/resourcePath.js +18 -18
- package/dist/resourceStates.js +9 -9
- package/dist/resources/AudioGeometryResData.js +47 -47
- package/dist/resources/GStateBindingCallbackData.js +31 -31
- package/dist/resources/MeshDecalData.js +37 -37
- package/dist/resources/MeshDecalLodData.js +34 -34
- package/dist/resources/Tr2EffectRes.js +71 -71
- package/dist/resources/Tr2GrannyIntersectionResult.js +60 -60
- package/dist/resources/Tr2GrannyStateRes.js +44 -44
- package/dist/resources/Tr2ImageRes.js +114 -114
- package/dist/resources/Tr2LightProfileRes.js +40 -40
- package/dist/resources/Tr2MaterialArea.js +34 -34
- package/dist/resources/Tr2MaterialMesh.js +31 -31
- package/dist/resources/Tr2MaterialRes.js +34 -34
- package/dist/resources/Tr2ShaderPermutation.js +43 -43
- package/dist/resources/Tr2TextureLodManager.js +80 -80
- package/dist/resources/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resources/Tr2TexturePackChannel.js +37 -37
- package/dist/resources/Tr2TexturePipeline.js +52 -52
- package/dist/resources/Tr2TexturePipelineParams.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resources/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resources/TriGeometryRes.js +239 -216
- package/dist/resources/TriGeometryRes.js.map +1 -1
- package/dist/resources/TriGeometryResAreaData.js +59 -59
- package/dist/resources/TriGeometryResJointData.js +38 -38
- package/dist/resources/TriGeometryResLodData.js +88 -88
- package/dist/resources/TriGeometryResMeshData.js +63 -63
- package/dist/resources/TriGeometryResSkeletonData.js +34 -34
- package/dist/resources/TriGrannyRes.js +43 -43
- package/dist/resources/TriJointBinding.js +38 -38
- package/dist/resources/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resources/TriRtGeometryConstants.js +88 -88
- package/dist/resources/TriTextureRes.js +304 -304
- package/dist/resources/enums.js +18 -18
- package/dist/resources/resourceBoundary.js +47 -47
- package/dist/resources/texturePipelineBehavior.js +308 -308
- package/dist/texture/CjsTextureArrayRes.js +406 -406
- package/dist/texture/CjsTextureParameterProxy.js +133 -133
- package/format-notices/black/LICENSE +21 -21
- package/format-notices/black/NOTICE +47 -47
- package/format-notices/bnk/LICENSE +21 -21
- package/format-notices/bnk/NOTICE +20 -20
- package/format-notices/cmf/LICENSE +21 -21
- package/format-notices/cmf/NOTICE +36 -36
- package/format-notices/dds/LICENSE +21 -21
- package/format-notices/dds/NOTICE +14 -14
- package/format-notices/fbx/LICENSE +21 -21
- package/format-notices/fbx/NOTICE +14 -14
- package/format-notices/flac/LICENSE +21 -21
- package/format-notices/flac/NOTICE +14 -14
- package/format-notices/gif/LICENSE +21 -21
- package/format-notices/gif/NOTICE +14 -14
- package/format-notices/gltf/LICENSE +21 -21
- package/format-notices/gltf/NOTICE +27 -27
- package/format-notices/jpeg/LICENSE +21 -21
- package/format-notices/jpeg/NOTICE +14 -14
- package/format-notices/mp3/LICENSE +21 -21
- package/format-notices/mp3/NOTICE +14 -14
- package/format-notices/mp4/LICENSE +21 -21
- package/format-notices/mp4/NOTICE +14 -14
- package/format-notices/obj/LICENSE +21 -21
- package/format-notices/obj/NOTICE +26 -26
- package/format-notices/ogg/LICENSE +21 -21
- package/format-notices/ogg/NOTICE +28 -28
- package/format-notices/png/LICENSE +21 -21
- package/format-notices/png/NOTICE +14 -14
- package/format-notices/red/LICENSE +21 -21
- package/format-notices/red/NOTICE +31 -31
- package/format-notices/stl/LICENSE +21 -21
- package/format-notices/stl/NOTICE +21 -21
- package/format-notices/tga/LICENSE +21 -21
- package/format-notices/tga/NOTICE +14 -14
- package/format-notices/wav/LICENSE +21 -21
- package/format-notices/wav/NOTICE +14 -14
- package/format-notices/webm/LICENSE +21 -21
- package/format-notices/webm/NOTICE +14 -14
- package/format-notices/webp/LICENSE +21 -21
- package/format-notices/webp/NOTICE +14 -14
- package/format-notices/wem/LICENSE +57 -57
- package/format-notices/wem/NOTICE +33 -33
- package/format-notices/yaml/LICENSE +21 -21
- package/format-notices/yaml/NOTICE +44 -44
- package/package.json +2 -2
- package/resource-lifecycle.md +679 -679
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
const textDecoder = new TextDecoder();
|
|
2
|
-
function asUint8Array(input) {
|
|
3
|
-
if (input instanceof Uint8Array) {
|
|
4
|
-
return input;
|
|
5
|
-
}
|
|
6
|
-
if (input instanceof ArrayBuffer) {
|
|
7
|
-
return new Uint8Array(input);
|
|
8
|
-
}
|
|
9
|
-
if (ArrayBuffer.isView(input)) {
|
|
10
|
-
return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
|
|
11
|
-
}
|
|
12
|
-
throw new TypeError("CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view");
|
|
13
|
-
}
|
|
14
|
-
class BinaryReader {
|
|
15
|
-
constructor(bytes) {
|
|
16
|
-
this.bytes = asUint8Array(bytes);
|
|
17
|
-
this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);
|
|
18
|
-
}
|
|
19
|
-
require(offset, size, label = "read") {
|
|
20
|
-
if (!Number.isInteger(offset) || offset < 0 || offset + size > this.bytes.byteLength) {
|
|
21
|
-
throw new RangeError(`CMF ${label} is outside file bounds`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
u8(offset) {
|
|
25
|
-
this.require(offset, 1);
|
|
26
|
-
return this.view.getUint8(offset);
|
|
27
|
-
}
|
|
28
|
-
u16(offset) {
|
|
29
|
-
this.require(offset, 2);
|
|
30
|
-
return this.view.getUint16(offset, true);
|
|
31
|
-
}
|
|
32
|
-
u32(offset) {
|
|
33
|
-
this.require(offset, 4);
|
|
34
|
-
return this.view.getUint32(offset, true);
|
|
35
|
-
}
|
|
36
|
-
i32(offset) {
|
|
37
|
-
this.require(offset, 4);
|
|
38
|
-
return this.view.getInt32(offset, true);
|
|
39
|
-
}
|
|
40
|
-
f32(offset) {
|
|
41
|
-
this.require(offset, 4);
|
|
42
|
-
return this.view.getFloat32(offset, true);
|
|
43
|
-
}
|
|
44
|
-
u64(offset) {
|
|
45
|
-
this.require(offset, 8);
|
|
46
|
-
const value = this.view.getBigUint64(offset, true);
|
|
47
|
-
if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
48
|
-
throw new RangeError("CMF integer is larger than Number.MAX_SAFE_INTEGER");
|
|
49
|
-
}
|
|
50
|
-
return Number(value);
|
|
51
|
-
}
|
|
52
|
-
i64(offset) {
|
|
53
|
-
this.require(offset, 8);
|
|
54
|
-
const value = this.view.getBigInt64(offset, true);
|
|
55
|
-
if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER)) {
|
|
56
|
-
throw new RangeError("CMF integer is outside the safe JavaScript number range");
|
|
57
|
-
}
|
|
58
|
-
return Number(value);
|
|
59
|
-
}
|
|
60
|
-
bytesAt(offset, size) {
|
|
61
|
-
this.require(offset, size, "byte slice");
|
|
62
|
-
return this.bytes.subarray(offset, offset + size);
|
|
63
|
-
}
|
|
64
|
-
string(offset, byteSize) {
|
|
65
|
-
if (byteSize === 0) {
|
|
66
|
-
return "";
|
|
67
|
-
}
|
|
68
|
-
return textDecoder.decode(this.bytesAt(offset, byteSize));
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
function enumName(names, value) {
|
|
72
|
-
return names[value] ?? `Unknown(${value})`;
|
|
73
|
-
}
|
|
74
|
-
function readVector3(reader, offset) {
|
|
75
|
-
return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8)];
|
|
76
|
-
}
|
|
77
|
-
function readQuaternion(reader, offset) {
|
|
78
|
-
return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8), reader.f32(offset + 12)];
|
|
79
|
-
}
|
|
80
|
-
function readMatrix(reader, offset) {
|
|
81
|
-
const values = [];
|
|
82
|
-
for (let i = 0; i < 16; i++) {
|
|
83
|
-
values.push(reader.f32(offset + i * 4));
|
|
84
|
-
}
|
|
85
|
-
return values;
|
|
86
|
-
}
|
|
87
|
-
function readBounds(reader, offset) {
|
|
88
|
-
return {
|
|
89
|
-
min: readVector3(reader, offset),
|
|
90
|
-
max: readVector3(reader, offset + 12)
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
function crc32(bytes, start = 0, end = bytes.byteLength) {
|
|
94
|
-
let crc = 0xffffffff;
|
|
95
|
-
const table = crc32Table();
|
|
96
|
-
for (let i = start; i < end; i++) {
|
|
97
|
-
crc = crc >>> 8 ^ table[(crc ^ bytes[i]) & 0xff];
|
|
98
|
-
}
|
|
99
|
-
return (crc ^ 0xffffffff) >>> 0;
|
|
100
|
-
}
|
|
101
|
-
let cachedCrc32Table = null;
|
|
102
|
-
function crc32Table() {
|
|
103
|
-
if (cachedCrc32Table) {
|
|
104
|
-
return cachedCrc32Table;
|
|
105
|
-
}
|
|
106
|
-
cachedCrc32Table = new Uint32Array(256);
|
|
107
|
-
for (let i = 0; i < 256; i++) {
|
|
108
|
-
let c = i;
|
|
109
|
-
for (let k = 0; k < 8; k++) {
|
|
110
|
-
c = c & 1 ? 0xedb88320 ^ c >>> 1 : c >>> 1;
|
|
111
|
-
}
|
|
112
|
-
cachedCrc32Table[i] = c >>> 0;
|
|
113
|
-
}
|
|
114
|
-
return cachedCrc32Table;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export { BinaryReader, asUint8Array, crc32, enumName, readBounds, readMatrix, readQuaternion, readVector3 };
|
|
118
|
-
//# sourceMappingURL=binary.js.map
|
|
1
|
+
const textDecoder = new TextDecoder();
|
|
2
|
+
function asUint8Array(input) {
|
|
3
|
+
if (input instanceof Uint8Array) {
|
|
4
|
+
return input;
|
|
5
|
+
}
|
|
6
|
+
if (input instanceof ArrayBuffer) {
|
|
7
|
+
return new Uint8Array(input);
|
|
8
|
+
}
|
|
9
|
+
if (ArrayBuffer.isView(input)) {
|
|
10
|
+
return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);
|
|
11
|
+
}
|
|
12
|
+
throw new TypeError("CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view");
|
|
13
|
+
}
|
|
14
|
+
class BinaryReader {
|
|
15
|
+
constructor(bytes) {
|
|
16
|
+
this.bytes = asUint8Array(bytes);
|
|
17
|
+
this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);
|
|
18
|
+
}
|
|
19
|
+
require(offset, size, label = "read") {
|
|
20
|
+
if (!Number.isInteger(offset) || offset < 0 || offset + size > this.bytes.byteLength) {
|
|
21
|
+
throw new RangeError(`CMF ${label} is outside file bounds`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
u8(offset) {
|
|
25
|
+
this.require(offset, 1);
|
|
26
|
+
return this.view.getUint8(offset);
|
|
27
|
+
}
|
|
28
|
+
u16(offset) {
|
|
29
|
+
this.require(offset, 2);
|
|
30
|
+
return this.view.getUint16(offset, true);
|
|
31
|
+
}
|
|
32
|
+
u32(offset) {
|
|
33
|
+
this.require(offset, 4);
|
|
34
|
+
return this.view.getUint32(offset, true);
|
|
35
|
+
}
|
|
36
|
+
i32(offset) {
|
|
37
|
+
this.require(offset, 4);
|
|
38
|
+
return this.view.getInt32(offset, true);
|
|
39
|
+
}
|
|
40
|
+
f32(offset) {
|
|
41
|
+
this.require(offset, 4);
|
|
42
|
+
return this.view.getFloat32(offset, true);
|
|
43
|
+
}
|
|
44
|
+
u64(offset) {
|
|
45
|
+
this.require(offset, 8);
|
|
46
|
+
const value = this.view.getBigUint64(offset, true);
|
|
47
|
+
if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
48
|
+
throw new RangeError("CMF integer is larger than Number.MAX_SAFE_INTEGER");
|
|
49
|
+
}
|
|
50
|
+
return Number(value);
|
|
51
|
+
}
|
|
52
|
+
i64(offset) {
|
|
53
|
+
this.require(offset, 8);
|
|
54
|
+
const value = this.view.getBigInt64(offset, true);
|
|
55
|
+
if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER)) {
|
|
56
|
+
throw new RangeError("CMF integer is outside the safe JavaScript number range");
|
|
57
|
+
}
|
|
58
|
+
return Number(value);
|
|
59
|
+
}
|
|
60
|
+
bytesAt(offset, size) {
|
|
61
|
+
this.require(offset, size, "byte slice");
|
|
62
|
+
return this.bytes.subarray(offset, offset + size);
|
|
63
|
+
}
|
|
64
|
+
string(offset, byteSize) {
|
|
65
|
+
if (byteSize === 0) {
|
|
66
|
+
return "";
|
|
67
|
+
}
|
|
68
|
+
return textDecoder.decode(this.bytesAt(offset, byteSize));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function enumName(names, value) {
|
|
72
|
+
return names[value] ?? `Unknown(${value})`;
|
|
73
|
+
}
|
|
74
|
+
function readVector3(reader, offset) {
|
|
75
|
+
return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8)];
|
|
76
|
+
}
|
|
77
|
+
function readQuaternion(reader, offset) {
|
|
78
|
+
return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8), reader.f32(offset + 12)];
|
|
79
|
+
}
|
|
80
|
+
function readMatrix(reader, offset) {
|
|
81
|
+
const values = [];
|
|
82
|
+
for (let i = 0; i < 16; i++) {
|
|
83
|
+
values.push(reader.f32(offset + i * 4));
|
|
84
|
+
}
|
|
85
|
+
return values;
|
|
86
|
+
}
|
|
87
|
+
function readBounds(reader, offset) {
|
|
88
|
+
return {
|
|
89
|
+
min: readVector3(reader, offset),
|
|
90
|
+
max: readVector3(reader, offset + 12)
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function crc32(bytes, start = 0, end = bytes.byteLength) {
|
|
94
|
+
let crc = 0xffffffff;
|
|
95
|
+
const table = crc32Table();
|
|
96
|
+
for (let i = start; i < end; i++) {
|
|
97
|
+
crc = crc >>> 8 ^ table[(crc ^ bytes[i]) & 0xff];
|
|
98
|
+
}
|
|
99
|
+
return (crc ^ 0xffffffff) >>> 0;
|
|
100
|
+
}
|
|
101
|
+
let cachedCrc32Table = null;
|
|
102
|
+
function crc32Table() {
|
|
103
|
+
if (cachedCrc32Table) {
|
|
104
|
+
return cachedCrc32Table;
|
|
105
|
+
}
|
|
106
|
+
cachedCrc32Table = new Uint32Array(256);
|
|
107
|
+
for (let i = 0; i < 256; i++) {
|
|
108
|
+
let c = i;
|
|
109
|
+
for (let k = 0; k < 8; k++) {
|
|
110
|
+
c = c & 1 ? 0xedb88320 ^ c >>> 1 : c >>> 1;
|
|
111
|
+
}
|
|
112
|
+
cachedCrc32Table[i] = c >>> 0;
|
|
113
|
+
}
|
|
114
|
+
return cachedCrc32Table;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export { BinaryReader, asUint8Array, crc32, enumName, readBounds, readMatrix, readQuaternion, readVector3 };
|
|
118
|
+
//# sourceMappingURL=binary.js.map
|