@onerjs/loaders 8.53.1 → 8.53.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/FBX/fbxFileLoader.d.ts +194 -0
  2. package/FBX/fbxFileLoader.js +2440 -0
  3. package/FBX/fbxFileLoader.js.map +1 -0
  4. package/FBX/fbxFileLoader.metadata.d.ts +11 -0
  5. package/FBX/fbxFileLoader.metadata.js +11 -0
  6. package/FBX/fbxFileLoader.metadata.js.map +1 -0
  7. package/FBX/index.d.ts +3 -0
  8. package/FBX/index.js +3 -0
  9. package/FBX/index.js.map +1 -0
  10. package/FBX/interpreter/animation.d.ts +122 -0
  11. package/FBX/interpreter/animation.js +648 -0
  12. package/FBX/interpreter/animation.js.map +1 -0
  13. package/FBX/interpreter/blendShapes.d.ts +44 -0
  14. package/FBX/interpreter/blendShapes.js +192 -0
  15. package/FBX/interpreter/blendShapes.js.map +1 -0
  16. package/FBX/interpreter/connections.d.ts +95 -0
  17. package/FBX/interpreter/connections.js +233 -0
  18. package/FBX/interpreter/connections.js.map +1 -0
  19. package/FBX/interpreter/fbxInterpreter.d.ts +149 -0
  20. package/FBX/interpreter/fbxInterpreter.js +496 -0
  21. package/FBX/interpreter/fbxInterpreter.js.map +1 -0
  22. package/FBX/interpreter/geometry.d.ts +55 -0
  23. package/FBX/interpreter/geometry.js +573 -0
  24. package/FBX/interpreter/geometry.js.map +1 -0
  25. package/FBX/interpreter/materials.d.ts +50 -0
  26. package/FBX/interpreter/materials.js +144 -0
  27. package/FBX/interpreter/materials.js.map +1 -0
  28. package/FBX/interpreter/propertyTemplates.d.ts +22 -0
  29. package/FBX/interpreter/propertyTemplates.js +125 -0
  30. package/FBX/interpreter/propertyTemplates.js.map +1 -0
  31. package/FBX/interpreter/rig.d.ts +20 -0
  32. package/FBX/interpreter/rig.js +259 -0
  33. package/FBX/interpreter/rig.js.map +1 -0
  34. package/FBX/interpreter/sceneDiagnostics.d.ts +14 -0
  35. package/FBX/interpreter/sceneDiagnostics.js +55 -0
  36. package/FBX/interpreter/sceneDiagnostics.js.map +1 -0
  37. package/FBX/interpreter/skeleton.d.ts +93 -0
  38. package/FBX/interpreter/skeleton.js +515 -0
  39. package/FBX/interpreter/skeleton.js.map +1 -0
  40. package/FBX/interpreter/transform.d.ts +21 -0
  41. package/FBX/interpreter/transform.js +92 -0
  42. package/FBX/interpreter/transform.js.map +1 -0
  43. package/FBX/parsers/fbxAsciiParser.d.ts +5 -0
  44. package/FBX/parsers/fbxAsciiParser.js +330 -0
  45. package/FBX/parsers/fbxAsciiParser.js.map +1 -0
  46. package/FBX/parsers/fbxBinaryParser.d.ts +6 -0
  47. package/FBX/parsers/fbxBinaryParser.js +255 -0
  48. package/FBX/parsers/fbxBinaryParser.js.map +1 -0
  49. package/FBX/parsers/zlibInflate.d.ts +7 -0
  50. package/FBX/parsers/zlibInflate.js +350 -0
  51. package/FBX/parsers/zlibInflate.js.map +1 -0
  52. package/FBX/types/fbxTypes.d.ts +54 -0
  53. package/FBX/types/fbxTypes.js +66 -0
  54. package/FBX/types/fbxTypes.js.map +1 -0
  55. package/dynamic.js +9 -0
  56. package/dynamic.js.map +1 -1
  57. package/index.d.ts +1 -0
  58. package/index.js +1 -0
  59. package/index.js.map +1 -1
  60. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zlibInflate.js","sourceRoot":"","sources":["../../../../../dev/loaders/src/FBX/parsers/zlibInflate.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention, jsdoc/require-param, jsdoc/require-returns */\r\nconst ADLER_MOD = 65521;\r\nconst MAX_BITS = 15;\r\n\r\nconst LENGTH_BASE = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258];\r\nconst LENGTH_EXTRA_BITS = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];\r\nconst DISTANCE_BASE = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577];\r\nconst DISTANCE_EXTRA_BITS = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];\r\nconst CODE_LENGTH_ORDER = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\r\n\r\n/**\r\n * Inflate a zlib-wrapped deflate stream.\r\n *\r\n * This implementation is intentionally scoped to FBX binary array payloads: one-shot,\r\n * synchronous zlib streams with the exact uncompressed length known up front.\r\n */\r\nexport function inflateZlib(input: Uint8Array, expectedLength: number): Uint8Array {\r\n if (!Number.isInteger(expectedLength) || expectedLength < 0) {\r\n throw new Error(\"zlib: invalid expected length\");\r\n }\r\n if (input.byteLength < 6) {\r\n throw new Error(\"zlib: unexpected end of input\");\r\n }\r\n\r\n const cmf = input[0];\r\n const flg = input[1];\r\n if ((cmf & 0x0f) !== 8 || cmf >> 4 > 7 || ((cmf << 8) + flg) % 31 !== 0) {\r\n throw new Error(\"zlib: invalid header\");\r\n }\r\n if ((flg & 0x20) !== 0) {\r\n throw new Error(\"zlib: preset dictionary not supported\");\r\n }\r\n\r\n const reader = new BitReader(input, 2, input.byteLength - 4);\r\n const output = new OutputWriter(expectedLength);\r\n\r\n let isFinalBlock = false;\r\n while (!isFinalBlock) {\r\n isFinalBlock = reader.readBits(1) === 1;\r\n const blockType = reader.readBits(2);\r\n switch (blockType) {\r\n case 0:\r\n inflateStoredBlock(reader, output);\r\n break;\r\n case 1:\r\n inflateCompressedBlock(reader, output, getFixedLiteralLengthTree(), getFixedDistanceTree());\r\n break;\r\n case 2: {\r\n const { literalLengthTree, distanceTree } = readDynamicTrees(reader);\r\n inflateCompressedBlock(reader, output, literalLengthTree, distanceTree);\r\n break;\r\n }\r\n default:\r\n throw new Error(\"deflate: invalid block type\");\r\n }\r\n }\r\n\r\n if (reader.byteOffset < input.byteLength - 4) {\r\n throw new Error(\"zlib: trailing deflate data\");\r\n }\r\n\r\n output.finish();\r\n const expectedAdler = ((input[input.byteLength - 4] << 24) | (input[input.byteLength - 3] << 16) | (input[input.byteLength - 2] << 8) | input[input.byteLength - 1]) >>> 0;\r\n if (output.adler32() !== expectedAdler) {\r\n throw new Error(\"zlib: adler32 mismatch\");\r\n }\r\n\r\n return output.bytes;\r\n}\r\n\r\nclass BitReader {\r\n private bitBuffer = 0;\r\n private bitCount = 0;\r\n\r\n public constructor(\r\n private readonly input: Uint8Array,\r\n public byteOffset: number,\r\n private readonly endOffset: number\r\n ) {}\r\n\r\n public readBits(count: number): number {\r\n this.ensureBits(count);\r\n const value = this.bitBuffer & ((1 << count) - 1);\r\n this.bitBuffer >>>= count;\r\n this.bitCount -= count;\r\n return value;\r\n }\r\n\r\n public readBit(): number {\r\n if (this.bitCount === 0) {\r\n if (this.byteOffset >= this.endOffset) {\r\n throw new Error(\"zlib: unexpected end of input\");\r\n }\r\n this.bitBuffer = this.input[this.byteOffset++];\r\n this.bitCount = 8;\r\n }\r\n const bit = this.bitBuffer & 1;\r\n this.bitBuffer >>>= 1;\r\n this.bitCount--;\r\n return bit;\r\n }\r\n\r\n public alignToByte(): void {\r\n this.bitBuffer = 0;\r\n this.bitCount = 0;\r\n }\r\n\r\n public readUint16LE(): number {\r\n this.ensureByteAligned();\r\n if (this.byteOffset + 2 > this.endOffset) {\r\n throw new Error(\"zlib: unexpected end of input\");\r\n }\r\n const value = this.input[this.byteOffset] | (this.input[this.byteOffset + 1] << 8);\r\n this.byteOffset += 2;\r\n return value;\r\n }\r\n\r\n public readByte(): number {\r\n this.ensureByteAligned();\r\n if (this.byteOffset >= this.endOffset) {\r\n throw new Error(\"zlib: unexpected end of input\");\r\n }\r\n return this.input[this.byteOffset++];\r\n }\r\n\r\n private ensureByteAligned(): void {\r\n if (this.bitCount !== 0) {\r\n throw new Error(\"deflate: expected byte alignment\");\r\n }\r\n }\r\n\r\n private ensureBits(count: number): void {\r\n while (this.bitCount < count) {\r\n if (this.byteOffset >= this.endOffset) {\r\n throw new Error(\"zlib: unexpected end of input\");\r\n }\r\n this.bitBuffer |= this.input[this.byteOffset++] << this.bitCount;\r\n this.bitCount += 8;\r\n }\r\n }\r\n}\r\n\r\nclass OutputWriter {\r\n private offset = 0;\r\n private adlerA = 1;\r\n private adlerB = 0;\r\n\r\n public readonly bytes: Uint8Array;\r\n\r\n public constructor(expectedLength: number) {\r\n this.bytes = new Uint8Array(expectedLength);\r\n }\r\n\r\n public writeByte(value: number): void {\r\n if (this.offset >= this.bytes.byteLength) {\r\n throw new Error(\"zlib: output length mismatch\");\r\n }\r\n const byte = value & 0xff;\r\n this.bytes[this.offset++] = byte;\r\n this.adlerA += byte;\r\n this.adlerB += this.adlerA;\r\n this.adlerA %= ADLER_MOD;\r\n this.adlerB %= ADLER_MOD;\r\n }\r\n\r\n public copy(distance: number, length: number): void {\r\n if (distance <= 0 || distance > this.offset) {\r\n throw new Error(\"deflate: distance out of range\");\r\n }\r\n for (let i = 0; i < length; i++) {\r\n this.writeByte(this.bytes[this.offset - distance]);\r\n }\r\n }\r\n\r\n public finish(): void {\r\n if (this.offset !== this.bytes.byteLength) {\r\n throw new Error(\"zlib: output length mismatch\");\r\n }\r\n }\r\n\r\n public adler32(): number {\r\n return ((this.adlerB << 16) | this.adlerA) >>> 0;\r\n }\r\n}\r\n\r\nclass HuffmanTree {\r\n private readonly symbolsByLength: Array<Int16Array | undefined>;\r\n private readonly maxCodeLength: number;\r\n\r\n public constructor(codeLengths: readonly number[], options: { allowEmpty?: boolean } = {}) {\r\n const counts = new Array<number>(MAX_BITS + 1).fill(0);\r\n let nonZeroCount = 0;\r\n let maxCodeLength = 0;\r\n\r\n for (const length of codeLengths) {\r\n if (!Number.isInteger(length) || length < 0 || length > MAX_BITS) {\r\n throw new Error(\"deflate: invalid huffman code lengths\");\r\n }\r\n if (length > 0) {\r\n counts[length]++;\r\n nonZeroCount++;\r\n maxCodeLength = Math.max(maxCodeLength, length);\r\n }\r\n }\r\n\r\n if (nonZeroCount === 0) {\r\n if (options.allowEmpty) {\r\n this.symbolsByLength = [];\r\n this.maxCodeLength = 0;\r\n return;\r\n }\r\n throw new Error(\"deflate: invalid huffman code lengths\");\r\n }\r\n\r\n let remaining = 1;\r\n for (let bits = 1; bits <= MAX_BITS; bits++) {\r\n remaining = (remaining << 1) - counts[bits];\r\n if (remaining < 0) {\r\n throw new Error(\"deflate: invalid huffman code lengths\");\r\n }\r\n }\r\n if (remaining !== 0 && nonZeroCount !== 1) {\r\n throw new Error(\"deflate: invalid huffman code lengths\");\r\n }\r\n\r\n const nextCode = new Array<number>(MAX_BITS + 1).fill(0);\r\n let code = 0;\r\n for (let bits = 1; bits <= MAX_BITS; bits++) {\r\n code = (code + counts[bits - 1]) << 1;\r\n nextCode[bits] = code;\r\n }\r\n\r\n this.symbolsByLength = Array.from({ length: MAX_BITS + 1 }, (_, length) => {\r\n if (counts[length] === 0) {\r\n return undefined;\r\n }\r\n const symbols = new Int16Array(1 << length);\r\n symbols.fill(-1);\r\n return symbols;\r\n });\r\n for (let symbol = 0; symbol < codeLengths.length; symbol++) {\r\n const length = codeLengths[symbol];\r\n if (length === 0) {\r\n continue;\r\n }\r\n this.symbolsByLength[length]![nextCode[length]++] = symbol;\r\n }\r\n this.maxCodeLength = maxCodeLength;\r\n }\r\n\r\n public decode(reader: BitReader): number {\r\n if (this.maxCodeLength === 0) {\r\n throw new Error(\"deflate: invalid huffman code\");\r\n }\r\n\r\n let code = 0;\r\n for (let length = 1; length <= this.maxCodeLength; length++) {\r\n code = (code << 1) | reader.readBit();\r\n const symbol = this.symbolsByLength[length]?.[code] ?? -1;\r\n if (symbol >= 0) {\r\n return symbol;\r\n }\r\n }\r\n throw new Error(\"deflate: invalid huffman code\");\r\n }\r\n}\r\n\r\nlet fixedLiteralLengthTree: HuffmanTree | undefined;\r\nlet fixedDistanceTree: HuffmanTree | undefined;\r\n\r\nfunction getFixedLiteralLengthTree(): HuffmanTree {\r\n if (!fixedLiteralLengthTree) {\r\n const lengths = new Array<number>(288);\r\n for (let symbol = 0; symbol <= 143; symbol++) {\r\n lengths[symbol] = 8;\r\n }\r\n for (let symbol = 144; symbol <= 255; symbol++) {\r\n lengths[symbol] = 9;\r\n }\r\n for (let symbol = 256; symbol <= 279; symbol++) {\r\n lengths[symbol] = 7;\r\n }\r\n for (let symbol = 280; symbol <= 287; symbol++) {\r\n lengths[symbol] = 8;\r\n }\r\n fixedLiteralLengthTree = new HuffmanTree(lengths);\r\n }\r\n return fixedLiteralLengthTree;\r\n}\r\n\r\nfunction getFixedDistanceTree(): HuffmanTree {\r\n if (!fixedDistanceTree) {\r\n fixedDistanceTree = new HuffmanTree(new Array<number>(32).fill(5));\r\n }\r\n return fixedDistanceTree;\r\n}\r\n\r\nfunction inflateStoredBlock(reader: BitReader, output: OutputWriter): void {\r\n reader.alignToByte();\r\n const length = reader.readUint16LE();\r\n const inverseLength = reader.readUint16LE();\r\n if (((length ^ inverseLength) & 0xffff) !== 0xffff) {\r\n throw new Error(\"deflate: invalid stored block length\");\r\n }\r\n\r\n for (let i = 0; i < length; i++) {\r\n output.writeByte(reader.readByte());\r\n }\r\n}\r\n\r\nfunction inflateCompressedBlock(reader: BitReader, output: OutputWriter, literalLengthTree: HuffmanTree, distanceTree: HuffmanTree): void {\r\n while (true) {\r\n const symbol = literalLengthTree.decode(reader);\r\n if (symbol < 256) {\r\n output.writeByte(symbol);\r\n continue;\r\n }\r\n if (symbol === 256) {\r\n return;\r\n }\r\n if (symbol > 285) {\r\n throw new Error(\"deflate: invalid literal/length symbol\");\r\n }\r\n\r\n const lengthIndex = symbol - 257;\r\n const length = LENGTH_BASE[lengthIndex] + reader.readBits(LENGTH_EXTRA_BITS[lengthIndex]);\r\n const distanceSymbol = distanceTree.decode(reader);\r\n if (distanceSymbol > 29) {\r\n throw new Error(\"deflate: invalid distance symbol\");\r\n }\r\n const distance = DISTANCE_BASE[distanceSymbol] + reader.readBits(DISTANCE_EXTRA_BITS[distanceSymbol]);\r\n output.copy(distance, length);\r\n }\r\n}\r\n\r\nfunction readDynamicTrees(reader: BitReader): {\r\n literalLengthTree: HuffmanTree;\r\n distanceTree: HuffmanTree;\r\n} {\r\n const literalLengthCount = reader.readBits(5) + 257;\r\n const distanceCount = reader.readBits(5) + 1;\r\n const codeLengthCount = reader.readBits(4) + 4;\r\n\r\n const codeLengthLengths = new Array<number>(19).fill(0);\r\n for (let i = 0; i < codeLengthCount; i++) {\r\n codeLengthLengths[CODE_LENGTH_ORDER[i]] = reader.readBits(3);\r\n }\r\n\r\n const codeLengthTree = new HuffmanTree(codeLengthLengths);\r\n const lengths = readCodeLengths(reader, codeLengthTree, literalLengthCount + distanceCount);\r\n const literalLengthLengths = lengths.slice(0, literalLengthCount);\r\n const distanceLengths = lengths.slice(literalLengthCount);\r\n\r\n if (literalLengthLengths[256] === 0) {\r\n throw new Error(\"deflate: missing end-of-block code\");\r\n }\r\n\r\n return {\r\n literalLengthTree: new HuffmanTree(literalLengthLengths),\r\n distanceTree: new HuffmanTree(distanceLengths, { allowEmpty: true }),\r\n };\r\n}\r\n\r\nfunction readCodeLengths(reader: BitReader, codeLengthTree: HuffmanTree, count: number): number[] {\r\n const lengths: number[] = [];\r\n while (lengths.length < count) {\r\n const symbol = codeLengthTree.decode(reader);\r\n if (symbol <= 15) {\r\n lengths.push(symbol);\r\n continue;\r\n }\r\n\r\n let repeatLength: number;\r\n let repeatedValue: number;\r\n switch (symbol) {\r\n case 16:\r\n if (lengths.length === 0) {\r\n throw new Error(\"deflate: invalid code length repeat\");\r\n }\r\n repeatedValue = lengths[lengths.length - 1];\r\n repeatLength = reader.readBits(2) + 3;\r\n break;\r\n case 17:\r\n repeatedValue = 0;\r\n repeatLength = reader.readBits(3) + 3;\r\n break;\r\n case 18:\r\n repeatedValue = 0;\r\n repeatLength = reader.readBits(7) + 11;\r\n break;\r\n default:\r\n throw new Error(\"deflate: invalid code length symbol\");\r\n }\r\n\r\n if (lengths.length + repeatLength > count) {\r\n throw new Error(\"deflate: invalid code length repeat\");\r\n }\r\n for (let i = 0; i < repeatLength; i++) {\r\n lengths.push(repeatedValue);\r\n }\r\n }\r\n return lengths;\r\n}\r\n"]}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Intermediate representation for parsed FBX data.
3
+ * Both binary and ASCII parsers produce this same structure.
4
+ */
5
+ /** Individual property value within an FBX node */
6
+ export type FBXPropertyValue = boolean | number | string | Float32Array | Float64Array | Int32Array | Uint8Array;
7
+ /** Parsed FBX property type identifier. */
8
+ export type FBXPropertyType = "boolean" | "int16" | "int32" | "int64" | "float32" | "float64" | "string" | "raw" | "float32[]" | "float64[]" | "int32[]" | "int64[]" | "boolean[]";
9
+ /** Individual property within an FBX node. */
10
+ export interface FBXProperty {
11
+ /** Parsed property type. */
12
+ type: FBXPropertyType;
13
+ /** Parsed property value. */
14
+ value: FBXPropertyValue;
15
+ }
16
+ /** A node in the FBX document tree */
17
+ export interface FBXNode {
18
+ /** Node name. */
19
+ name: string;
20
+ /** Node properties. */
21
+ properties: FBXProperty[];
22
+ /** Child nodes. */
23
+ children: FBXNode[];
24
+ }
25
+ /** Top-level parsed FBX document */
26
+ export interface FBXDocument {
27
+ /** FBX file version. */
28
+ version: number;
29
+ /** Top-level document nodes. */
30
+ nodes: FBXNode[];
31
+ }
32
+ /** Helper to find a child node by name */
33
+ export declare function findChildByName(node: FBXNode, name: string): FBXNode | undefined;
34
+ /** Helper to find all children with a given name */
35
+ export declare function findChildrenByName(node: FBXNode, name: string): FBXNode[];
36
+ /** Helper to find a top-level node in a document */
37
+ export declare function findDocumentNode(doc: FBXDocument, name: string): FBXNode | undefined;
38
+ /** Extract a property value by index, with type narrowing */
39
+ export declare function getPropertyValue<T extends FBXPropertyValue>(node: FBXNode, index: number): T | undefined;
40
+ /**
41
+ * Converts an FBX object ID value to a safe JavaScript number.
42
+ * @param value - Parsed FBX object ID value
43
+ * @returns The object ID, or undefined when the value is not numeric
44
+ */
45
+ export declare function getSafeFBXObjectId(value: unknown): number | undefined;
46
+ /** Get the numeric ID from a node (first property is typically the int64 UID) */
47
+ export declare function getNodeId(node: FBXNode): number | undefined;
48
+ /**
49
+ * Clean FBX object names.
50
+ * FBX names may contain:
51
+ * - A "Class::" prefix (e.g. "Model::valkyrie_mesh") — strip it
52
+ * - A binary null/control-character class suffix — strip it
53
+ */
54
+ export declare function cleanFBXName(fbxName: string): string;
@@ -0,0 +1,66 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention, jsdoc/require-param, jsdoc/require-returns */
2
+ /**
3
+ * Intermediate representation for parsed FBX data.
4
+ * Both binary and ASCII parsers produce this same structure.
5
+ */
6
+ /** Helper to find a child node by name */
7
+ export function findChildByName(node, name) {
8
+ return node.children.find((c) => c.name === name);
9
+ }
10
+ /** Helper to find all children with a given name */
11
+ export function findChildrenByName(node, name) {
12
+ return node.children.filter((c) => c.name === name);
13
+ }
14
+ /** Helper to find a top-level node in a document */
15
+ export function findDocumentNode(doc, name) {
16
+ return doc.nodes.find((n) => n.name === name);
17
+ }
18
+ /** Extract a property value by index, with type narrowing */
19
+ export function getPropertyValue(node, index) {
20
+ if (index < node.properties.length) {
21
+ return node.properties[index].value;
22
+ }
23
+ return undefined;
24
+ }
25
+ /**
26
+ * Converts an FBX object ID value to a safe JavaScript number.
27
+ * @param value - Parsed FBX object ID value
28
+ * @returns The object ID, or undefined when the value is not numeric
29
+ */
30
+ export function getSafeFBXObjectId(value) {
31
+ if (typeof value !== "number") {
32
+ return undefined;
33
+ }
34
+ if (!Number.isSafeInteger(value)) {
35
+ throw new Error(`Unsafe FBX object ID ${value.toString()}: object IDs must be safe integers.`);
36
+ }
37
+ return value;
38
+ }
39
+ /** Get the numeric ID from a node (first property is typically the int64 UID) */
40
+ export function getNodeId(node) {
41
+ const prop = node.properties[0];
42
+ if (prop && (prop.type === "int64" || prop.type === "int32")) {
43
+ return getSafeFBXObjectId(prop.value);
44
+ }
45
+ return undefined;
46
+ }
47
+ /**
48
+ * Clean FBX object names.
49
+ * FBX names may contain:
50
+ * - A "Class::" prefix (e.g. "Model::valkyrie_mesh") — strip it
51
+ * - A binary null/control-character class suffix — strip it
52
+ */
53
+ export function cleanFBXName(fbxName) {
54
+ // Strip \x00\x01 suffix (binary FBX name/class separator)
55
+ const nullIdx = fbxName.indexOf("\0");
56
+ if (nullIdx >= 0) {
57
+ fbxName = fbxName.substring(0, nullIdx);
58
+ }
59
+ // Strip "ClassName::" prefix (ASCII FBX)
60
+ const colonIdx = fbxName.indexOf("::");
61
+ if (colonIdx >= 0) {
62
+ fbxName = fbxName.substring(colonIdx + 2);
63
+ }
64
+ return fbxName;
65
+ }
66
+ //# sourceMappingURL=fbxTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fbxTypes.js","sourceRoot":"","sources":["../../../../../dev/loaders/src/FBX/types/fbxTypes.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG;;;GAGG;AA+CH,0CAA0C;AAC1C,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,IAAY;IACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,kBAAkB,CAAC,IAAa,EAAE,IAAY;IAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,gBAAgB,CAAC,GAAgB,EAAE,IAAY;IAC3D,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,gBAAgB,CAA6B,IAAa,EAAE,KAAa;IACrF,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAU,CAAC;IAC7C,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,IAAa;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;QAC3D,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,0DAA0D;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,yCAAyC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention, jsdoc/require-param, jsdoc/require-returns */\r\n/**\r\n * Intermediate representation for parsed FBX data.\r\n * Both binary and ASCII parsers produce this same structure.\r\n */\r\n\r\n/** Individual property value within an FBX node */\r\nexport type FBXPropertyValue = boolean | number | string | Float32Array | Float64Array | Int32Array | Uint8Array;\r\n\r\n/** Parsed FBX property type identifier. */\r\nexport type FBXPropertyType =\r\n | \"boolean\" // 'C'\r\n | \"int16\" // 'Y'\r\n | \"int32\" // 'I'\r\n | \"int64\" // 'L'\r\n | \"float32\" // 'F'\r\n | \"float64\" // 'D'\r\n | \"string\" // 'S'\r\n | \"raw\" // 'R'\r\n | \"float32[]\" // 'f'\r\n | \"float64[]\" // 'd'\r\n | \"int32[]\" // 'i'\r\n | \"int64[]\" // 'l'\r\n | \"boolean[]\"; // 'b' (stored as Uint8Array where 0=false, 1=true)\r\n\r\n/** Individual property within an FBX node. */\r\nexport interface FBXProperty {\r\n /** Parsed property type. */\r\n type: FBXPropertyType;\r\n /** Parsed property value. */\r\n value: FBXPropertyValue;\r\n}\r\n\r\n/** A node in the FBX document tree */\r\nexport interface FBXNode {\r\n /** Node name. */\r\n name: string;\r\n /** Node properties. */\r\n properties: FBXProperty[];\r\n /** Child nodes. */\r\n children: FBXNode[];\r\n}\r\n\r\n/** Top-level parsed FBX document */\r\nexport interface FBXDocument {\r\n /** FBX file version. */\r\n version: number;\r\n /** Top-level document nodes. */\r\n nodes: FBXNode[];\r\n}\r\n\r\n/** Helper to find a child node by name */\r\nexport function findChildByName(node: FBXNode, name: string): FBXNode | undefined {\r\n return node.children.find((c) => c.name === name);\r\n}\r\n\r\n/** Helper to find all children with a given name */\r\nexport function findChildrenByName(node: FBXNode, name: string): FBXNode[] {\r\n return node.children.filter((c) => c.name === name);\r\n}\r\n\r\n/** Helper to find a top-level node in a document */\r\nexport function findDocumentNode(doc: FBXDocument, name: string): FBXNode | undefined {\r\n return doc.nodes.find((n) => n.name === name);\r\n}\r\n\r\n/** Extract a property value by index, with type narrowing */\r\nexport function getPropertyValue<T extends FBXPropertyValue>(node: FBXNode, index: number): T | undefined {\r\n if (index < node.properties.length) {\r\n return node.properties[index].value as T;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Converts an FBX object ID value to a safe JavaScript number.\r\n * @param value - Parsed FBX object ID value\r\n * @returns The object ID, or undefined when the value is not numeric\r\n */\r\nexport function getSafeFBXObjectId(value: unknown): number | undefined {\r\n if (typeof value !== \"number\") {\r\n return undefined;\r\n }\r\n if (!Number.isSafeInteger(value)) {\r\n throw new Error(`Unsafe FBX object ID ${value.toString()}: object IDs must be safe integers.`);\r\n }\r\n return value;\r\n}\r\n\r\n/** Get the numeric ID from a node (first property is typically the int64 UID) */\r\nexport function getNodeId(node: FBXNode): number | undefined {\r\n const prop = node.properties[0];\r\n if (prop && (prop.type === \"int64\" || prop.type === \"int32\")) {\r\n return getSafeFBXObjectId(prop.value);\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Clean FBX object names.\r\n * FBX names may contain:\r\n * - A \"Class::\" prefix (e.g. \"Model::valkyrie_mesh\") — strip it\r\n * - A binary null/control-character class suffix — strip it\r\n */\r\nexport function cleanFBXName(fbxName: string): string {\r\n // Strip \\x00\\x01 suffix (binary FBX name/class separator)\r\n const nullIdx = fbxName.indexOf(\"\\0\");\r\n if (nullIdx >= 0) {\r\n fbxName = fbxName.substring(0, nullIdx);\r\n }\r\n\r\n // Strip \"ClassName::\" prefix (ASCII FBX)\r\n const colonIdx = fbxName.indexOf(\"::\");\r\n if (colonIdx >= 0) {\r\n fbxName = fbxName.substring(colonIdx + 2);\r\n }\r\n\r\n return fbxName;\r\n}\r\n"]}
package/dynamic.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/naming-convention */
2
2
  import { RegisterSceneLoaderPlugin } from "@onerjs/core/Loading/sceneLoader.js";
3
3
  import { BVHFileLoaderMetadata } from "./BVH/bvhFileLoader.metadata.js";
4
+ import { FBXFileLoaderMetadata } from "./FBX/fbxFileLoader.metadata.js";
4
5
  import { GLTFFileLoaderMetadata } from "./glTF/glTFFileLoader.metadata.js";
5
6
  import { OBJFileLoaderMetadata } from "./OBJ/objFileLoader.metadata.js";
6
7
  import { SPLATFileLoaderMetadata } from "./SPLAT/splatFileLoader.metadata.js";
@@ -19,6 +20,14 @@ export function registerBuiltInLoaders() {
19
20
  return new BVHFileLoader(options[BVHFileLoaderMetadata.name]);
20
21
  },
21
22
  });
