diff options
author | Christopher Faylor <me@cgf.cx> | 2012-11-07 16:52:48 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2012-11-07 16:52:48 +0000 |
commit | 61746d6ae850aa6a89b0c0b00c609011c6d0ade9 (patch) | |
tree | 95552490c8ee6f3bf8b0f2d37e61bbc9dafe7a7b /winsup/w32api/include/gdiplus/gdiplusmatrix.h | |
parent | 2ca28ea2dc0c397b9a11072e121e1c5b6f87650b (diff) | |
download | cygnal-61746d6ae850aa6a89b0c0b00c609011c6d0ade9.tar.gz cygnal-61746d6ae850aa6a89b0c0b00c609011c6d0ade9.tar.bz2 cygnal-61746d6ae850aa6a89b0c0b00c609011c6d0ade9.zip |
* mingw: Delete obsolete directory.
* w32api: Ditto.
Diffstat (limited to 'winsup/w32api/include/gdiplus/gdiplusmatrix.h')
-rwxr-xr-x | winsup/w32api/include/gdiplus/gdiplusmatrix.h | 240 |
1 files changed, 0 insertions, 240 deletions
diff --git a/winsup/w32api/include/gdiplus/gdiplusmatrix.h b/winsup/w32api/include/gdiplus/gdiplusmatrix.h deleted file mode 100755 index 626e0dab1..000000000 --- a/winsup/w32api/include/gdiplus/gdiplusmatrix.h +++ /dev/null @@ -1,240 +0,0 @@ -/*
- * gdiplusmatrix.h
- *
- * GDI+ Matrix class
- *
- * This file is part of the w32api package.
- *
- * Contributors:
- * Created by Markus Koenig <markus@stber-koenig.de>
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#ifndef __GDIPLUS_MATRIX_H
-#define __GDIPLUS_MATRIX_H
-#if __GNUC__ >=3
-#pragma GCC system_header
-#endif
-
-#ifndef __cplusplus
-#error "A C++ compiler is required to include gdiplusmatrix.h."
-#endif
-
-#define GDIP_MATRIX_PI \
- 3.1415926535897932384626433832795028841971693993751058209749445923078164
-
-class Matrix: public GdiplusBase
-{
- friend class Graphics;
- friend class GraphicsPath;
- friend class LinearGradientBrush;
- friend class PathGradientBrush;
- friend class Pen;
- friend class Region;
- friend class TextureBrush;
-
-public:
- Matrix(): nativeMatrix(NULL), lastStatus(Ok)
- {
- lastStatus = DllExports::GdipCreateMatrix(&nativeMatrix);
- }
- Matrix(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy):
- nativeMatrix(NULL), lastStatus(Ok)
- {
- lastStatus = DllExports::GdipCreateMatrix2(
- m11, m12, m21, m22, dx, dy,
- &nativeMatrix);
- }
- Matrix(const RectF& rect, const PointF *dstplg):
- nativeMatrix(NULL), lastStatus(Ok)
- {
- lastStatus = DllExports::GdipCreateMatrix3(
- &rect, dstplg, &nativeMatrix);
- }
- Matrix(const Rect& rect, const Point *dstplg):
- nativeMatrix(NULL), lastStatus(Ok)
- {
- lastStatus = DllExports::GdipCreateMatrix3I(
- &rect, dstplg, &nativeMatrix);
- }
- ~Matrix()
- {
- DllExports::GdipDeleteMatrix(nativeMatrix);
- }
- Matrix* Clone() const
- {
- GpMatrix *cloneMatrix = NULL;
- Status status = updateStatus(DllExports::GdipCloneMatrix(
- nativeMatrix, &cloneMatrix));
- if (status == Ok) {
- Matrix *result = new Matrix(cloneMatrix, lastStatus);
- if (!result) {
- DllExports::GdipDeleteMatrix(cloneMatrix);
- lastStatus = OutOfMemory;
- }
- return result;
- } else {
- return NULL;
- }
- }
-
- BOOL Equals(const Matrix *matrix) const
- {
- BOOL result;
- updateStatus(DllExports::GdipIsMatrixEqual(
- nativeMatrix,
- matrix ? matrix->nativeMatrix : NULL, &result));
- return result;
- }
- Status GetElements(REAL *m) const
- {
- return updateStatus(DllExports::GdipGetMatrixElements(
- nativeMatrix, m));
- }
- Status GetLastStatus() const
- {
- Status result = lastStatus;
- lastStatus = Ok;
- return result;
- }
- Status Invert()
- {
- return updateStatus(DllExports::GdipInvertMatrix(nativeMatrix));
- }
- BOOL IsIdentity() const
- {
- BOOL result;
- updateStatus(DllExports::GdipIsMatrixIdentity(
- nativeMatrix, &result));
- return result;
- }
- BOOL IsInvertible() const
- {
- BOOL result;
- updateStatus(DllExports::GdipIsMatrixInvertible(
- nativeMatrix, &result));
- return result;
- }
- Status Multiply(const Matrix *matrix,
- MatrixOrder order = MatrixOrderPrepend)
- {
- return updateStatus(DllExports::GdipMultiplyMatrix(
- nativeMatrix,
- matrix ? matrix->nativeMatrix : NULL, order));
- }
- REAL OffsetX() const
- {
- REAL m[6];
- updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m));
- return m[4];
- }
- REAL OffsetY() const
- {
- REAL m[6];
- updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m));
- return m[5];
- }
- Status Reset()
- {
- return updateStatus(DllExports::GdipSetMatrixElements(
- nativeMatrix,
- 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
- }
- Status Rotate(REAL angle, MatrixOrder order = MatrixOrderPrepend)
- {
- return updateStatus(DllExports::GdipRotateMatrix(
- nativeMatrix, angle, order));
- }
- Status RotateAt(REAL angle, const PointF& center,
- MatrixOrder order = MatrixOrderPrepend)
- {
- REAL angleRadian = angle * GDIP_MATRIX_PI / 180.0f;
- REAL cosAngle = ::cos(angleRadian);
- REAL sinAngle = ::sin(angleRadian);
- REAL x = center.X;
- REAL y = center.Y;
-
- Matrix matrix2(cosAngle, sinAngle, -sinAngle, cosAngle,
- x * (1.0f-cosAngle) + y * sinAngle,
- -x * sinAngle + y * (1.0f-cosAngle));
- Status status = matrix2.GetLastStatus();
- if (status == Ok) {
- return Multiply(&matrix2, order);
- } else {
- return lastStatus = status;
- }
- }
- Status Scale(REAL scaleX, REAL scaleY,
- MatrixOrder order = MatrixOrderPrepend)
- {
- return updateStatus(DllExports::GdipScaleMatrix(
- nativeMatrix, scaleX, scaleY, order));
- }
- Status SetElements(REAL m11, REAL m12, REAL m21, REAL m22,
- REAL dx, REAL dy)
- {
- return updateStatus(DllExports::GdipSetMatrixElements(
- nativeMatrix, m11, m12, m21, m22, dx, dy));
- }
- Status Shear(REAL shearX, REAL shearY,
- MatrixOrder order = MatrixOrderPrepend)
- {
- return updateStatus(DllExports::GdipShearMatrix(
- nativeMatrix, shearX, shearY, order));
- }
- Status TransformPoints(PointF *pts, INT count = 1) const
- {
- return updateStatus(DllExports::GdipTransformMatrixPoints(
- nativeMatrix, pts, count));
- }
- Status TransformPoints(Point *pts, INT count = 1) const
- {
- return updateStatus(DllExports::GdipTransformMatrixPointsI(
- nativeMatrix, pts, count));
- }
- Status TransformVectors(PointF *pts, INT count = 1) const
- {
- return updateStatus(DllExports::GdipVectorTransformMatrixPoints(
- nativeMatrix, pts, count));
- }
- Status TransformVectors(Point *pts, INT count = 1) const
- {
- return updateStatus(DllExports::GdipVectorTransformMatrixPointsI(
- nativeMatrix, pts, count));
- }
- Status Translate(REAL offsetX, REAL offsetY,
- MatrixOrder order = MatrixOrderPrepend)
- {
- return updateStatus(DllExports::GdipTranslateMatrix(
- nativeMatrix, offsetX, offsetY, order));
- }
-
-private:
- Matrix(GpMatrix *matrix, Status status):
- nativeMatrix(matrix), lastStatus(status) {}
- Matrix(const Matrix&);
- Matrix& operator=(const Matrix&);
-
- Status updateStatus(Status newStatus) const
- {
- if (newStatus != Ok) lastStatus = newStatus;
- return newStatus;
- }
-
- GpMatrix *nativeMatrix;
- mutable Status lastStatus;
-};
-
-#undef GDIP_MATRIX_PI
-
-#endif /* __GDIPLUS_MATRIX_H */
|