UNPKG

ray-plane-intersection

Version:
25 lines (21 loc) 582 B
var dot = require('gl-vec3/dot') var add = require('gl-vec3/add') var scale = require('gl-vec3/scale') var copy = require('gl-vec3/copy') module.exports = intersectRayPlane var v0 = [0, 0, 0] function intersectRayPlane(out, origin, direction, normal, dist) { var denom = dot(direction, normal) if (denom !== 0) { var t = -(dot(origin, normal) + dist) / denom if (t < 0) { return null } scale(v0, direction, t) return add(out, origin, v0) } else if (dot(normal, origin) + dist === 0) { return copy(out, origin) } else { return null } }