23
+ // Register the FBX loader.
24
+ RegisterSceneLoaderPlugin({
25
+ ...FBXFileLoaderMetadata,
26
+ createPlugin: async (options) => {
27
+ const { FBXFileLoader } = await import("./FBX/fbxFileLoader.js");
28
+ return new FBXFileLoader(options[FBXFileLoaderMetadata.name]);
29
+ },
30
+ });
22
31
  // Register the glTF loader (2.0) specifically/only.
23
32
  RegisterSceneLoaderPlugin({
24
33
  ...GLTFFileLoaderMetadata,
package/dynamic.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../../dev/loaders/src/dynamic.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,EAAiE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAEpI,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE9E;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IAClC,2BAA2B;IAC3B,yBAAyB,CAAC;QACtB,GAAG,qBAAqB;QACxB,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC9D,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;KACgC,CAAC,CAAC;IAEvC,oDAAoD;IACpD,yBAAyB,CAAC;QACtB,GAAG,sBAAsB;QACzB,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACjE,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,CAAC;KACgC,CAAC,CAAC;IAEvC,+CAA+C;IAC/C,6BAA6B,EAAE,CAAC;IAEhC,2BAA2B;IAC3B,yBAAyB,CAAC;QACtB,GAAG,qBAAqB;QACxB,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC9D,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;KACgC,CAAC,CAAC;IAEvC,6BAA6B;IAC7B,yBAAyB,CAAC;QACtB,GAAG,uBAAuB;QAC1B,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACpE,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;KACgC,CAAC,CAAC;IAEvC,2BAA2B;IAC3B,yBAAyB,CAAC;QACtB,GAAG,qBAAqB;QACxB,YAAY,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC9D,OAAO,IAAI,aAAa,EAAE,CAAC;QAC/B,CAAC;KACgC,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\nimport { type ISceneLoaderPluginFactory, type SceneLoaderPluginOptions, RegisterSceneLoaderPlugin } from \"core/Loading/sceneLoader\";\r\n\r\nimport { BVHFileLoaderMetadata } from \"./BVH/bvhFileLoader.metadata\";\r\nimport { GLTFFileLoaderMetadata } from \"./glTF/glTFFileLoader.metadata\";\r\nimport { OBJFileLoaderMetadata } from \"./OBJ/objFileLoader.metadata\";\r\nimport { SPLATFileLoaderMetadata } from \"./SPLAT/splatFileLoader.metadata\";\r\nimport { STLFileLoaderMetadata } from \"./STL/stlFileLoader.metadata\";\r\n\r\nimport { registerBuiltInGLTFExtensions } from \"./glTF/2.0/Extensions/dynamic\";\r\n\r\n/**\r\n * Registers the async plugin factories for all built-in loaders.\r\n * Loaders will be dynamically imported on demand, only when a SceneLoader load operation needs each respective loader.\r\n */\r\nexport function registerBuiltInLoaders() {\r\n // Register the BVH loader.\r\n RegisterSceneLoaderPlugin({\r\n ...BVHFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { BVHFileLoader } = await import(\"./BVH/bvhFileLoader\");\r\n return new BVHFileLoader(options[BVHFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the glTF loader (2.0) specifically/only.\r\n RegisterSceneLoaderPlugin({\r\n ...GLTFFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { GLTFFileLoader } = await import(\"./glTF/2.0/glTFLoader\");\r\n return new GLTFFileLoader(options[GLTFFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the built-in glTF (2.0) extensions.\r\n registerBuiltInGLTFExtensions();\r\n\r\n // Register the OBJ loader.\r\n RegisterSceneLoaderPlugin({\r\n ...OBJFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { OBJFileLoader } = await import(\"./OBJ/objFileLoader\");\r\n return new OBJFileLoader(options[OBJFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the SPLAT loader.\r\n RegisterSceneLoaderPlugin({\r\n ...SPLATFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { SPLATFileLoader } = await import(\"./SPLAT/splatFileLoader\");\r\n return new SPLATFileLoader(options[SPLATFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the STL loader.\r\n RegisterSceneLoaderPlugin({\r\n ...STLFileLoaderMetadata,\r\n createPlugin: async () => {\r\n const { STLFileLoader } = await import(\"./STL/stlFileLoader\");\r\n return new STLFileLoader();\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n}\r\n"]}
1
+ {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../../dev/loaders/src/dynamic.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,EAAiE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAEpI,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE9E;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IAClC,2BAA2B;IAC3B,yBAAyB,CAAC;QACtB,GAAG,qBAAqB;QACxB,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC9D,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;KACgC,CAAC,CAAC;IAEvC,2BAA2B;IAC3B,yBAAyB,CAAC;QACtB,GAAG,qBAAqB;QACxB,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC9D,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;KACgC,CAAC,CAAC;IAEvC,oDAAoD;IACpD,yBAAyB,CAAC;QACtB,GAAG,sBAAsB;QACzB,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACjE,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,CAAC;KACgC,CAAC,CAAC;IAEvC,+CAA+C;IAC/C,6BAA6B,EAAE,CAAC;IAEhC,2BAA2B;IAC3B,yBAAyB,CAAC;QACtB,GAAG,qBAAqB;QACxB,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC9D,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;KACgC,CAAC,CAAC;IAEvC,6BAA6B;IAC7B,yBAAyB,CAAC;QACtB,GAAG,uBAAuB;QAC1B,YAAY,EAAE,KAAK,EAAE,OAAiC,EAAE,EAAE;YACtD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACpE,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;KACgC,CAAC,CAAC;IAEvC,2BAA2B;IAC3B,yBAAyB,CAAC;QACtB,GAAG,qBAAqB;QACxB,YAAY,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC9D,OAAO,IAAI,aAAa,EAAE,CAAC;QAC/B,CAAC;KACgC,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\n\r\nimport { type ISceneLoaderPluginFactory, type SceneLoaderPluginOptions, RegisterSceneLoaderPlugin } from \"core/Loading/sceneLoader\";\r\n\r\nimport { BVHFileLoaderMetadata } from \"./BVH/bvhFileLoader.metadata\";\r\nimport { FBXFileLoaderMetadata } from \"./FBX/fbxFileLoader.metadata\";\r\nimport { GLTFFileLoaderMetadata } from \"./glTF/glTFFileLoader.metadata\";\r\nimport { OBJFileLoaderMetadata } from \"./OBJ/objFileLoader.metadata\";\r\nimport { SPLATFileLoaderMetadata } from \"./SPLAT/splatFileLoader.metadata\";\r\nimport { STLFileLoaderMetadata } from \"./STL/stlFileLoader.metadata\";\r\n\r\nimport { registerBuiltInGLTFExtensions } from \"./glTF/2.0/Extensions/dynamic\";\r\n\r\n/**\r\n * Registers the async plugin factories for all built-in loaders.\r\n * Loaders will be dynamically imported on demand, only when a SceneLoader load operation needs each respective loader.\r\n */\r\nexport function registerBuiltInLoaders() {\r\n // Register the BVH loader.\r\n RegisterSceneLoaderPlugin({\r\n ...BVHFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { BVHFileLoader } = await import(\"./BVH/bvhFileLoader\");\r\n return new BVHFileLoader(options[BVHFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the FBX loader.\r\n RegisterSceneLoaderPlugin({\r\n ...FBXFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { FBXFileLoader } = await import(\"./FBX/fbxFileLoader\");\r\n return new FBXFileLoader(options[FBXFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the glTF loader (2.0) specifically/only.\r\n RegisterSceneLoaderPlugin({\r\n ...GLTFFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { GLTFFileLoader } = await import(\"./glTF/2.0/glTFLoader\");\r\n return new GLTFFileLoader(options[GLTFFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the built-in glTF (2.0) extensions.\r\n registerBuiltInGLTFExtensions();\r\n\r\n // Register the OBJ loader.\r\n RegisterSceneLoaderPlugin({\r\n ...OBJFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { OBJFileLoader } = await import(\"./OBJ/objFileLoader\");\r\n return new OBJFileLoader(options[OBJFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the SPLAT loader.\r\n RegisterSceneLoaderPlugin({\r\n ...SPLATFileLoaderMetadata,\r\n createPlugin: async (options: SceneLoaderPluginOptions) => {\r\n const { SPLATFileLoader } = await import(\"./SPLAT/splatFileLoader\");\r\n return new SPLATFileLoader(options[SPLATFileLoaderMetadata.name]);\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n\r\n // Register the STL loader.\r\n RegisterSceneLoaderPlugin({\r\n ...STLFileLoaderMetadata,\r\n createPlugin: async () => {\r\n const { STLFileLoader } = await import(\"./STL/stlFileLoader\");\r\n return new STLFileLoader();\r\n },\r\n } satisfies ISceneLoaderPluginFactory);\r\n}\r\n"]}
package/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./BVH/index.js";
2
+ export * from "./FBX/index.js";
2
3
  export * from "./glTF/index.js";
