@ue-too/board / clampZoomByHandler
Function: clampZoomByHandler()
clampZoomByHandler(
delta,camera,config):number
Defined in: packages/board/src/camera/camera-rig/zoom-handler.ts:261
Handler pipeline step that clamps "zoom by" deltas to prevent boundary violations.
Parameters
delta
number
Zoom level change
camera
Current camera instance (provides current zoom and boundaries)
config
Clamping configuration
Returns
number
Adjusted delta that respects zoom boundaries
Remarks
This handler ensures that applying the delta won't exceed zoom boundaries.
Algorithm:
- Calculate potential new zoom level (current + delta)
- Clamp that level to boundaries
- Return the difference (clamped - current) as the new delta
Behavior:
- If
clampZoomis false: Returns delta unchanged - If
clampZoomis true: Adjusts delta to stay within boundaries
The resulting delta may be zero if already at a boundary and trying to zoom further.
Can be used standalone, but typically composed into a handler pipeline via createDefaultZoomByOnlyHandler or createHandlerChain.
Example
typescript
camera.zoomLevel = 2.8;
camera.zoomBoundaries = { max: 3.0 };
const config: ZoomHandlerClampConfig = {
clampZoom: true
};
const delta = 0.5; // Would exceed max
const clamped = clampZoomByHandler(delta, camera, config);
// clamped = 0.2 (only zoom to boundary, not beyond)See
- clampZoomLevel for clamping implementation
- createDefaultZoomByOnlyHandler for default pipeline usage