camera-picking-ray
Version:
creates a picking ray for a 2D/3D camera
14 lines (13 loc) • 522 B
JavaScript
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)
}