3
4
  export * from "./OBJ/index.js";
4
5
  export * from "./STL/index.js";
package/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-restricted-imports */
2
2
  export * from "./BVH/index.js";
3
+ export * from "./FBX/index.js";
3
4
  export * from "./glTF/index.js";
4
5
  export * from "./OBJ/index.js";
5
6
  export * from "./STL/index.js";
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../dev/loaders/src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,cAAc,WAAW,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nexport * from \"./BVH/index\";\r\nexport * from \"./glTF/index\";\r\nexport * from \"./OBJ/index\";\r\nexport * from \"./STL/index\";\r\nexport * from \"./SPLAT/index\";\r\n\r\nexport * from \"./dynamic\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../dev/loaders/src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,cAAc,WAAW,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nexport * from \"./BVH/index\";\r\nexport * from \"./FBX/index\";\r\nexport * from \"./glTF/index\";\r\nexport * from \"./OBJ/index\";\r\nexport * from \"./STL/index\";\r\nexport * from \"./SPLAT/index\";\r\n\r\nexport * from \"./dynamic\";\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onerjs/loaders",
3
- "version": "8.53.1",
3
+ "version": "8.53.3",
4
4
  "main": "index.js",
5
5
  "module": "index.js",
6
6
  "types": "index.d.ts",
@@ -18,10 +18,10 @@
18
18
  "postcompile": "build-tools -c add-js-to-es6"
19
19
  },
20
20
  "devDependencies": {
21
- "@onerjs/core": "8.53.1",
21
+ "@onerjs/core": "8.53.3",
22
22
  "@dev/build-tools": "^1.0.0",
23
23
  "@dev/loaders": "^1.0.0",
24
- "babylonjs-gltf2interface": "^8.53.1"
24
+ "babylonjs-gltf2interface": "^8.53.3"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "@onerjs/core": "^8.0.0",