2#ifndef _aspose_drawing_drawing2d_matrix_h_
3#define _aspose_drawing_drawing2d_matrix_h_
5#include "system/array.h"
8#include "drawing/drawing2d/matrix_order.h"
9#include "drawing/point.h"
10#include "drawing/point_f.h"
11#include "drawing/point.h"
12#include "drawing/rectangle_f.h"
14#include "system/details/array_view.h"
18#ifdef ASPOSECPPLIB_BEING_BUILT
19#include "core/SkMatrix.h"
23ASPOSECPP_3RD_PARTY_CLASS(SkMatrix);
25namespace System {
namespace Drawing {
class Graphics; } }
26namespace System {
namespace Drawing {
class Region; } }
27namespace System {
namespace Drawing {
class TextureBrush; } }
28namespace System {
namespace Drawing {
class Pen; } }
30namespace System {
namespace Drawing {
namespace Drawing2D {
34 ASPOSECPP_3RD_PARTY_TYPE_HOLDER(SkMatrix, SkMatrix, 9*
sizeof(
float) +
sizeof(std::int32_t),
float, SkMatrixHolder);
58 ASPOSECPP_SHARED_API
Matrix(
float m11,
float m12,
float m21,
float m22,
float dx,
float dy);
81 ASPOSECPP_SHARED_API
void Reset();
91 ASPOSECPP_SHARED_API
void Rotate(
float angle);
108 ASPOSECPP_SHARED_API
void Scale(
float scaleX,
float scaleY);
118 ASPOSECPP_SHARED_API
void Shear(
float shearX,
float shearY);
127 ASPOSECPP_SHARED_API
void Translate(
float offsetX,
float offsetY);
141 ASPOSECPP_SHARED_API
void TransformPoints(
const System::Details::ArrayView<Point>& pts);
150 ASPOSECPP_SHARED_API
void TransformPoints(
const System::Details::ArrayView<PointF>& pts);
200 Detail::SkMatrixHolder m_sk_matrix;
201 bool m_is_identity =
true;
205 void Assign(
const SkMatrix& m);
207#if defined(_DEBUG) && defined(_MSC_VER)
208 struct MatrixDebugHelper
Represents a set of connected lines and curves. Objects of this class should only be allocated using ...
Definition: graphics_path.h:80
Represents a rectangular brush with a hatch style, a foreground color, and a background color....
Definition: hatch_brush.h:23
Represents a linear gradient brush. Objects of this class should only be allocated using System::Make...
Definition: linear_gradient_brush.h:50
Represents a 3x3 matrix that defines transform operations. Objects of this class should only be alloc...
Definition: matrix.h:47
bool get_IsIdentity() const
Determines if the matrix represented by the current object is an identity matrix.
void VectorTransformPoints(const ArrayPtr< Point > &pts)
Multiplies each vector in an array by the matrix represented by the current object.
void Invert()
Inverts the matrix represented by the current object.
void Rotate(float angle)
Rotates the matrix represented by the current object clockwise by the specified angle.
void TransformVectors(const ArrayPtr< PointF > &pts)
Applies only the scale and rotate components of the matrix represented by the current object to the s...
Matrix()
Constructs a new instance of Matrix class that represents an identity matrix.
bool get_IsInvertible() const
Determines if the matrix represented by the current object is invertible.
float get_OffsetX() const
Returns the X translation value of the matrix represented by the current object.
SharedPtr< Matrix > Clone() const
Creates a copy of the current object.
void TransformPoints(const ArrayPtr< PointF > &pts)
Applies the geometric transformation defined by the matrix represented by the current object to the s...
void Translate(float offsetX, float offsetY, MatrixOrder order)
Applies the specified translate vector to the matrix represented by the current object.
void Scale(float scaleX, float scaleY, MatrixOrder order)
Applies the specified scale vector to the matrix represented by the current object.
void RotateAt(float angle, const PointF &point)
Rotates the matrix represented by the current object clockwise around the specified point by the spec...
System::ArrayPtr< float > get_Elements() const
Returns an arry containing the elements of the matrix in the following order: m11,...
bool Equals(ptr obj) override
Tests whether the specified object is a Matrix and is identical to this object.
void TransformVectors(const System::Details::ArrayView< Point > &pts)
Applies only the scale and rotate components of the matrix represented by the current object to the s...
float get_OffsetY() const
Returns the Y translation value of the matrix represented by the current object.
Matrix(float m11, float m12, float m21, float m22, float dx, float dy)
Constructs a new instance of Matrix class and initializes it with the specified values.
void TransformPoints(const System::Details::ArrayView< PointF > &pts)
Applies the geometric transformation defined by the matrix represented by the current object to the s...
virtual ~Matrix()
Destructor.
void TransformVectors(const System::Details::ArrayView< PointF > &pts)
Applies only the scale and rotate components of the matrix represented by the current object to the s...
void Rotate(float angle, MatrixOrder order)
Rotates the matrix represented by the current object clockwise around the origin by the specified ang...
void TransformVectors(const ArrayPtr< Point > &pts)
Applies only the scale and rotate components of the matrix represented by the current object to the s...
void Reset()
Resets the matrix represented by the current object so that it becomes an identity matrix.
void Translate(float offsetX, float offsetY)
Applies the specified translate vector to the matrix represented by the current object.
void RotateAt(float angle, const PointF &point, MatrixOrder order)
Rotates the matrix represented by the current object clockwise around the specified point by the spec...
void Multiply(const SharedPtr< Matrix > &matrix)
Multiplies the matrix represented by the current object by the specified matrix.
void Shear(float shearX, float shearY, MatrixOrder order)
Applies the specified shear vector to the matrix represented by the current object.
void VectorTransformPoints(const System::Details::ArrayView< Point > &pts)
Multiplies each vector in an array by the matrix represented by the current object.
void Shear(float shearX, float shearY)
Applies the specified shear vector to the matrix represented by the current object.
void TransformPoints(const ArrayPtr< Point > &pts)
Applies the geometric transformation defined by the matrix represented by the current object to the s...
void TransformPoints(const System::Details::ArrayView< Point > &pts)
Applies the geometric transformation defined by the matrix represented by the current object to the s...
void Scale(float scaleX, float scaleY)
Applies the specified scale vector to the matrix represented by the current object.
Matrix(const Rectangle &rect, const ArrayPtr< Point > &plgpts)
Constructs a new instance of the Matrix class to the geometric transform defined by the specified rec...
void Dispose()
Releases all operating system resources acquired by the current object.
Definition: matrix.h:186
void Multiply(const SharedPtr< Matrix > &matrix, MatrixOrder order)
Multiplies the matrix represented by the current object by the specified matrix.
Matrix(const RectangleF &rect, const ArrayPtr< PointF > &plgpts)
Constructs a new instance of the Matrix class to the geometric transform defined by the specified rec...
Represents a brush that fills the interior of a GraphicsPath object with a gradient....
Definition: path_gradient_brush.h:39
Represents a drawing surface. Objects of this class should only be allocated using System::MakeObject...
Definition: graphics.h:68
Represents properties such as color, width etc. of the lines and curves being drawn....
Definition: pen.h:48
Represents a pair of single-precision floating point X and Y coordinates of a point on a 2-dimensiona...
Definition: point_f.h:14
Represents a rectangular area of an image defined as single-precision floating point X and Y coordina...
Definition: rectangle_f.h:15
Represents a rectangular area of an image defined as integer X and Y coordinates of its upper left co...
Definition: rectangle.h:19
Represents the interior of a graphic shape. Objects of this class should only be allocated using Syst...
Definition: region.h:42
Represents a brush that uses an image to fill the interior of a shape. Objects of this class should o...
Definition: texture_brush.h:38
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
SharedPtr< Matrix > MatrixPtr
An alias for a shared pointer to an instance of Matrix class.
Definition: matrix.h:40
MatrixOrder
Specifies the order of matrix transform operations.
Definition: matrix_order.h:7
@ Pen
Defines color adjustment information for Pen objects.
Definition: db_command.h:9