//\r
// System.Drawing.Drawing2D.Matrix.cs\r
//\r
-// Author:\r
+// Authors:\r
// Stefan Maierhofer <sm@cg.tuwien.ac.at>\r
// Dennis Hayes (dennish@Raytek.com)\r
// Duncan Mak (duncan@ximian.com)\r
+// Ravindra (rkumar@novell.com)
//\r
-// (C) Ximian, Inc. http://www.ximian.com\r
+// (C) Ximian, Inc. http://www.ximian.com
+// (C) Novell, Inc. http://www.novell.com\r
//\r
\r
using System;\r
\r
public Matrix ()\r
{\r
- Status s = GDIPlus.GdipCreateMatrix (out nativeMatrix);\r
+ Status status = GDIPlus.GdipCreateMatrix (out nativeMatrix);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public Matrix (Rectangle rect , Point[] plgpts)\r
{\r
- GDIPlus.GdipCreateMatrix3I (rect, plgpts, out nativeMatrix);\r
+ Status status = GDIPlus.GdipCreateMatrix3I (rect, plgpts, out nativeMatrix);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public Matrix (RectangleF rect , PointF[] pa)\r
{\r
- GDIPlus.GdipCreateMatrix3 (rect, pa, out nativeMatrix);\r
+ Status status = GDIPlus.GdipCreateMatrix3 (rect, pa, out nativeMatrix);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public Matrix (float m11, float m12, float m21, float m22, float dx, float dy)\r
{\r
- GDIPlus.GdipCreateMatrix2 (m11, m12, m21, m22, dx, dy, out nativeMatrix);\r
+ Status status = GDIPlus.GdipCreateMatrix2 (m11, m12, m21, m22, dx, dy, out nativeMatrix);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
// properties\r
IntPtr tmp = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (float)) * 6);\r
float [] retval = new float [6];\r
\r
- Status s = GDIPlus.GdipGetMatrixElements (nativeMatrix, tmp);\r
+ Status status = GDIPlus.GdipGetMatrixElements (nativeMatrix, tmp);\r
+ GDIPlus.CheckStatus (status);
\r
Marshal.Copy (tmp, retval, 0, 6);\r
\r
public bool IsIdentity {\r
get {\r
bool retval;\r
- GDIPlus.GdipIsMatrixIdentity (nativeMatrix, out retval);\r
-\r
+ Status status = GDIPlus.GdipIsMatrixIdentity (nativeMatrix, out retval);\r
+ GDIPlus.CheckStatus (status);\r
return retval;\r
}\r
}\r
public bool IsInvertible {\r
get {\r
bool retval;\r
- GDIPlus.GdipIsMatrixInvertible (nativeMatrix, out retval);\r
-\r
+ Status status = GDIPlus.GdipIsMatrixInvertible (nativeMatrix, out retval);\r
+ GDIPlus.CheckStatus (status);\r
return retval;\r
}\r
}\r
public Matrix Clone()\r
{\r
IntPtr retval;\r
- Status s = GDIPlus.GdipCloneMatrix (nativeMatrix, out retval);\r
+ Status status = GDIPlus.GdipCloneMatrix (nativeMatrix, out retval);
+ GDIPlus.CheckStatus (status);\r
return new Matrix (retval);\r
}\r
\r
\r
public void Dispose ()\r
{\r
- GDIPlus.GdipDeleteMatrix (nativeMatrix); \r
+ Status status = GDIPlus.GdipDeleteMatrix (nativeMatrix);
+ GDIPlus.CheckStatus (status);\r
} \r
\r
public override bool Equals (object obj)\r
\r
if (m != null) {\r
bool retval;\r
- GDIPlus.GdipIsMatrixEqual (nativeMatrix, m.nativeMatrix, out retval);\r
-\r
+ Status status = GDIPlus.GdipIsMatrixEqual (nativeMatrix, m.nativeMatrix, out retval);
+ GDIPlus.CheckStatus (status);\r
return retval;\r
\r
} else\r
\r
public void Invert ()\r
{\r
- GDIPlus.GdipInvertMatrix (nativeMatrix);\r
+ Status status = GDIPlus.GdipInvertMatrix (nativeMatrix);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void Multiply (Matrix matrix)\r
\r
public void Multiply (Matrix matrix, MatrixOrder order)\r
{\r
- GDIPlus.GdipMultiplyMatrix (nativeMatrix, matrix.nativeMatrix, order);\r
+ Status status = GDIPlus.GdipMultiplyMatrix (nativeMatrix, matrix.nativeMatrix, order);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void Reset()\r
{\r
- GDIPlus.GdipSetMatrixElements (nativeMatrix, 1, 0, 0, 1, 0, 0);\r
+ Status status = GDIPlus.GdipSetMatrixElements (nativeMatrix, 1, 0, 0, 1, 0, 0);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void Rotate (float angle)\r
\r
public void Rotate (float angle, MatrixOrder order)\r
{\r
- GDIPlus.GdipRotateMatrix (nativeMatrix, angle, order);\r
+ Status status = GDIPlus.GdipRotateMatrix (nativeMatrix, angle, order);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void RotateAt (float angle, PointF point)\r
float sin = (float) Math.Sin (angle);\r
float e4 = -point.X * cos + point.Y * sin + point.X;\r
float e5 = -point.X * sin - point.Y * cos + point.Y;\r
- float[] m = this.Elements;\r
+ float[] m = this.Elements;
+\r
+ Status status;
\r
if (order == MatrixOrder.Prepend)\r
- GDIPlus.GdipSetMatrixElements (nativeMatrix,\r
- cos * m[0] + sin * m[2],\r
- cos * m[1] + sin * m[3],\r
- -sin * m[0] + cos * m[2],\r
- -sin * m[1] + cos * m[3],\r
- e4 * m[0] + e5 * m[2] + m[4],\r
- e4 * m[1] + e5 * m[3] + m[5]);\r
+ status = GDIPlus.GdipSetMatrixElements (nativeMatrix,\r
+ cos * m[0] + sin * m[2],\r
+ cos * m[1] + sin * m[3],\r
+ -sin * m[0] + cos * m[2],\r
+ -sin * m[1] + cos * m[3],\r
+ e4 * m[0] + e5 * m[2] + m[4],\r
+ e4 * m[1] + e5 * m[3] + m[5]);\r
else\r
- GDIPlus.GdipSetMatrixElements (nativeMatrix,\r
- m[0] * cos + m[1] * -sin,\r
- m[0] * sin + m[1] * cos,\r
- m[2] * cos + m[3] * -sin,\r
- m[2] * sin + m[3] * cos,\r
- m[4] * cos + m[5] * -sin + e4,\r
- m[4] * sin + m[5] * cos + e5);\r
+ status = GDIPlus.GdipSetMatrixElements (nativeMatrix,\r
+ m[0] * cos + m[1] * -sin,\r
+ m[0] * sin + m[1] * cos,\r
+ m[2] * cos + m[3] * -sin,\r
+ m[2] * sin + m[3] * cos,\r
+ m[4] * cos + m[5] * -sin + e4,\r
+ m[4] * sin + m[5] * cos + e5);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void Scale (float scaleX, float scaleY)\r
\r
public void Scale (float scaleX, float scaleY, MatrixOrder order)\r
{\r
- GDIPlus.GdipScaleMatrix (nativeMatrix, scaleX, scaleY, order);\r
+ Status status = GDIPlus.GdipScaleMatrix (nativeMatrix, scaleX, scaleY, order);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void Shear (float shearX, float shearY)\r
\r
public void Shear (float shearX, float shearY, MatrixOrder order)\r
{\r
- GDIPlus.GdipShearMatrix (nativeMatrix, shearX, shearY, order);\r
+ Status status = GDIPlus.GdipShearMatrix (nativeMatrix, shearX, shearY, order);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void TransformPoints (Point[] pts)\r
{\r
- GDIPlus.GdipTransformMatrixPointsI (nativeMatrix, pts, pts.Length);\r
+ Status status = GDIPlus.GdipTransformMatrixPointsI (nativeMatrix, pts, pts.Length);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void TransformPoints (PointF[] pts)\r
{\r
- GDIPlus.GdipTransformMatrixPoints (nativeMatrix, pts, pts.Length);\r
+ Status status = GDIPlus.GdipTransformMatrixPoints (nativeMatrix, pts, pts.Length);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void TransformVectors (Point[] pts)\r
{\r
- GDIPlus.GdipVectorTransformMatrixPointsI (nativeMatrix, pts, pts.Length);\r
+ Status status = GDIPlus.GdipVectorTransformMatrixPointsI (nativeMatrix, pts, pts.Length);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void TransformVectors (PointF[] pts)\r
{\r
- GDIPlus.GdipVectorTransformMatrixPoints (nativeMatrix, pts, pts.Length); \r
+ Status status = GDIPlus.GdipVectorTransformMatrixPoints (nativeMatrix, pts, pts.Length);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void Translate (float offsetX, float offsetY)\r
\r
public void Translate (float offsetX, float offsetY, MatrixOrder order)\r
{\r
- GDIPlus.GdipTranslateMatrix (nativeMatrix, offsetX, offsetY, order);\r
+ Status status = GDIPlus.GdipTranslateMatrix (nativeMatrix, offsetX, offsetY, order);
+ GDIPlus.CheckStatus (status);\r
}\r
\r
public void VectorTransformPoints (Point[] pts)\r