public static void InvertMatrix(Matrix dst, Matrix src) { float dt = src.scaleX * src.scaleY - src.skew0 * src.skew1; if (dt != 0.0f) { dst.scaleX = src.scaleY / dt; dst.skew0 = -src.skew0 / dt; dst.translateX = (src.skew0 * src.translateY - src.translateX * src.scaleY) / dt; dst.skew1 = -src.skew1 / dt; dst.scaleY = src.scaleX / dt; dst.translateY = (src.translateX * src.skew1 - src.scaleX * src.translateY) / dt; } else { dst.Clear(); } }
public static void CopyMatrix(Matrix dst, Matrix src) { if (src == null) dst.Clear(); else dst.Set(src); }
public static Matrix CopyMatrix(Matrix dst, Matrix src) { if (src == null) dst.Clear(); else dst.Set(src); return dst; }