CameraLimits.collision ​

Contract 2.0.0 · package sha256 a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e · generated from configurator-runtime.d.ts by services/onsite-scripter/scripts/build-contract-docs.mjs; edit the source, not this file.

Property of CameraLimits · stable · since 2.0.0

ts
collision?: boolean | null;

The camera keeps 0.08 m clear of pickable product and scenery parts, as 1.x's collision plugin (bufferDistance, viewer/plugins/camera-collision-plugin.ts:193 at eb5ce2afe): the shopper's orbit, pan, dolly, wheel and pinch, and autoRotate, stop at that clearance and slide along the surface, and no limits value changes. View writes (set, fit, views.go) and Frame.camera land as written, a durationMs: 0 write exactly, where 1.x also stopped a view glide (spec section 5.6). When it turns on, and after each commit that changes the drawn parts, a camera inside a pickable part is moved out of it to the clearance once no view move runs and no Frame.camera view holds, as 1.x on enable() and a model load (:257-282). As in 1.x, a part is seen from inside only where its material draws both sides (glTF's default draws front faces only), so a camera inside a front-sided part stays there.

Default: unchanged (the document's, else false)

Generic-API test (spec 3.1) ​

Rule Result
1. Neutral name pass: collision names no product
2. A precedent pass: Unity Camera.fieldOfView (row K40); Unity Camera.lensShift (row K40); Babylon.js ArcRotateCamera limits (row K40)
3. Two apps, or labs pass: 27 apps (ledger: app-378d190f1b, app-59c5b5751e, app-b4ae2fce25, app-bcb7ef21da, app-ddfb017681, app-e3b47169bc, app-e61a0b42ad, app-fd09090420; fleet cross-check: app-04c2774145, app-37356bf09f, app-378d190f1b, app-4762caacdc, app-4f16d2f6da, app-4fd23bc869, app-510d750508, app-59c5b5751e and 18 more)
4. The cheaper fix first decided per need in Appendix B: rows K40 at tier stable (a member only where no rule, data, asset or app code serves the need)