@helix3/helix-cli 0.1.13-helix3.142 → 0.1.13-helix3.144
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -1
- package/dist/sceneImport/compiler.d.ts +1 -1
- package/dist/sceneImport/compiler.js +3 -0
- package/dist/sceneImport/compiler.js.map +1 -1
- package/dist/sceneImport/defaultMaterials.d.ts +43 -0
- package/dist/sceneImport/defaultMaterials.js +98 -0
- package/dist/sceneImport/defaultMaterials.js.map +1 -0
- package/dist/sceneImport/fbx.d.ts +60 -0
- package/dist/sceneImport/fbx.js +149 -19
- package/dist/sceneImport/fbx.js.map +1 -1
- package/dist/sceneImport/glbSplit.d.ts +24 -0
- package/dist/sceneImport/glbSplit.js +94 -0
- package/dist/sceneImport/glbSplit.js.map +1 -0
- package/dist/sceneImport/multiAsset.d.ts +77 -0
- package/dist/sceneImport/multiAsset.js +516 -0
- package/dist/sceneImport/multiAsset.js.map +1 -0
- package/dist/sceneImport/multiAssetSpawn.d.ts +40 -0
- package/dist/sceneImport/multiAssetSpawn.js +98 -0
- package/dist/sceneImport/multiAssetSpawn.js.map +1 -0
- package/dist/sceneImport/package.d.ts +61 -7
- package/dist/sceneImport/package.js +504 -38
- package/dist/sceneImport/package.js.map +1 -1
- package/dist/sceneImport/packageReader.js +19 -9
- package/dist/sceneImport/packageReader.js.map +1 -1
- package/dist/sceneImport/proxy.d.ts +18 -0
- package/dist/sceneImport/proxy.js +66 -0
- package/dist/sceneImport/proxy.js.map +1 -0
- package/dist/sceneImport/spawnProbe.d.ts +7 -0
- package/dist/sceneImport/spawnProbe.js +72 -7
- package/dist/sceneImport/spawnProbe.js.map +1 -1
- package/dist/sceneImport/streamLayout.d.ts +96 -0
- package/dist/sceneImport/streamLayout.js +203 -0
- package/dist/sceneImport/streamLayout.js.map +1 -0
- package/dist/sceneImport/types.d.ts +18 -1
- package/dist/sceneImport/types.js +29 -0
- package/dist/sceneImport/types.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -656,6 +656,12 @@ function parsePositiveInt(value, flag) {
|
|
|
656
656
|
fail(`✖ ${flag} must be a whole number >= 1`);
|
|
657
657
|
return parsed;
|
|
658
658
|
}
|
|
659
|
+
function parsePositiveFloat(value) {
|
|
660
|
+
const parsed = Number(value);
|
|
661
|
+
if (!Number.isFinite(parsed) || parsed <= 0)
|
|
662
|
+
fail(`✖ --cell-size must be a positive number, got '${value}'`);
|
|
663
|
+
return parsed;
|
|
664
|
+
}
|
|
659
665
|
function parseLimit(value, flag) {
|
|
660
666
|
if (value.trim().toLowerCase() === 'unlimited')
|
|
661
667
|
return null;
|
|
@@ -3170,6 +3176,47 @@ sceneSource
|
|
|
3170
3176
|
fail(`✖ ${err instanceof Error ? err.message : String(err)}`);
|
|
3171
3177
|
}
|
|
3172
3178
|
});
|
|
3179
|
+
sceneSource
|
|
3180
|
+
.command('compile-pack')
|
|
3181
|
+
.description('Compile a directory of FBX/OBJ/GLB meshes into N individually placed, independently streamed Scene v2 nodes')
|
|
3182
|
+
.argument('<pack>', 'directory containing mesh files (searched recursively)')
|
|
3183
|
+
.requiredOption('-o, --output <dir>', 'empty/new output directory for generated artifacts')
|
|
3184
|
+
.option('--title <title>', 'Scene title', 'Multi-asset import')
|
|
3185
|
+
.requiredOption('--source-id <id>', 'stable identifier for the source pack, e.g. kit-city-01')
|
|
3186
|
+
.requiredOption('--license <name>', "the pack's actual license name, e.g. 'CC0 1.0' or 'CC BY 4.0'")
|
|
3187
|
+
.requiredOption('--license-url <url>', 'URL of the license text')
|
|
3188
|
+
.requiredOption('--creator <creator>', 'attribution for the source pack')
|
|
3189
|
+
.requiredOption('--source-url <url>', 'where the pack was obtained')
|
|
3190
|
+
.option('--default-materials', 'swap imported materials/textures for the shared HELIX default set', false)
|
|
3191
|
+
.option('--cell-size <meters>', 'streaming cell size override', parsePositiveFloat)
|
|
3192
|
+
.action(async (pack, opts) => {
|
|
3193
|
+
try {
|
|
3194
|
+
const packDir = (0, node_path_1.resolve)(pack);
|
|
3195
|
+
const { compileMultiAssetScene, packOriginalSha256, receiptForPack } = await Promise.resolve().then(() => __importStar(require('./sceneImport/multiAsset')));
|
|
3196
|
+
const receipt = receiptForPack({
|
|
3197
|
+
sourceId: opts.sourceId,
|
|
3198
|
+
originalSha256: await packOriginalSha256(packDir),
|
|
3199
|
+
title: opts.title,
|
|
3200
|
+
creator: opts.creator,
|
|
3201
|
+
license: opts.license,
|
|
3202
|
+
licenseUrl: opts.licenseUrl,
|
|
3203
|
+
sourceUrl: opts.sourceUrl,
|
|
3204
|
+
});
|
|
3205
|
+
const result = await compileMultiAssetScene({
|
|
3206
|
+
sourceDir: packDir,
|
|
3207
|
+
outputDir: (0, node_path_1.resolve)(opts.output),
|
|
3208
|
+
title: opts.title,
|
|
3209
|
+
sourceId: opts.sourceId,
|
|
3210
|
+
receipt,
|
|
3211
|
+
...(opts.defaultMaterials ? { defaultMaterials: true } : {}),
|
|
3212
|
+
...(opts.cellSize !== undefined ? { cellSizeM: opts.cellSize } : {}),
|
|
3213
|
+
});
|
|
3214
|
+
console.log(JSON.stringify(result, null, 2));
|
|
3215
|
+
}
|
|
3216
|
+
catch (err) {
|
|
3217
|
+
fail(`✖ ${err instanceof Error ? err.message : String(err)}`);
|
|
3218
|
+
}
|
|
3219
|
+
});
|
|
3173
3220
|
sceneSource
|
|
3174
3221
|
.command('publish')
|
|
3175
3222
|
.description('Validate and dry-run the native Scene v2 World-build multipart request')
|