UNPKG

@pmndrs/uikit

Version:

Build performant 3D user interfaces with Three.js and yoga.

16 lines (15 loc) 605 B
import { abortableEffect } from '../../utils.js'; export function setupBoundingSphere(target, pixelSize, globalMatrixSignal, size, abortSignal) { abortableEffect(() => { const sizeValue = size.value; const globalMatrix = globalMatrixSignal.value; if (sizeValue == null || globalMatrix == null) { return; } target.center.set(0, 0, 0); const [w, h] = sizeValue; const maxDiameter = Math.sqrt(w * w + h * h); target.radius = maxDiameter * 0.5 * pixelSize.value; target.applyMatrix4(globalMatrix); }, abortSignal); }