@react-three/drei
Version:
useful add-ons for react-three-fiber
34 lines (31 loc) • 885 B
JavaScript
import _extends from '@babel/runtime/helpers/esm/extends';
import * as React from 'react';
import { useFrame } from '@react-three/fiber';
const Detailed = /* @__PURE__ */React.forwardRef(({
children,
hysteresis = 0,
distances,
...props
}, ref) => {
const lodRef = React.useRef(null);
React.useImperativeHandle(ref, () => lodRef.current, []);
React.useLayoutEffect(() => {
const {
current: lod
} = lodRef;
lod.levels.length = 0;
lod.children.forEach((object, index) => lod.levels.push({
object,
hysteresis,
distance: distances[index]
}));
});
useFrame(state => {
var _lodRef$current;
return (_lodRef$current = lodRef.current) == null ? void 0 : _lodRef$current.update(state.camera);
});
return /*#__PURE__*/React.createElement("lOD", _extends({
ref: lodRef
}, props), children);
});
export { Detailed };