Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // axis angle
- float angle (vector a, b){
- return acos(dot(normalize(a),normalize(b))) ;
- }
- vector mtCross (vector a, b){
- matrix3 mt = lookat(0, -b, a) ;
- return {1,0,0} * mt ;
- }
- vector dirLerp (vector a, b; float blend){
- vector4 quat = quaternion(angle(a,b) * blend, mtCross(a,b)) ;
- return qrotate(quat, a) ;
- }
- // dihedral slerp
- vector dirLerp (vector a, b; float blend; matrix3 rot){
- vector4 quat = quaternion(dihedral(a,b)) ;
- quat = slerp({0,0,0,1}, quat, blend) ;
- rot = qconvert(quat) ;
- return qrotate(quat, a) ;
- }
Advertisement
Add Comment
Please, Sign In to add comment