Matrix

Matrix class

Represents a 3x3 matrix that defines transform operations. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

class Matrix : public System::Object

Methods

MethodDescription
SharedPtr<Matrix> Clone() constCreates a copy of the current object.
void Dispose()Releases all operating system resources acquired by the current object.
bool Equals(ptr) overrideTests whether the specified object is a Matrix and is identical to this object.
static std::enable_if<IsSmartPtr<T1>::value&&IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares reference type objects in C# style.
static bool Equals(float const&, float const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
static bool Equals(double const&, double const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
virtual bool FastCast(const Details::FastRttiBase&, void **) constFor internal purposes only.
System::ArrayPtr<float> get_Elements() constReturns an arry containing the elements of the matrix in the following order: m11, m12, m21, m22, dx, dy.
bool get_IsIdentity() constDetermines if the matrix represented by the current object is an identity matrix.
bool get_IsInvertible() constDetermines if the matrix represented by the current object is invertible.
float get_OffsetX() constReturns the X translation value of the matrix represented by the current object.
float get_OffsetY() constReturns the Y translation value of the matrix represented by the current object.
Detail::SmartPtrCounter * GetCounter()Gets reference counter data structure associated with the object.
virtual int32_t GetHashCode() constAnalog of C# Object.GetHashCode() method. Enables hashing of custom objects.
virtual const TypeInfo& GetType() constGets actual type of object. Analog of C# System.Object.GetType() call.
void Invert()Inverts the matrix represented by the current object.
virtual bool Is(const TypeInfo&) constCheck if object represents an instance of type described by targetType. Analog of C# ‘is’ operator.
void Lock()Implements C# lock() statement locking. Call directly or use LockContext sentry object.
Matrix()Constructs a new instance of Matrix class that represents an identity matrix.
Matrix(float, float, float, float, float, float)Constructs a new instance of Matrix class and initializes it with the specified values.
Matrix(const Rectangle&, const ArrayPtr<Point>&)Constructs a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points.
Matrix(const RectangleF&, const ArrayPtr<PointF>&)Constructs a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points.
virtual ptr MemberwiseClone() constAnalog of C# Object.MemberwiseClone() method. Enables cloning custom types.
void Multiply(const SharedPtr<Matrix>&)Multiplies the matrix represented by the current object by the specified matrix.
void Multiply(const SharedPtr<Matrix>&, MatrixOrder)Multiplies the matrix represented by the current object by the specified matrix.
Object()Creates object. Initializes all internal data structures.
Object(Object const&)Copy constructor. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
Object& operator=(Object const&)Assignment operator. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
static bool ReferenceEquals(ptr const&, ptr const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, T const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, std::nullptr_t)Reference-compares value type object with nullptr.
bool ReferenceEquals(String const&, std::nullptr_t)Specialization of Object::ReferenceEquals for case of string and nullptr.
bool ReferenceEquals(String const&, String const&)Specialization of Object::ReferenceEquals for case of strings.
int RemovedSharedRefs(int)Decreases shared reference count by specified value.
void Reset()Resets the matrix represented by the current object so that it becomes an identity matrix.
void Rotate(float)Rotates the matrix represented by the current object clockwise by the specified angle.
void Rotate(float, MatrixOrder)Rotates the matrix represented by the current object clockwise around the origin by the specified angle.
void RotateAt(float, const PointF&)Rotates the matrix represented by the current object clockwise around the specified point by the specified angle.
void RotateAt(float, const PointF&, MatrixOrder)Rotates the matrix represented by the current object clockwise around the specified point by the specified angle.
void Scale(float, float)Applies the specified scale vector to the matrix represented by the current object.
void Scale(float, float, MatrixOrder)Applies the specified scale vector to the matrix represented by the current object.
virtual void SetTemplateWeakPtr(uint32_t)Set n’th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode.
int SharedCount() constGets current value of shared reference counter.
Object * SharedRefAdded()Increments shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
int SharedRefRemovedSafe()Decrements and returns shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void Shear(float, float)Applies the specified shear vector to the matrix represented by the current object.
void Shear(float, float, MatrixOrder)Applies the specified shear vector to the matrix represented by the current object.
virtual String ToString() constAnalog of C# Object.ToString() method. Enables converting custom objects to string.
void TransformPoints(const ArrayPtr<Point>&)Applies the geometric transformation defined by the matrix represented by the current object to the specified points.
void TransformPoints(const System::Details::ArrayView<Point>&)Applies the geometric transformation defined by the matrix represented by the current object to the specified points.
void TransformPoints(const ArrayPtr<PointF>&)Applies the geometric transformation defined by the matrix represented by the current object to the specified points.
void TransformPoints(const System::Details::ArrayView<PointF>&)Applies the geometric transformation defined by the matrix represented by the current object to the specified points.
void TransformVectors(const ArrayPtr<Point>&)Applies only the scale and rotate components of the matrix represented by the current object to the specified points.
void TransformVectors(const System::Details::ArrayView<Point>&)Applies only the scale and rotate components of the matrix represented by the current object to the specified points.
void TransformVectors(const ArrayPtr<PointF>&)Applies only the scale and rotate components of the matrix represented by the current object to the specified points.
void TransformVectors(const System::Details::ArrayView<PointF>&)Applies only the scale and rotate components of the matrix represented by the current object to the specified points.
void Translate(float, float)Applies the specified translate vector to the matrix represented by the current object.
void Translate(float, float, MatrixOrder)Applies the specified translate vector to the matrix represented by the current object.
static const TypeInfo& Type()Implements C# typeof(System.Object) construct.
void Unlock()Implements C# lock() statement unlocking. Call directly or use LockContext sentry object.
void VectorTransformPoints(const ArrayPtr<Point>&)Multiplies each vector in an array by the matrix represented by the current object.
void VectorTransformPoints(const System::Details::ArrayView<Point>&)Multiplies each vector in an array by the matrix represented by the current object.
Detail::SmartPtrCounter * WeakRefAdded()Increments weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void WeakRefRemoved()Decrements weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
virtual ~Matrix()Destructor.
virtual ~Object()Destroys object. Frees all internal data structures.

See Also