public static TSVector3 Normalize(TSVector3 value) { TSVector3 result; TSVector3.Normalize(ref value, out result); return(result); }
public static void LookAt(TSVector3 forward, TSVector3 upwards, out TSMatrix result) { TSVector3 zaxis = forward; zaxis.Normalize(); TSVector3 xaxis = TSVector3.Cross(upwards, zaxis); xaxis.Normalize(); TSVector3 yaxis = TSVector3.Cross(zaxis, xaxis); result.M11 = xaxis.x; result.M21 = yaxis.x; result.M31 = zaxis.x; result.M12 = xaxis.y; result.M22 = yaxis.y; result.M32 = zaxis.y; result.M13 = xaxis.z; result.M23 = yaxis.z; result.M33 = zaxis.z; }
public static TSQuaternion AngleAxis(FP angle, TSVector3 axis) { axis = axis * FP.Deg2Rad; axis.Normalize(); FP halfAngle = angle * FP.Deg2Rad * FP.Half; TSQuaternion rotation; FP sin = FP.Sin(halfAngle); rotation.x = axis.x * sin; rotation.y = axis.y * sin; rotation.z = axis.z * sin; rotation.w = FP.Cos(halfAngle); return(rotation); }