@deepblend/dsh-blender-host 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/geometry-inspection.js +5 -2
- package/lib/index.js +1 -1
- package/package.json +2 -2
|
@@ -66,17 +66,20 @@ export async function inspectRevisionGeometry(host, projectId, revision, selecti
|
|
|
66
66
|
if (selection.surfaceSamples !== undefined && result?.report?.schemaVersion === 'deepblend.geometry-inspection/v1') {
|
|
67
67
|
refuse(BlenderErrorCode.RUNTIME_UNAVAILABLE, 'the runtime does not support local surface samples; upgrade DeepBlend. Ordinary native geometry reads remain available.')
|
|
68
68
|
}
|
|
69
|
+
if (selection.objectAxes === true && result?.report?.schemaVersion !== 'deepblend.geometry-inspection/v3') refuse(BlenderErrorCode.RUNTIME_UNAVAILABLE, 'The runtime does not support object-local native bounds; upgrade DeepBlend. Ordinary reads remain available.')
|
|
69
70
|
const native = verifyGeometryReport(result?.report, request)
|
|
70
71
|
verifySource()
|
|
71
72
|
const hasSamples = selection.surfaceSamples !== undefined
|
|
72
|
-
return { schemaVersion: hasSamples ? 'deepblend.scene-geometry/v2' : 'deepblend.scene-geometry/v1', projectId, sourceRevision: revision,
|
|
73
|
+
return { schemaVersion: selection.objectAxes === true ? 'deepblend.scene-geometry/v3' : hasSamples ? 'deepblend.scene-geometry/v2' : 'deepblend.scene-geometry/v1', projectId, sourceRevision: revision,
|
|
73
74
|
sourceDigest: digest, sourceSpecHash: manifest.specHashAfter, sourceCheckpointSha256: expected,
|
|
75
|
+
...(selection.objectAxes === true ? { objectAxisBasis: native.objectAxisBasis } : {}),
|
|
74
76
|
sourceUnchanged: true, frame: native.frame, objects: native.objects, blenderVersion: native.blenderVersion,
|
|
75
77
|
...(hasSamples ? { surfaceSamples: native.surfaceSamples } : {}),
|
|
76
78
|
excludedMeasurements: hasSamples ? ['globalWallThickness', 'assemblyClearance', 'minimumClearance', 'collision', 'selfIntersection'] :
|
|
77
79
|
['wallThickness', 'shellToLinerClearance', 'minimumClearance', 'collision'],
|
|
78
80
|
execution: { transport: 'batch' }, limitations: [
|
|
79
|
-
'World-axis spans include rotations, handles and protrusions; they are not intrinsic body dimensions.',
|
|
81
|
+
'World-axis spans include rotations, handles and protrusions; they are not intrinsic body dimensions. Never invert a world-axis bounding box to recover local bounds.',
|
|
82
|
+
...(selection.objectAxes === true ? ['objectAxisBoundsMeters and objectAxisExtentMm bound actual evaluated mesh vertices in physical orthogonal axes of the selected object. They include evaluated modifiers, protrusions and native object/world scale, exclude placement rotation/translation, and are not semantic body dimensions or assembly extents. objectAxisWorldMatrix supplies the normalized axes and native origin. Sheared or degenerate object-axis bases have explicit unavailable objectAxisStatus while world bounds remain measured; these dimensions are not inferred from world bounds. Native scale can include generator construction transforms; it is not itself proof of a manual scaling edit. These extents already include that scale; do not apply it again.'] : []),
|
|
80
83
|
'This evaluates saved native mesh geometry, not shader displacement or rendered pixels.',
|
|
81
84
|
...(hasSamples ? [
|
|
82
85
|
'Surface samples are finite local chords along evaluated triangle-face normals, not shader or smoothed shading normals.',
|
package/lib/index.js
CHANGED
|
@@ -712,7 +712,7 @@ export default class BlenderStudio extends Service {
|
|
|
712
712
|
* whole spec on every turn spends its context on fields it is not changing.
|
|
713
713
|
*
|
|
714
714
|
* @param {string} projectId
|
|
715
|
-
* @param {{ revision?: string, full?: boolean, geometry?: { entityIds: string[], frame: number, surfaceSamples?: object[] }, signal?: AbortSignal }} [options]
|
|
715
|
+
* @param {{ revision?: string, full?: boolean, geometry?: { entityIds: string[], frame: number, objectAxes?: boolean, surfaceSamples?: object[] }, signal?: AbortSignal }} [options]
|
|
716
716
|
* @returns {Promise<Record<string, unknown>>}
|
|
717
717
|
*/
|
|
718
718
|
async getScene(projectId, options = {}) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepblend/dsh-blender-host",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "DeepBlend Host service: the blenderStudio business facade over the BlenderRuntime seam.",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"./package.json": "./package.json"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@deepblend/dsh-blender-contracts": "0.
|
|
23
|
+
"@deepblend/dsh-blender-contracts": "0.14.0",
|
|
24
24
|
"sharp": "0.35.5"
|
|
25
25
|
},
|
|
26
26
|
"license": "MIT",
|