rotateY.js
function rotateY(out, a, b, c){
    var bx = b[0]
    var bz = b[2]

    // translate point to the origin
    var px = a[0] - bx
    var pz = a[2] - bz
    
    var sc = Math.sin(c)
    var cc = Math.cos(c)
  
    // perform rotation and translate to correct position
    out[0] = bx + pz * sc + px * cc
    out[1] = a[1]
    out[2] = bz + pz * cc - px * sc
  
    return out
}
function rotateY(out, a, b, c){
    var bx = b[0]
    var bz = b[2]

    // translate point to the origin
    var px = a[0] - bx
    var pz = a[2] - bz
    
    var sc = Math.sin(c)
    var cc = Math.cos(c)
  
    // perform rotation and translate to correct position
    out[0] = bx + pz * sc + px * cc
    out[1] = a[1]
    out[2] = bz + pz * cc - px * sc
  
    return out
}
function rotateY ( out , a , b , c ) { var bx = b [ 0 ] var bz = b [ 2 ] // translate point to the origin var px = a [ 0 ] - bx var pz = a [ 2 ] - bz var sc = Math . sin ( c ) var cc = Math . cos ( c ) // perform rotation and translate to correct position out [ 0 ] = bx + pz * sc + px * cc out [ 1 ] = a [ 1 ] out [ 2 ] = bz + pz * cc - px * sc return out }
Rotate a 3D vector around the y-axis
@param {vec3} out The receiving vec3
@param {vec3} a The vec3 point to rotate
@param {vec3} b The origin of the rotation
@param {Number} c The angle of rotation
@returns {vec3} out
Rotate a 3D vector around the y - axis