Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function tick () {
let velocity = vec3.subtract([], curPosition, lastPosition)
const delta = vec3.subtract([], destination, curPosition)
const acceleration = vec3.scale([], delta, 0.001)
velocity = vec3.add(velocity, acceleration, velocity)
if (vec3.length(velocity) > 0.005) {
velocity = vec3.normalize(velocity, velocity)
velocity = vec3.scale(velocity, velocity, 0.005)
}
const nextPosition = vec3.add([], velocity, curPosition)
lastPosition = curPosition
curPosition = nextPosition
return curPosition
}
}
function tick () {
let velocity = vec3.subtract([], curPosition, lastPosition)
const delta = vec3.subtract([], destination, curPosition)
const acceleration = vec3.scale([], delta, 0.001)
velocity = vec3.add(velocity, acceleration, velocity)
if (vec3.length(velocity) > 0.005) {
velocity = vec3.normalize(velocity, velocity)
velocity = vec3.scale(velocity, velocity, 0.005)
}
const nextPosition = vec3.add([], velocity, curPosition)
lastPosition = curPosition
curPosition = nextPosition
return curPosition
}
}
function getLinePlaneIntersection (line, planeNormal, pointOnPlane) {
const [p0, p1] = line
const dir = vec3.subtract([], p1, p0)
const t = vec3.dot(vec3.subtract([], pointOnPlane, p0), planeNormal) / vec3.dot(dir, planeNormal)
return t >= 0 && t <= 1 ? vec3.add([], vec3.scale([], dir, t), p0) : null
}
function getLinePlaneIntersection (line, planeNormal, pointOnPlane) {
const [p0, p1] = line
const dir = vec3.subtract([], p1, p0)
const t = vec3.dot(vec3.subtract([], pointOnPlane, p0), planeNormal) / vec3.dot(dir, planeNormal)
return t >= 0 && t <= 1 ? vec3.add([], vec3.scale([], dir, t), p0) : null
}