UNPKG

@react-vertex/orbit-camera

Version:
73 lines (66 loc) 2.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useOrbitCamera = useOrbitCamera; exports.useOrbitControls = useOrbitControls; Object.defineProperty(exports, "OrbitCamera", { enumerable: true, get: function get() { return _OrbitCamera.OrbitCamera; } }); Object.defineProperty(exports, "OrbitControls", { enumerable: true, get: function get() { return _OrbitControls.OrbitControls; } }); var _react = require("react"); var _core = require("@react-vertex/core"); var _OrbitCamera = require("./OrbitCamera"); var _OrbitControls = require("./OrbitControls"); function useOrbitCamera() { var fov = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100; var aspect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; var near = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; var far = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1000; var configure = arguments.length > 4 ? arguments[4] : undefined; var memoized = (0, _react.useMemo)(function () { var camera = new _OrbitCamera.OrbitCamera(fov, aspect, near, far); configure && configure(camera); return camera; }, []); (0, _react.useMemo)(function () { memoized.setProjection(fov, aspect, near, far); }, [memoized, fov, aspect, near, far]); return memoized; } function useOrbitControls(camera, configure) { var canvas = (0, _core.useCanvas)(); var memoized = (0, _react.useMemo)(function () { var controls = new _OrbitControls.OrbitControls(camera, canvas); configure && configure(controls); return controls; }, [camera, canvas]); (0, _react.useEffect)(function () { canvas.addEventListener('mousedown', memoized.onMouseDown, false); canvas.addEventListener('mouseup', memoized.onMouseUp, false); canvas.addEventListener('mousemove', memoized.onMouseMove, false); canvas.addEventListener('touchstart', memoized.onTouchStart, false); canvas.addEventListener('touchend', memoized.onTouchEnd, false); canvas.addEventListener('touchmove', memoized.onTouchMove, false); canvas.addEventListener('wheel', memoized.onMouseWheel, false); return function () { canvas.removeEventListener('mousedown', memoized.onMouseDown, false); canvas.removeEventListener('mouseup', memoized.onMouseUp, false); canvas.removeEventListener('mousemove', memoized.onMouseMove, false); canvas.removeEventListener('touchstart', memoized.onTouchStart, false); canvas.removeEventListener('touchend', memoized.onTouchEnd, false); canvas.removeEventListener('touchmove', memoized.onTouchMove, false); canvas.removeEventListener('wheel', memoized.onMouseWheel, false); }; }, [canvas, memoized]); return memoized; } //# sourceMappingURL=index.js.map