UNPKG

camera-picking-ray

Version:

creates a picking ray for a 2D/3D camera

14 lines (13 loc) 522 B
var unproject = require('camera-unproject') var set = require('gl-vec3/set') var sub = require('gl-vec3/subtract') var normalize = require('gl-vec3/normalize') module.exports = createPickRay function createPickRay(origin, direction, point, viewport, invProjView) { set(origin, point[0], point[1], 0) set(direction, point[0], point[1], 1) unproject(origin, origin, viewport, invProjView) unproject(direction, direction, viewport, invProjView) sub(direction, direction, origin) normalize(direction, direction) }