src/third_party/specimenTools/lib/bower_components/Atem-Math-Tools/lib/hobby.js
/**
     * If you need both tension values, this version is more efficient
     * than calling posttension and pretension.
     */
If you need both tension values, this version is more efficient
than calling posttension and pretension.
If you need both tension values this version is more efficient than calling posttension and pretension .
function control2tension(p0, p1, p2, p3) {
        var diffp0p1 = p1['-'](p0)
          , diffp3p2 = p3['-'](p2)
          , dir0 = diffp0p1.angle()
          , dir1 = diffp3p2.angle()
          , alpha = diffp0p1.magnitude()
          , beta = diffp3p2.magnitude()
          ;
        return _magnitude2tension(p0, dir0, alpha, beta, dir1, p3);
    }
function control2tension ( p0 , p1 , p2 , p3 ) { var diffp0p1 = p1 [ '-' ] ( p0 ) , diffp3p2 = p3 [ '-' ] ( p2 ) , dir0 = diffp0p1 . angle ( ) , dir1 = diffp3p2 . angle ( ) , alpha = diffp0p1 . magnitude ( ) , beta = diffp3p2 . magnitude ( ) ; return _magnitude2tension ( p0 , dir0 , alpha , beta , dir1 , p3 ) ; }
If you need both tension values, this version is more efficient
 than calling posttension and pretension.
If you need both tension values this version is more efficient than calling posttension and pretension .