# `CameraLimits.maxDistanceFit`

> 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`](CameraLimits.md) · stable · since 2.0.0

```ts
maxDistanceFit?: number | null;
```

Caps the distance at this multiple of the sphere-fit distance r / sin(h): r is half the
diagonal of the role 'product' bounds box (or of what the last `fit` framed), h the smaller
horizontal or vertical half field of view of the lens at the element's full aspect (insets
ignored), both of that moment, refreshed when those bounds change and at each `fit`; never
below [`minDistance`](CameraLimits.minDistance.md). It is not the distance `fit` lands at, which comes from the box's
corners. As 1.x's `controls.maxDistanceFitFactor`, except that 1.x clamped only a dolly
gesture: here every view write is clamped, the start view included, so a migrated page whose
stored view lies beyond the cap needs a larger factor (Appendix C.7). null removes your value.

**Default:** unchanged (the document's, else none)

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `maxDistanceFit` names no product |
| 2. A precedent | pass: [Unity Camera.fieldOfView](https://docs.unity3d.com/ScriptReference/Camera-fieldOfView.html) (row `K40`); [Unity Camera.lensShift](https://docs.unity3d.com/ScriptReference/Camera-lensShift.html) (row `K40`); [Babylon.js ArcRotateCamera limits](https://github.com/BabylonJS/Babylon.js/blob/master/packages/dev/core/src/Cameras/arcRotateCamera.ts) (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) |
