UNPKG

mylingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

21 lines (16 loc) 763 B
import { scaleDown } from "../../engine/constants" import { getCameraRendered } from "../../states/useCameraRendered" import getWorldPosition from "./getWorldPosition" import normalizeClientPosition from "./normalizeClientPosition" import { vector3 } from "./reusables" import { vec2Point } from "./vec2Point" export default (clientX: number, clientY: number, distance = 500) => { const [xNorm, yNorm] = normalizeClientPosition(clientX, clientY) const camera = getCameraRendered() vector3.set(xNorm, yNorm, 0.5) vector3.unproject(camera) const cameraPosition = getWorldPosition(camera) vector3.sub(cameraPosition).normalize() const vec = cameraPosition.add(vector3.multiplyScalar(distance * scaleDown)) return vec2Point(vec) }