UNPKG

react-native-filament

Version:

A real-time physically based 3D rendering engine for React Native

50 lines (49 loc) 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useCameraManipulator = useCameraManipulator; var _useFilamentContext = require("./useFilamentContext"); var _useDisposableResource = require("./useDisposableResource"); const cameraPosition = [0, 0, 8]; const cameraTarget = [0, 0, 0]; const cameraUp = [0, 1, 0]; function useCameraManipulator({ orbitHomePosition = cameraPosition, targetPosition = cameraTarget, upVector = cameraUp, ...config }) { var _config$zoomSpeed, _config$orbitSpeed, _config$orbitSpeed2; const { engine } = (0, _useFilamentContext.useFilamentContext)(); const orbitHomePositionX = orbitHomePosition[0]; const orbitHomePositionY = orbitHomePosition[1]; const orbitHomePositionZ = orbitHomePosition[2]; const targetPositionX = targetPosition[0]; const targetPositionY = targetPosition[1]; const targetPositionZ = targetPosition[2]; const upVectorX = upVector[0]; const upVectorY = upVector[1]; const upVectorZ = upVector[2]; const zoomSpeed = (_config$zoomSpeed = config.zoomSpeed) === null || _config$zoomSpeed === void 0 ? void 0 : _config$zoomSpeed[0]; const orbitSpeedX = (_config$orbitSpeed = config.orbitSpeed) === null || _config$orbitSpeed === void 0 ? void 0 : _config$orbitSpeed[0]; const orbitSpeedY = (_config$orbitSpeed2 = config.orbitSpeed) === null || _config$orbitSpeed2 === void 0 ? void 0 : _config$orbitSpeed2[1]; const cameraManipulator = (0, _useDisposableResource.useDisposableResource)(() => { const localConfig = { orbitHomePosition: [orbitHomePositionX, orbitHomePositionY, orbitHomePositionZ], targetPosition: [targetPositionX, targetPositionY, targetPositionZ], upVector: [upVectorX, upVectorY, upVectorZ] }; if (zoomSpeed != null) { localConfig.zoomSpeed = [zoomSpeed]; } if (orbitSpeedX != null && orbitSpeedY != null) { localConfig.orbitSpeed = [orbitSpeedX, orbitSpeedY]; } return Promise.resolve(engine.createOrbitCameraManipulator(localConfig)); }, [engine, orbitHomePositionX, orbitHomePositionY, orbitHomePositionZ, orbitSpeedX, orbitSpeedY, targetPositionX, targetPositionY, targetPositionZ, upVectorX, upVectorY, upVectorZ, zoomSpeed]); return cameraManipulator; } //# sourceMappingURL=useCameraManipulator.js.map