@loaders.gl/scene 5.0.0-beta.2 → 5.0.0-beta.5
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/DRACO-README.md +1 -1
- package/GLTF-README.md +1 -1
- package/OBJ-README.md +1 -1
- package/README.md +6 -1
- package/THIRD-PARTY-NOTICES.md +6 -0
- package/dist/dist.dev.js +6557 -1363
- package/dist/dist.min.js +24 -16
- package/dist/draco/draco-javascript-loader-with-parser.d.ts +2 -2
- package/dist/draco/draco-loader-types.cjs +3 -3
- package/dist/draco/draco-loader-types.cjs.map +2 -2
- package/dist/draco/draco-loader-types.d.ts +1 -1
- package/dist/draco/draco-loader-types.d.ts.map +1 -1
- package/dist/draco/draco-loader-types.js +1 -1
- package/dist/draco/draco-loader-types.js.map +1 -1
- package/dist/draco/draco-loader.d.ts +2 -2
- package/dist/draco/draco-wasm-loader-with-parser.d.ts +2 -2
- package/dist/draco/draco3d-loader-with-parser.d.ts +2 -2
- package/dist/draco/lib/utils/version.cjs +1 -1
- package/dist/draco/lib/utils/version.js +1 -1
- package/dist/draco-worker-node.js +806 -158
- package/dist/draco-worker-node.js.map +4 -4
- package/dist/draco-worker.js +775 -158
- package/dist/draco-worker.js.map +4 -4
- package/dist/draco-writer-worker-node.cjs +2122 -219
- package/dist/draco-writer-worker-node.cjs.map +4 -4
- package/dist/draco-writer-worker.js +2053 -220
- package/dist/draco-writer-worker.js.map +4 -4
- package/dist/gltf/gltf-loader-types.cjs.map +2 -2
- package/dist/gltf/gltf-loader-types.d.ts +6 -0
- package/dist/gltf/gltf-loader-types.d.ts.map +1 -1
- package/dist/gltf/gltf-loader-types.js.map +1 -1
- package/dist/gltf/index.cjs +2 -0
- package/dist/gltf/index.cjs.map +2 -2
- package/dist/gltf/index.d.ts +2 -2
- package/dist/gltf/index.d.ts.map +1 -1
- package/dist/gltf/index.js +1 -1
- package/dist/gltf/index.js.map +1 -1
- package/dist/gltf/lib/api/gltf-extensions.cjs +7 -2
- package/dist/gltf/lib/api/gltf-extensions.cjs.map +2 -2
- package/dist/gltf/lib/api/gltf-extensions.d.ts.map +1 -1
- package/dist/gltf/lib/api/gltf-extensions.js +7 -5
- package/dist/gltf/lib/api/gltf-extensions.js.map +1 -1
- package/dist/gltf/lib/extensions/EXT_texture_webp.cjs +1 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.cjs.map +2 -2
- package/dist/gltf/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/EXT_texture_webp.js +3 -0
- package/dist/gltf/lib/extensions/EXT_texture_webp.js.map +1 -1
- package/dist/gltf/lib/extensions/KHR_accessor_float64.cjs +45 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.cjs.map +7 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.d.ts +6 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.js +20 -0
- package/dist/gltf/lib/extensions/KHR_accessor_float64.js.map +1 -0
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs +23 -7
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.cjs.map +2 -2
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts +2 -1
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js +21 -5
- package/dist/gltf/lib/extensions/KHR_gaussian_splatting.js.map +1 -1
- package/dist/gltf/lib/extensions/MSFT_texture_dds.cjs +64 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.cjs.map +7 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.d.ts +12 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.d.ts.map +1 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.js +39 -0
- package/dist/gltf/lib/extensions/MSFT_texture_dds.js.map +1 -0
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs +1 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.cjs.map +2 -2
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js +3 -1
- package/dist/gltf/lib/extensions/utils/3d-tiles-utils.js.map +1 -1
- package/dist/gltf/lib/parsers/parse-gltf.cjs +25 -0
- package/dist/gltf/lib/parsers/parse-gltf.cjs.map +2 -2
- package/dist/gltf/lib/parsers/parse-gltf.d.ts +2 -0
- package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -1
- package/dist/gltf/lib/parsers/parse-gltf.js +18 -0
- package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs +22 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.cjs.map +2 -2
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts +23 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.js +22 -0
- package/dist/gltf/lib/types/gltf-additional-extension-schemas.js.map +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.cjs.map +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts +1 -1
- package/dist/gltf/lib/types/gltf-ext-gaussian-splatting-schema.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-extension-schemas.cjs +8 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.cjs.map +2 -2
- package/dist/gltf/lib/types/gltf-extension-schemas.d.ts +27 -0
- package/dist/gltf/lib/types/gltf-extension-schemas.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-extension-schemas.js +8 -1
- package/dist/gltf/lib/types/gltf-extension-schemas.js.map +1 -1
- package/dist/gltf/lib/types/gltf-json-schema.cjs.map +1 -1
- package/dist/gltf/lib/types/gltf-json-schema.d.ts +2 -2
- package/dist/gltf/lib/types/gltf-json-schema.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-texture-procedurals.cjs +19 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.cjs.map +7 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.d.ts +45 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.d.ts.map +1 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.js +5 -0
- package/dist/gltf/lib/types/gltf-texture-procedurals.js.map +1 -0
- package/dist/gltf/lib/types/gltf-types.cjs.map +1 -1
- package/dist/gltf/lib/types/gltf-types.d.ts +7 -0
- package/dist/gltf/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts +34 -0
- package/dist/gltf/lib/types/gltf-version-zod-schemas.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-zod-schema.cjs +4 -1
- package/dist/gltf/lib/types/gltf-zod-schema.cjs.map +2 -2
- package/dist/gltf/lib/types/gltf-zod-schema.d.ts +56 -0
- package/dist/gltf/lib/types/gltf-zod-schema.d.ts.map +1 -1
- package/dist/gltf/lib/types/gltf-zod-schema.js +6 -2
- package/dist/gltf/lib/types/gltf-zod-schema.js.map +1 -1
- package/dist/gltf/lib/utils/version.cjs +1 -1
- package/dist/gltf/lib/utils/version.js +1 -1
- package/dist/gltf/schema.cjs +3 -0
- package/dist/gltf/schema.cjs.map +2 -2
- package/dist/gltf/schema.d.ts +1 -0
- package/dist/gltf/schema.d.ts.map +1 -1
- package/dist/gltf/schema.js +1 -0
- package/dist/gltf/schema.js.map +1 -1
- package/dist/gltf-loader-types.cjs.map +2 -2
- package/dist/index.cjs +7 -1
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/materialx/parse-materialx.cjs +61 -0
- package/dist/materialx/parse-materialx.cjs.map +7 -0
- package/dist/materialx/parse-materialx.d.ts +23 -0
- package/dist/materialx/parse-materialx.d.ts.map +1 -0
- package/dist/materialx/parse-materialx.js +39 -0
- package/dist/materialx/parse-materialx.js.map +1 -0
- package/dist/materialx/procedural-graph.cjs +77 -0
- package/dist/materialx/procedural-graph.cjs.map +7 -0
- package/dist/materialx/procedural-graph.d.ts +40 -0
- package/dist/materialx/procedural-graph.d.ts.map +1 -0
- package/dist/materialx/procedural-graph.js +59 -0
- package/dist/materialx/procedural-graph.js.map +1 -0
- package/dist/materialx-loader-types.cjs +57 -0
- package/dist/materialx-loader-types.cjs.map +7 -0
- package/dist/materialx-loader-types.d.ts +34 -0
- package/dist/materialx-loader-types.d.ts.map +1 -0
- package/dist/materialx-loader-types.js +20 -0
- package/dist/materialx-loader-types.js.map +1 -0
- package/dist/materialx-loader.cjs +40 -0
- package/dist/materialx-loader.cjs.map +7 -0
- package/dist/materialx-loader.d.ts +19 -0
- package/dist/materialx-loader.d.ts.map +1 -0
- package/dist/materialx-loader.js +14 -0
- package/dist/materialx-loader.js.map +1 -0
- package/dist/mtl-loader-types.cjs +1 -1
- package/dist/obj/mtl-loader-types.cjs +1 -1
- package/dist/obj/mtl-loader-types.js +1 -1
- package/dist/obj/obj-loader-types.cjs +3 -3
- package/dist/obj/obj-loader-types.cjs.map +2 -2
- package/dist/obj/obj-loader-types.d.ts +1 -1
- package/dist/obj/obj-loader-types.d.ts.map +1 -1
- package/dist/obj/obj-loader-types.js +2 -2
- package/dist/obj/obj-loader-types.js.map +1 -1
- package/dist/obj/obj-loader.cjs +5 -5
- package/dist/obj/obj-loader.cjs.map +2 -2
- package/dist/obj/obj-loader.d.ts +1 -1
- package/dist/obj/obj-loader.d.ts.map +1 -1
- package/dist/obj/obj-loader.js +1 -1
- package/dist/obj/obj-loader.js.map +1 -1
- package/dist/obj/obj-writer.cjs +1 -1
- package/dist/obj/obj-writer.js +1 -1
- package/dist/obj-loader-types.cjs +3 -3
- package/dist/obj-loader-types.cjs.map +2 -2
- package/dist/obj-loader.cjs +5 -5
- package/dist/obj-loader.cjs.map +2 -2
- package/dist/obj-worker.js +985 -368
- package/dist/obj-writer.cjs +1 -1
- package/dist/stl/parse-stl.cjs +100 -0
- package/dist/stl/parse-stl.cjs.map +7 -0
- package/dist/stl/parse-stl.d.ts +4 -0
- package/dist/stl/parse-stl.d.ts.map +1 -0
- package/dist/stl/parse-stl.js +84 -0
- package/dist/stl/parse-stl.js.map +1 -0
- package/dist/stl-loader-types.cjs +58 -0
- package/dist/stl-loader-types.cjs.map +7 -0
- package/dist/stl-loader-types.d.ts +32 -0
- package/dist/stl-loader-types.d.ts.map +1 -0
- package/dist/stl-loader-types.js +25 -0
- package/dist/stl-loader-types.js.map +1 -0
- package/dist/stl-loader.cjs +38 -0
- package/dist/stl-loader.cjs.map +7 -0
- package/dist/stl-loader.d.ts +17 -0
- package/dist/stl-loader.d.ts.map +1 -0
- package/dist/stl-loader.js +13 -0
- package/dist/stl-loader.js.map +1 -0
- package/dist/usd/index.cjs.map +1 -1
- package/dist/usd/index.d.ts +1 -1
- package/dist/usd/index.d.ts.map +1 -1
- package/dist/usd/lib/parse-usd.cjs +42 -5
- package/dist/usd/lib/parse-usd.cjs.map +2 -2
- package/dist/usd/lib/parse-usd.d.ts.map +1 -1
- package/dist/usd/lib/parse-usd.js +53 -6
- package/dist/usd/lib/parse-usd.js.map +1 -1
- package/dist/usd/lib/parse-usdc.cjs +187 -0
- package/dist/usd/lib/parse-usdc.cjs.map +7 -0
- package/dist/usd/lib/parse-usdc.d.ts +4 -0
- package/dist/usd/lib/parse-usdc.d.ts.map +1 -0
- package/dist/usd/lib/parse-usdc.js +176 -0
- package/dist/usd/lib/parse-usdc.js.map +1 -0
- package/dist/usd/lib/parse-usdz.cjs +22 -0
- package/dist/usd/lib/parse-usdz.cjs.map +2 -2
- package/dist/usd/lib/parse-usdz.d.ts.map +1 -1
- package/dist/usd/lib/parse-usdz.js +26 -0
- package/dist/usd/lib/parse-usdz.js.map +1 -1
- package/dist/usd/lib/usd-types.cjs.map +1 -1
- package/dist/usd/lib/usd-types.d.ts +14 -1
- package/dist/usd/lib/usd-types.d.ts.map +1 -1
- package/dist/usd/lib/usd-types.js +1 -1
- package/dist/usd/lib/usd-types.js.map +1 -1
- package/dist/usd/libs/README.md +27 -0
- package/dist/usd/libs/THREE-LICENSE +21 -0
- package/dist/usd/libs/usdc-parser.d.ts +78 -0
- package/dist/usd/libs/usdc-parser.d.ts.map +1 -0
- package/dist/usd/libs/usdc-parser.js +1669 -0
- package/dist/usd/libs/usdc-parser.js.map +1 -0
- package/dist/usd/usd-loader-types.cjs +4 -4
- package/dist/usd/usd-loader-types.cjs.map +2 -2
- package/dist/usd/usd-loader-types.d.ts +7 -7
- package/dist/usd/usd-loader-types.d.ts.map +1 -1
- package/dist/usd/usd-loader-types.js +6 -6
- package/dist/usd/usd-loader-types.js.map +1 -1
- package/dist/usd/usd-loader.cjs.map +1 -1
- package/dist/usd/usd-loader.d.ts +4 -4
- package/dist/usd/usd-loader.d.ts.map +1 -1
- package/dist/usd/usd-loader.js +2 -2
- package/dist/usd/usd-loader.js.map +1 -1
- package/dist/usd-loader-types.cjs +4 -4
- package/dist/usd-loader-types.cjs.map +2 -2
- package/dist/usd-loader.cjs.map +1 -1
- package/package.json +19 -7
- package/src/draco/draco-loader-types.ts +1 -1
- package/src/gltf/gltf-loader-types.ts +6 -0
- package/src/gltf/index.ts +4 -1
- package/src/gltf/lib/api/gltf-extensions.ts +7 -2
- package/src/gltf/lib/extensions/EXT_texture_webp.ts +3 -0
- package/src/gltf/lib/extensions/KHR_accessor_float64.ts +22 -0
- package/src/gltf/lib/extensions/KHR_gaussian_splatting.ts +31 -7
- package/src/gltf/lib/extensions/MSFT_texture_dds.ts +52 -0
- package/src/gltf/lib/extensions/utils/3d-tiles-utils.ts +5 -1
- package/src/gltf/lib/parsers/parse-gltf.ts +31 -0
- package/src/gltf/lib/types/gltf-additional-extension-schemas.ts +32 -0
- package/src/gltf/lib/types/gltf-ext-gaussian-splatting-schema.ts +1 -1
- package/src/gltf/lib/types/gltf-extension-schemas.ts +12 -0
- package/src/gltf/lib/types/gltf-json-schema.ts +2 -1
- package/src/gltf/lib/types/gltf-texture-procedurals.ts +67 -0
- package/src/gltf/lib/types/gltf-types.ts +8 -0
- package/src/gltf/lib/types/gltf-zod-schema.ts +7 -1
- package/src/gltf/schema.ts +1 -0
- package/src/index.ts +6 -1
- package/src/materialx/README.md +5 -0
- package/src/materialx/parse-materialx.ts +70 -0
- package/src/materialx/procedural-graph.ts +94 -0
- package/src/materialx-loader-types.ts +24 -0
- package/src/materialx-loader.ts +15 -0
- package/src/obj/obj-loader-types.ts +1 -1
- package/src/obj/obj-loader.ts +1 -1
- package/src/stl/parse-stl.ts +90 -0
- package/src/stl-loader-types.ts +28 -0
- package/src/stl-loader.ts +12 -0
- package/src/usd/index.ts +1 -0
- package/src/usd/lib/parse-usd.ts +68 -7
- package/src/usd/lib/parse-usdc.ts +188 -0
- package/src/usd/lib/parse-usdz.ts +28 -0
- package/src/usd/lib/usd-types.ts +16 -2
- package/src/usd/libs/README.md +27 -0
- package/src/usd/libs/THREE-LICENSE +21 -0
- package/src/usd/libs/usdc-parser.d.ts +18 -0
- package/src/usd/libs/usdc-parser.js +1669 -0
- package/src/usd/usd-loader-types.ts +5 -5
- package/src/usd/usd-loader.ts +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/obj/obj-loader-types.ts"],
|
|
4
|
-
"sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport {OBJFormat} from './obj-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,wBAAwB;AACxB,
|
|
4
|
+
"sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport {OBJFormat} from './obj-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/arrow-worker-transport';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type OBJLoaderOptions = LoaderOptions & {\n obj?: {\n /** Output shape. Defaults to a Mesh Arrow table. */\n shape?: 'mesh' | 'arrow-table';\n /** Treat OBJ vertex records as a point cloud and stream `v` rows in batches. */\n pointCloud?: boolean;\n /** Override the URL to the worker bundle (by default loads from unpkg.com) */\n workerUrl?: string;\n };\n};\n\n/** Legacy OBJ mesh batch returned after caller-side conversion. */\nexport type OBJMeshBatch = {\n /** Legacy mesh batch shape. */\n shape: 'mesh';\n /** Parsed data batch discriminator. */\n batchType: 'data';\n /** Decoded mesh. */\n data: Mesh;\n /** Number of vertices. */\n length: number;\n};\n\n/** Public OBJ batch output shapes. */\nexport type OBJParsedBatch = OBJMeshBatch | ArrowTableBatch;\n\n/**\n * Preloads the parser-bearing OBJ loader implementation.\n */\nasync function preload() {\n const {OBJLoaderWithParser} = await import('@loaders.gl/scene/obj-loader');\n return OBJLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for the OBJ geometry format\n */\nexport const OBJLoader = {\n ...OBJFormat,\n\n dataType: null as unknown as Mesh | MeshArrowTable,\n batchType: null as unknown as OBJParsedBatch,\n version: VERSION,\n worker: true,\n /** Enables the stateful input/output batch protocol on the built-in worker. */\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n text: true,\n testText: testOBJFile,\n options: {\n obj: {shape: 'arrow-table'}\n },\n preload\n} as const satisfies Loader<Mesh | MeshArrowTable, OBJParsedBatch, OBJLoaderOptions>;\n\nfunction testOBJFile(text: string): boolean {\n // TODO - There could be comment line first\n return text[0] === 'v';\n}\n\n/** @deprecated Use OBJLoader. */\nexport const OBJWorkerLoader = OBJLoader;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,wBAAwB;AACxB,oCAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AA+BnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,8BAA8B;AACzE,SAAO;AACT;AAKO,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EAEH,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA;AAAA,EAER,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,IACP,KAAK,EAAC,OAAO,cAAa;AAAA,EAC5B;AAAA,EACA;AACF;AAEA,SAAS,YAAY,MAAuB;AAE1C,SAAO,KAAK,CAAC,MAAM;AACrB;AAGO,IAAM,kBAAkB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LoaderOptions } from '@loaders.gl/core/loader-utils';
|
|
2
2
|
import type { Mesh, MeshArrowTable, ArrowTableBatch } from '@loaders.gl/core/schema';
|
|
3
|
-
import { serializeArrowWorkerTable } from '@loaders.gl/core/
|
|
3
|
+
import { serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
|
|
4
4
|
export type OBJLoaderOptions = LoaderOptions & {
|
|
5
5
|
obj?: {
|
|
6
6
|
/** Output shape. Defaults to a Mesh Arrow table. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"obj-loader-types.d.ts","sourceRoot":"","sources":["../../src/obj/obj-loader-types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAC,IAAI,EAAE,cAAc,EAAE,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAC,yBAAyB,EAAC,MAAM
|
|
1
|
+
{"version":3,"file":"obj-loader-types.d.ts","sourceRoot":"","sources":["../../src/obj/obj-loader-types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAC,IAAI,EAAE,cAAc,EAAE,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAC,yBAAyB,EAAC,MAAM,yCAAyC,CAAC;AAMlF,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,oDAAoD;QACpD,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;QAC/B,gFAAgF;QAChF,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG;IACzB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sCAAsC;AACtC,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,eAAe,CAAC;AAE5D;;GAEG;AACH,iBAAe,OAAO;;;;;;;;uBAWS,IAAI,GAAG,cAAc;wBACpB,cAAc;;;;;;;;;;;;;;;;;;GAT7C;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;uBAGS,IAAI,GAAG,cAAc;wBACpB,cAAc;;;IAG5C,+EAA+E;;;;;;;;;;;;;;;;;;CASG,CAAC;AAErF,iBAAS,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG1C;AAED,iCAAiC;AACjC,eAAO,MAAM,eAAe;uBArBG,IAAI,GAAG,cAAc;wBACpB,cAAc;;;IAG5C,+EAA+E;;;;;;;;;;;;;;;;;;CAiBzC,CAAC"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { OBJFormat } from "./obj-format.js";
|
|
5
|
-
import { serializeArrowWorkerTable } from '@loaders.gl/core/
|
|
5
|
+
import { serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
|
|
6
6
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
7
7
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
8
|
-
const VERSION = typeof "5.0.0-beta.
|
|
8
|
+
const VERSION = typeof "5.0.0-beta.5" !== 'undefined' ? "5.0.0-beta.5" : 'latest';
|
|
9
9
|
/**
|
|
10
10
|
* Preloads the parser-bearing OBJ loader implementation.
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"obj-loader-types.js","sourceRoot":"","sources":["../../src/obj/obj-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM
|
|
1
|
+
{"version":3,"file":"obj-loader-types.js","sourceRoot":"","sources":["../../src/obj/obj-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM,yCAAyC,CAAC;AAElF,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,qBAAkB,KAAK,WAAW,CAAC,CAAC,gBAAa,CAAC,CAAC,QAAQ,CAAC;AA4B5E;;GAEG;AACH,KAAK,UAAU,OAAO;IACpB,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAC3E,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,SAAS;IAEZ,QAAQ,EAAE,IAAwC;IAClD,SAAS,EAAE,IAAiC;IAC5C,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,+EAA+E;IAC/E,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,yBAAyB;IAChD,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE;QACP,GAAG,EAAE,EAAC,KAAK,EAAE,aAAa,EAAC;KAC5B;IACD,OAAO;CAC2E,CAAC;AAErF,SAAS,WAAW,CAAC,IAAY;IAC/B,2CAA2C;IAC3C,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACzB,CAAC;AAED,iCAAiC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC"}
|
package/dist/obj/obj-loader.cjs
CHANGED
|
@@ -24,7 +24,7 @@ __export(obj_loader_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(obj_loader_exports);
|
|
26
26
|
var import_loader_utils = require("@loaders.gl/core/loader-utils");
|
|
27
|
-
var
|
|
27
|
+
var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
|
|
28
28
|
var import_schema_utils = require("@loaders.gl/core/schema-utils");
|
|
29
29
|
var import_get_obj_schema = require("./lib/get-obj-schema.cjs");
|
|
30
30
|
var import_parse_obj = require("./lib/parse-obj.cjs");
|
|
@@ -54,9 +54,9 @@ var OBJLoaderWithParser = {
|
|
|
54
54
|
}
|
|
55
55
|
yield* parseOBJPointCloudInBatches(text, options, batchSize);
|
|
56
56
|
},
|
|
57
|
-
serializeWorkerResult:
|
|
57
|
+
serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
|
|
58
58
|
deserializeWorkerResult: deserializeOBJWorkerResult,
|
|
59
|
-
serializeWorkerBatch:
|
|
59
|
+
serializeWorkerBatch: import_arrow_worker_transport.serializeArrowWorkerTable,
|
|
60
60
|
deserializeWorkerBatch: deserializeOBJWorkerBatch
|
|
61
61
|
};
|
|
62
62
|
function getNumericBatchSize(options) {
|
|
@@ -145,11 +145,11 @@ function makeOBJBatch(mesh, options) {
|
|
|
145
145
|
return (0, import_loader_utils.makeTableScanBatch)(table);
|
|
146
146
|
}
|
|
147
147
|
function deserializeOBJWorkerResult(result, options) {
|
|
148
|
-
const table = (0,
|
|
148
|
+
const table = (0, import_arrow_worker_transport.deserializeArrowWorkerTable)(result);
|
|
149
149
|
return options?.obj?.shape === "mesh" ? (0, import_schema_utils.convertTableToMesh)(table) : table;
|
|
150
150
|
}
|
|
151
151
|
function deserializeOBJWorkerBatch(result, options) {
|
|
152
|
-
const table = (0,
|
|
152
|
+
const table = (0, import_arrow_worker_transport.deserializeArrowWorkerTable)(result);
|
|
153
153
|
if (options?.obj?.shape !== "mesh") return table;
|
|
154
154
|
const mesh = (0, import_schema_utils.convertTableToMesh)(table);
|
|
155
155
|
return { shape: "mesh", batchType: "data", data: mesh, length: table.length };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/obj/obj-loader.ts"],
|
|
4
|
-
"sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {OBJLoaderOptions, OBJParsedBatch} from './obj-loader-types';\n\nimport {\n concatenateArrayBuffersAsync,\n makeLineIterator,\n makeTextDecoderIterator,\n makeTableScanBatch,\n type LoaderWithParser\n} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAMO;AAEP,
|
|
4
|
+
"sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {OBJLoaderOptions, OBJParsedBatch} from './obj-loader-types';\n\nimport {\n concatenateArrayBuffersAsync,\n makeLineIterator,\n makeTextDecoderIterator,\n makeTableScanBatch,\n type LoaderWithParser\n} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/arrow-worker-transport';\nimport {\n convertMeshToTable,\n convertTableToMesh,\n getMeshBoundingBox\n} from '@loaders.gl/core/schema-utils';\nimport {getOBJSchema} from './lib/get-obj-schema';\nimport {parseOBJ} from './lib/parse-obj';\nimport {OBJLoader as OBJLoaderMetadata} from './obj-loader-types';\n\nconst {preload: _OBJLoaderPreload, ...OBJLoaderMetadataWithoutPreload} = OBJLoaderMetadata;\n\nfunction convertOBJMesh(mesh: Mesh, options?: OBJLoaderOptions): Mesh | MeshArrowTable {\n const table = convertMeshToTable(mesh, 'arrow-table');\n return options?.obj?.shape === 'mesh' ? convertTableToMesh(table) : table;\n}\n\n// OBJLoaderWithParser\n\n/**\n * Loader for the OBJ geometry format\n */\nexport const OBJLoaderWithParser = {\n ...OBJLoaderMetadataWithoutPreload,\n parse: async (arrayBuffer: ArrayBuffer, options?: OBJLoaderOptions) =>\n convertOBJMesh(parseOBJ(new TextDecoder().decode(arrayBuffer), options), options),\n parseTextSync: (text: string, options?: OBJLoaderOptions) =>\n convertOBJMesh(parseOBJ(text, options), options),\n parseInBatches: async function* (\n arrayBuffer:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options\n ): AsyncIterable<OBJParsedBatch> {\n const batchSize = getNumericBatchSize(options);\n if (options?.obj?.pointCloud) {\n const textIterator = makeTextDecoderIterator(arrayBuffer as AsyncIterable<ArrayBuffer>);\n const lineIterator = makeLineIterator(textIterator);\n yield* parseOBJPointCloudLinesInBatches(lineIterator, options, batchSize);\n return;\n }\n\n const data = await concatenateArrayBuffersAsync(arrayBuffer);\n const text = new TextDecoder().decode(data);\n if (hasOBJGeometryRecords(text)) {\n yield makeOBJBatch(parseOBJ(text, options), options);\n return;\n }\n\n yield* parseOBJPointCloudInBatches(text, options, batchSize);\n },\n serializeWorkerResult: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializeOBJWorkerResult,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerBatch: deserializeOBJWorkerBatch\n} as const satisfies LoaderWithParser<Mesh | MeshArrowTable, OBJParsedBatch, OBJLoaderOptions>;\n\n/** Returns a numeric batch size when batching has an explicit row count. */\nfunction getNumericBatchSize(options?: OBJLoaderOptions): number | undefined {\n const batchSize = options?.batchSize ?? options?.core?.batchSize;\n return typeof batchSize === 'number' ? batchSize : undefined;\n}\n\nfunction hasOBJGeometryRecords(text: string): boolean {\n return text.split(/\\r?\\n/).some(line => {\n const trimmedLine = line.trimStart();\n return trimmedLine.startsWith('f ') || trimmedLine.startsWith('l ');\n });\n}\n\nfunction* parseOBJPointCloudInBatches(\n text: string,\n options?: OBJLoaderOptions,\n batchSize?: number\n): Iterable<OBJParsedBatch> {\n const vertexLines = text.split(/\\r?\\n/).filter(line => line.trimStart().startsWith('v '));\n yield* makeOBJPointCloudBatches(vertexLines, options, batchSize);\n}\n\nasync function* parseOBJPointCloudLinesInBatches(\n lines: AsyncIterable<string>,\n options?: OBJLoaderOptions,\n batchSize?: number\n): AsyncIterable<OBJParsedBatch> {\n const normalizedBatchSize = batchSize || 1000;\n let vertexLines: string[] = [];\n\n for await (const line of lines) {\n if (!line.trimStart().startsWith('v ')) {\n continue;\n }\n vertexLines.push(line);\n if (vertexLines.length >= normalizedBatchSize) {\n yield makeOBJBatch(parseOBJPointCloudMesh(vertexLines), options);\n vertexLines = [];\n }\n }\n\n if (vertexLines.length > 0) {\n yield makeOBJBatch(parseOBJPointCloudMesh(vertexLines), options);\n }\n}\n\nfunction* makeOBJPointCloudBatches(\n vertexLines: string[],\n options?: OBJLoaderOptions,\n batchSize?: number\n): Iterable<OBJParsedBatch> {\n const normalizedBatchSize = batchSize || vertexLines.length || 1;\n\n for (let rowIndex = 0; rowIndex < vertexLines.length; rowIndex += normalizedBatchSize) {\n const mesh = parseOBJPointCloudMesh(\n vertexLines.slice(rowIndex, rowIndex + normalizedBatchSize)\n );\n yield makeOBJBatch(mesh, options);\n }\n}\n\n/** Builds a point-list mesh directly from OBJ `v` records. */\nfunction parseOBJPointCloudMesh(vertexLines: string[]): Mesh {\n const positions = new Float32Array(vertexLines.length * 3);\n\n for (let vertexIndex = 0; vertexIndex < vertexLines.length; vertexIndex++) {\n const values = vertexLines[vertexIndex].trim().split(/\\s+/);\n positions[vertexIndex * 3 + 0] = Number(values[1]);\n positions[vertexIndex * 3 + 1] = Number(values[2]);\n positions[vertexIndex * 3 + 2] = Number(values[3]);\n }\n\n const attributes = {\n POSITION: {\n value: positions,\n size: 3\n }\n };\n const boundingBox = getMeshBoundingBox(attributes);\n\n return {\n loaderData: {\n header: {}\n },\n schema: getOBJSchema(attributes, {\n mode: 0,\n boundingBox: boundingBox ?? undefined\n }),\n header: {\n vertexCount: vertexLines.length,\n boundingBox: boundingBox ?? undefined\n },\n mode: 0,\n topology: 'point-list',\n attributes\n };\n}\n\nfunction makeOBJBatch(mesh: Mesh, options?: OBJLoaderOptions): OBJParsedBatch {\n const table = convertMeshToTable(mesh, 'arrow-table');\n if (options?.obj?.shape === 'mesh') {\n const convertedMesh = convertTableToMesh(table);\n return {\n shape: 'mesh',\n batchType: 'data',\n data: convertedMesh,\n length: convertedMesh.header?.vertexCount || 0\n };\n }\n\n return makeTableScanBatch(table);\n}\n\n/** Hydrates worker columns before applying the requested legacy mesh shape on the caller. */\nfunction deserializeOBJWorkerResult(\n result: unknown,\n options?: OBJLoaderOptions\n): Mesh | MeshArrowTable {\n const table = deserializeArrowWorkerTable(result);\n return options?.obj?.shape === 'mesh' ? convertTableToMesh(table) : table;\n}\n\n/** Restores the OBJ mesh batch envelope after caller-side conversion. */\nfunction deserializeOBJWorkerBatch(result: unknown, options?: OBJLoaderOptions): OBJParsedBatch {\n const table = deserializeArrowWorkerTable(result);\n if (options?.obj?.shape !== 'mesh') return table;\n const mesh = convertTableToMesh(table);\n return {shape: 'mesh', batchType: 'data', data: mesh, length: table.length};\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["OBJLoaderMetadata"]
|
|
7
7
|
}
|
package/dist/obj/obj-loader.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { OBJLoaderOptions, OBJParsedBatch } from "./obj-loader-types.js";
|
|
2
2
|
import type { Mesh, MeshArrowTable } from '@loaders.gl/core/schema';
|
|
3
|
-
import { serializeArrowWorkerTable } from '@loaders.gl/core/
|
|
3
|
+
import { serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
|
|
4
4
|
/**
|
|
5
5
|
* Loader for the OBJ geometry format
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"obj-loader.d.ts","sourceRoot":"","sources":["../../src/obj/obj-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAE,cAAc,EAAC,8BAA2B;AASzE,OAAO,KAAK,EAAC,IAAI,EAAE,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAEL,yBAAyB,EAC1B,MAAM
|
|
1
|
+
{"version":3,"file":"obj-loader.d.ts","sourceRoot":"","sources":["../../src/obj/obj-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAE,cAAc,EAAC,8BAA2B;AASzE,OAAO,KAAK,EAAC,IAAI,EAAE,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAEL,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AAmBjD;;GAEG;AACH,eAAO,MAAM,mBAAmB;kCAEH,WAAW,YAAY,gBAAgB;mCAE5C,MAAM,YAAY,gBAAgB;2CAIlD,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,4CAE9C,aAAa,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAsB4D,CAAC;AAmH/F,6FAA6F;AAC7F,iBAAS,0BAA0B,CACjC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,IAAI,GAAG,cAAc,CAGvB;AAED,yEAAyE;AACzE,iBAAS,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,cAAc,CAK9F"}
|
package/dist/obj/obj-loader.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { concatenateArrayBuffersAsync, makeLineIterator, makeTextDecoderIterator, makeTableScanBatch } from '@loaders.gl/core/loader-utils';
|
|
5
|
-
import { deserializeArrowWorkerTable, serializeArrowWorkerTable } from '@loaders.gl/core/
|
|
5
|
+
import { deserializeArrowWorkerTable, serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
|
|
6
6
|
import { convertMeshToTable, convertTableToMesh, getMeshBoundingBox } from '@loaders.gl/core/schema-utils';
|
|
7
7
|
import { getOBJSchema } from "./lib/get-obj-schema.js";
|
|
8
8
|
import { parseOBJ } from "./lib/parse-obj.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"obj-loader.js","sourceRoot":"","sources":["../../src/obj/obj-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM
|
|
1
|
+
{"version":3,"file":"obj-loader.js","sourceRoot":"","sources":["../../src/obj/obj-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/obj/obj-writer.cjs
CHANGED
|
@@ -25,7 +25,7 @@ __export(obj_writer_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(obj_writer_exports);
|
|
26
26
|
var import_schema_utils = require("@loaders.gl/core/schema-utils");
|
|
27
27
|
var import_obj_format = require("./obj-format.cjs");
|
|
28
|
-
var VERSION = true ? "5.0.0-beta.
|
|
28
|
+
var VERSION = true ? "5.0.0-beta.5" : "latest";
|
|
29
29
|
var OBJWriter = {
|
|
30
30
|
...import_obj_format.OBJFormat,
|
|
31
31
|
dataType: null,
|
package/dist/obj/obj-writer.js
CHANGED
|
@@ -5,7 +5,7 @@ import { convertMeshToTable, convertTableToMesh } from '@loaders.gl/core/schema-
|
|
|
5
5
|
import { OBJFormat } from "./obj-format.js";
|
|
6
6
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
7
7
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
8
|
-
const VERSION = typeof "5.0.0-beta.
|
|
8
|
+
const VERSION = typeof "5.0.0-beta.5" !== 'undefined' ? "5.0.0-beta.5" : 'latest';
|
|
9
9
|
/**
|
|
10
10
|
* Writer for the OBJ geometry format.
|
|
11
11
|
*/
|
|
@@ -37,8 +37,8 @@ module.exports = __toCommonJS(obj_loader_types_exports);
|
|
|
37
37
|
|
|
38
38
|
// src/obj/obj-loader-types.ts
|
|
39
39
|
var import_obj_format = require("./obj-format.cjs");
|
|
40
|
-
var
|
|
41
|
-
var VERSION = true ? "5.0.0-beta.
|
|
40
|
+
var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
|
|
41
|
+
var VERSION = true ? "5.0.0-beta.5" : "latest";
|
|
42
42
|
async function preload() {
|
|
43
43
|
const { OBJLoaderWithParser } = await import("@loaders.gl/scene/obj-loader");
|
|
44
44
|
return OBJLoaderWithParser;
|
|
@@ -51,7 +51,7 @@ var OBJLoader = {
|
|
|
51
51
|
worker: true,
|
|
52
52
|
/** Enables the stateful input/output batch protocol on the built-in worker. */
|
|
53
53
|
workerInBatches: true,
|
|
54
|
-
serializeWorkerResult:
|
|
54
|
+
serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
|
|
55
55
|
text: true,
|
|
56
56
|
testText: testOBJFile,
|
|
57
57
|
options: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/obj-loader-types.ts", "../src/obj/obj-loader-types.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './obj/obj-loader-types.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport {OBJFormat} from './obj-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,wBAAwB;AACxB,
|
|
4
|
+
"sourcesContent": ["export * from './obj/obj-loader-types.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport {OBJFormat} from './obj-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/arrow-worker-transport';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type OBJLoaderOptions = LoaderOptions & {\n obj?: {\n /** Output shape. Defaults to a Mesh Arrow table. */\n shape?: 'mesh' | 'arrow-table';\n /** Treat OBJ vertex records as a point cloud and stream `v` rows in batches. */\n pointCloud?: boolean;\n /** Override the URL to the worker bundle (by default loads from unpkg.com) */\n workerUrl?: string;\n };\n};\n\n/** Legacy OBJ mesh batch returned after caller-side conversion. */\nexport type OBJMeshBatch = {\n /** Legacy mesh batch shape. */\n shape: 'mesh';\n /** Parsed data batch discriminator. */\n batchType: 'data';\n /** Decoded mesh. */\n data: Mesh;\n /** Number of vertices. */\n length: number;\n};\n\n/** Public OBJ batch output shapes. */\nexport type OBJParsedBatch = OBJMeshBatch | ArrowTableBatch;\n\n/**\n * Preloads the parser-bearing OBJ loader implementation.\n */\nasync function preload() {\n const {OBJLoaderWithParser} = await import('@loaders.gl/scene/obj-loader');\n return OBJLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for the OBJ geometry format\n */\nexport const OBJLoader = {\n ...OBJFormat,\n\n dataType: null as unknown as Mesh | MeshArrowTable,\n batchType: null as unknown as OBJParsedBatch,\n version: VERSION,\n worker: true,\n /** Enables the stateful input/output batch protocol on the built-in worker. */\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n text: true,\n testText: testOBJFile,\n options: {\n obj: {shape: 'arrow-table'}\n },\n preload\n} as const satisfies Loader<Mesh | MeshArrowTable, OBJParsedBatch, OBJLoaderOptions>;\n\nfunction testOBJFile(text: string): boolean {\n // TODO - There could be comment line first\n return text[0] === 'v';\n}\n\n/** @deprecated Use OBJLoader. */\nexport const OBJWorkerLoader = OBJLoader;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,wBAAwB;AACxB,oCAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AA+BnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,8BAA8B;AACzE,SAAO;AACT;AAKO,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EAEH,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA;AAAA,EAER,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,IACP,KAAK,EAAC,OAAO,cAAa;AAAA,EAC5B;AAAA,EACA;AACF;AAEA,SAAS,YAAY,MAAuB;AAE1C,SAAO,KAAK,CAAC,MAAM;AACrB;AAGO,IAAM,kBAAkB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/obj-loader.cjs
CHANGED
|
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(obj_loader_exports);
|
|
|
26
26
|
|
|
27
27
|
// src/obj/obj-loader.ts
|
|
28
28
|
var import_loader_utils = require("@loaders.gl/core/loader-utils");
|
|
29
|
-
var
|
|
29
|
+
var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
|
|
30
30
|
var import_schema_utils = require("@loaders.gl/core/schema-utils");
|
|
31
31
|
var import_get_obj_schema = require("./lib/get-obj-schema.cjs");
|
|
32
32
|
var import_parse_obj = require("./lib/parse-obj.cjs");
|
|
@@ -56,9 +56,9 @@ var OBJLoaderWithParser = {
|
|
|
56
56
|
}
|
|
57
57
|
yield* parseOBJPointCloudInBatches(text, options, batchSize);
|
|
58
58
|
},
|
|
59
|
-
serializeWorkerResult:
|
|
59
|
+
serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
|
|
60
60
|
deserializeWorkerResult: deserializeOBJWorkerResult,
|
|
61
|
-
serializeWorkerBatch:
|
|
61
|
+
serializeWorkerBatch: import_arrow_worker_transport.serializeArrowWorkerTable,
|
|
62
62
|
deserializeWorkerBatch: deserializeOBJWorkerBatch
|
|
63
63
|
};
|
|
64
64
|
function getNumericBatchSize(options) {
|
|
@@ -147,11 +147,11 @@ function makeOBJBatch(mesh, options) {
|
|
|
147
147
|
return (0, import_loader_utils.makeTableScanBatch)(table);
|
|
148
148
|
}
|
|
149
149
|
function deserializeOBJWorkerResult(result, options) {
|
|
150
|
-
const table = (0,
|
|
150
|
+
const table = (0, import_arrow_worker_transport.deserializeArrowWorkerTable)(result);
|
|
151
151
|
return options?.obj?.shape === "mesh" ? (0, import_schema_utils.convertTableToMesh)(table) : table;
|
|
152
152
|
}
|
|
153
153
|
function deserializeOBJWorkerBatch(result, options) {
|
|
154
|
-
const table = (0,
|
|
154
|
+
const table = (0, import_arrow_worker_transport.deserializeArrowWorkerTable)(result);
|
|
155
155
|
if (options?.obj?.shape !== "mesh") return table;
|
|
156
156
|
const mesh = (0, import_schema_utils.convertTableToMesh)(table);
|
|
157
157
|
return { shape: "mesh", batchType: "data", data: mesh, length: table.length };
|
package/dist/obj-loader.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/obj-loader.ts", "../src/obj/obj-loader.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './obj/obj-loader.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {OBJLoaderOptions, OBJParsedBatch} from './obj-loader-types';\n\nimport {\n concatenateArrayBuffersAsync,\n makeLineIterator,\n makeTextDecoderIterator,\n makeTableScanBatch,\n type LoaderWithParser\n} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,0BAMO;AAEP,
|
|
4
|
+
"sourcesContent": ["export * from './obj/obj-loader.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {OBJLoaderOptions, OBJParsedBatch} from './obj-loader-types';\n\nimport {\n concatenateArrayBuffersAsync,\n makeLineIterator,\n makeTextDecoderIterator,\n makeTableScanBatch,\n type LoaderWithParser\n} from '@loaders.gl/core/loader-utils';\nimport type {Mesh, MeshArrowTable} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/arrow-worker-transport';\nimport {\n convertMeshToTable,\n convertTableToMesh,\n getMeshBoundingBox\n} from '@loaders.gl/core/schema-utils';\nimport {getOBJSchema} from './lib/get-obj-schema';\nimport {parseOBJ} from './lib/parse-obj';\nimport {OBJLoader as OBJLoaderMetadata} from './obj-loader-types';\n\nconst {preload: _OBJLoaderPreload, ...OBJLoaderMetadataWithoutPreload} = OBJLoaderMetadata;\n\nfunction convertOBJMesh(mesh: Mesh, options?: OBJLoaderOptions): Mesh | MeshArrowTable {\n const table = convertMeshToTable(mesh, 'arrow-table');\n return options?.obj?.shape === 'mesh' ? convertTableToMesh(table) : table;\n}\n\n// OBJLoaderWithParser\n\n/**\n * Loader for the OBJ geometry format\n */\nexport const OBJLoaderWithParser = {\n ...OBJLoaderMetadataWithoutPreload,\n parse: async (arrayBuffer: ArrayBuffer, options?: OBJLoaderOptions) =>\n convertOBJMesh(parseOBJ(new TextDecoder().decode(arrayBuffer), options), options),\n parseTextSync: (text: string, options?: OBJLoaderOptions) =>\n convertOBJMesh(parseOBJ(text, options), options),\n parseInBatches: async function* (\n arrayBuffer:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options\n ): AsyncIterable<OBJParsedBatch> {\n const batchSize = getNumericBatchSize(options);\n if (options?.obj?.pointCloud) {\n const textIterator = makeTextDecoderIterator(arrayBuffer as AsyncIterable<ArrayBuffer>);\n const lineIterator = makeLineIterator(textIterator);\n yield* parseOBJPointCloudLinesInBatches(lineIterator, options, batchSize);\n return;\n }\n\n const data = await concatenateArrayBuffersAsync(arrayBuffer);\n const text = new TextDecoder().decode(data);\n if (hasOBJGeometryRecords(text)) {\n yield makeOBJBatch(parseOBJ(text, options), options);\n return;\n }\n\n yield* parseOBJPointCloudInBatches(text, options, batchSize);\n },\n serializeWorkerResult: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializeOBJWorkerResult,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerBatch: deserializeOBJWorkerBatch\n} as const satisfies LoaderWithParser<Mesh | MeshArrowTable, OBJParsedBatch, OBJLoaderOptions>;\n\n/** Returns a numeric batch size when batching has an explicit row count. */\nfunction getNumericBatchSize(options?: OBJLoaderOptions): number | undefined {\n const batchSize = options?.batchSize ?? options?.core?.batchSize;\n return typeof batchSize === 'number' ? batchSize : undefined;\n}\n\nfunction hasOBJGeometryRecords(text: string): boolean {\n return text.split(/\\r?\\n/).some(line => {\n const trimmedLine = line.trimStart();\n return trimmedLine.startsWith('f ') || trimmedLine.startsWith('l ');\n });\n}\n\nfunction* parseOBJPointCloudInBatches(\n text: string,\n options?: OBJLoaderOptions,\n batchSize?: number\n): Iterable<OBJParsedBatch> {\n const vertexLines = text.split(/\\r?\\n/).filter(line => line.trimStart().startsWith('v '));\n yield* makeOBJPointCloudBatches(vertexLines, options, batchSize);\n}\n\nasync function* parseOBJPointCloudLinesInBatches(\n lines: AsyncIterable<string>,\n options?: OBJLoaderOptions,\n batchSize?: number\n): AsyncIterable<OBJParsedBatch> {\n const normalizedBatchSize = batchSize || 1000;\n let vertexLines: string[] = [];\n\n for await (const line of lines) {\n if (!line.trimStart().startsWith('v ')) {\n continue;\n }\n vertexLines.push(line);\n if (vertexLines.length >= normalizedBatchSize) {\n yield makeOBJBatch(parseOBJPointCloudMesh(vertexLines), options);\n vertexLines = [];\n }\n }\n\n if (vertexLines.length > 0) {\n yield makeOBJBatch(parseOBJPointCloudMesh(vertexLines), options);\n }\n}\n\nfunction* makeOBJPointCloudBatches(\n vertexLines: string[],\n options?: OBJLoaderOptions,\n batchSize?: number\n): Iterable<OBJParsedBatch> {\n const normalizedBatchSize = batchSize || vertexLines.length || 1;\n\n for (let rowIndex = 0; rowIndex < vertexLines.length; rowIndex += normalizedBatchSize) {\n const mesh = parseOBJPointCloudMesh(\n vertexLines.slice(rowIndex, rowIndex + normalizedBatchSize)\n );\n yield makeOBJBatch(mesh, options);\n }\n}\n\n/** Builds a point-list mesh directly from OBJ `v` records. */\nfunction parseOBJPointCloudMesh(vertexLines: string[]): Mesh {\n const positions = new Float32Array(vertexLines.length * 3);\n\n for (let vertexIndex = 0; vertexIndex < vertexLines.length; vertexIndex++) {\n const values = vertexLines[vertexIndex].trim().split(/\\s+/);\n positions[vertexIndex * 3 + 0] = Number(values[1]);\n positions[vertexIndex * 3 + 1] = Number(values[2]);\n positions[vertexIndex * 3 + 2] = Number(values[3]);\n }\n\n const attributes = {\n POSITION: {\n value: positions,\n size: 3\n }\n };\n const boundingBox = getMeshBoundingBox(attributes);\n\n return {\n loaderData: {\n header: {}\n },\n schema: getOBJSchema(attributes, {\n mode: 0,\n boundingBox: boundingBox ?? undefined\n }),\n header: {\n vertexCount: vertexLines.length,\n boundingBox: boundingBox ?? undefined\n },\n mode: 0,\n topology: 'point-list',\n attributes\n };\n}\n\nfunction makeOBJBatch(mesh: Mesh, options?: OBJLoaderOptions): OBJParsedBatch {\n const table = convertMeshToTable(mesh, 'arrow-table');\n if (options?.obj?.shape === 'mesh') {\n const convertedMesh = convertTableToMesh(table);\n return {\n shape: 'mesh',\n batchType: 'data',\n data: convertedMesh,\n length: convertedMesh.header?.vertexCount || 0\n };\n }\n\n return makeTableScanBatch(table);\n}\n\n/** Hydrates worker columns before applying the requested legacy mesh shape on the caller. */\nfunction deserializeOBJWorkerResult(\n result: unknown,\n options?: OBJLoaderOptions\n): Mesh | MeshArrowTable {\n const table = deserializeArrowWorkerTable(result);\n return options?.obj?.shape === 'mesh' ? convertTableToMesh(table) : table;\n}\n\n/** Restores the OBJ mesh batch envelope after caller-side conversion. */\nfunction deserializeOBJWorkerBatch(result: unknown, options?: OBJLoaderOptions): OBJParsedBatch {\n const table = deserializeArrowWorkerTable(result);\n if (options?.obj?.shape !== 'mesh') return table;\n const mesh = convertTableToMesh(table);\n return {shape: 'mesh', batchType: 'data', data: mesh, length: table.length};\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["OBJLoaderMetadata"]
|
|
7
7
|
}
|