public double[] GetRightDirMtx() { double CP, SP, CY, SY; SinCos(out SP, out CP, DegreesToRadians(Pitch)); SinCos(out SY, out CY, DegreesToRadians(Yaw)); FVector V = new FVector(CP * CY, CP * SY, SP); FVector up = new FVector(0, 0, 1); FVector right = V.CrossProduct(up); FRotator outRot = new FRotator(0, 0, 0); return(outRot.MakeFromX(right)); }
public double[] GetLeftDirMtx() { double CP, SP, CY, SY; SinCos(out SP, out CP, DegreesToRadians(Pitch)); SinCos(out SY, out CY, DegreesToRadians(Yaw)); FVector V = new FVector(CP * CY, CP * SY, SP); FVector up = new FVector(0, 0, 1); FVector right = V.CrossProduct(up); FVector left = right; left.X *= -1.0 * right.X; left.Y *= -1.0 * right.Y; left.Z *= -1.0 * right.Z; FRotator outRot = new FRotator(0, 0, 0); return(outRot.MakeFromX(left)); }