internal double GetSquaredTransformedWidth(geom.AffineTransform coordsTransform) { geom.AffineTransform transform = _transform.NativeObject; double A = transform.getScaleX(); // m00 double B = transform.getShearY(); // m10 double C = transform.getShearX(); // m01 double D = transform.getScaleY(); // m11 double K = coordsTransform.getScaleX(); // m00 double L = coordsTransform.getShearY(); // m10 double M = coordsTransform.getShearX(); // m01 double N = coordsTransform.getScaleY(); // m11 double AD = A*D, BC = B*C, KN = K*N, LM = L*M; double KN_LM = KN-LM; return Math.Abs(Width*Width * (AD*KN_LM - BC*KN_LM)); }