AeonGUI
A portable video game graphic user interface library.
Loading...
Searching...
No Matches
DOMMatrix.hpp
1/*
2Copyright (C) 2025,2026 Rodrigo Jose Hernandez Cordoba
3
4Licensed under the Apache License, Version 2.0 (the "License");
5you may not use this file except in compliance with the License.
6You may obtain a copy of the License at
7
8http://www.apache.org/licenses/LICENSE-2.0
9
10Unless required by applicable law or agreed to in writing, software
11distributed under the License is distributed on an "AS IS" BASIS,
12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the License for the specific language governing permissions and
14limitations under the License.
15*/
16#ifndef AEONGUI_DOMMATRIX_HPP
17#define AEONGUI_DOMMATRIX_HPP
18
19#include "aeongui/Platform.hpp"
20#include "aeongui/dom/DOMMatrixReadOnly.hpp"
21
22namespace AeonGUI
23{
24 namespace DOM
25 {
32 class DLL DOMMatrix : public DOMMatrixReadOnly
33 {
34 public:
38 DOMMatrix ( std::initializer_list<float> values = {1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f} );
40 virtual ~DOMMatrix();
41
42 // Bring base class getters into scope
65
69 float a ( float newA );
71 float b ( float newB );
73 float c ( float newC );
75 float d ( float newD );
77 float e ( float newE );
79 float f ( float newF );
81
85 float m11 ( float newM11 );
87 float m12 ( float newM12 );
89 float m13 ( float newM13 );
91 float m14 ( float newM14 );
93 float m21 ( float newM21 );
95 float m22 ( float newM22 );
97 float m23 ( float newM23 );
99 float m24 ( float newM24 );
101 float m31 ( float newM31 );
103 float m32 ( float newM32 );
105 float m33 ( float newM33 );
107 float m34 ( float newM34 );
109 float m41 ( float newM41 );
111 float m42 ( float newM42 );
113 float m43 ( float newM43 );
115 float m44 ( float newM44 );
117
124 DOMMatrix& multiplySelf ( const DOMMatrixReadOnly& other );
134 DOMMatrix& translateSelf ( float tx, float ty = 0, float tz = 0 );
140 DOMMatrix& scaleSelf ( float sx, float sy = 1, float sz = 1 );
146 DOMMatrix& scale3dSelf ( float sx, float sy = 1, float sz = 1 );
152 DOMMatrix& rotateSelf ( float rx, float ry = 0, float rz = 0 );
159 DOMMatrix& rotateAxisAngleSelf ( float x, float y, float z, float angle );
164 DOMMatrix& rotateFromVectorSelf ( float rotX, float rotY );
168 DOMMatrix& skewXSelf ( float angle );
172 DOMMatrix& skewYSelf ( float angle );
173 private:
174 };
175 }
176}
177
178#endif
Platform-specific DLL import/export macros and compiler helpers.
float m23(float newM23)
Set m23.
Definition DOMMatrix.cpp:110
float b(float newB)
Set element b.
Definition DOMMatrix.cpp:35
float m11(float newM11)
Set m11.
Definition DOMMatrix.cpp:66
float m24(float newM24)
Set m24.
Definition DOMMatrix.cpp:120
float m31(float newM31)
Set m31.
Definition DOMMatrix.cpp:130
float m32(float newM32)
Set m32.
Definition DOMMatrix.cpp:140
DOMMatrix & scaleSelf(float sx, float sy=1, float sz=1)
Scale in place.
Definition DOMMatrix.cpp:235
DOMMatrix & translateSelf(float tx, float ty=0, float tz=0)
Translate in place.
Definition DOMMatrix.cpp:227
float m33(float newM33)
Set m33.
Definition DOMMatrix.cpp:150
float d(float newD)
Set element d.
Definition DOMMatrix.cpp:47
DOMMatrix(std::initializer_list< float > values={1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f})
Construct from an initializer list.
Definition DOMMatrix.cpp:22
DOMMatrix & skewXSelf(float angle)
Skew along X in place.
Definition DOMMatrix.cpp:274
float c(float newC)
Set element c.
Definition DOMMatrix.cpp:41
DOMMatrix & rotateFromVectorSelf(float rotX, float rotY)
Rotate from a direction vector in place.
Definition DOMMatrix.cpp:266
float m21(float newM21)
Set m21.
Definition DOMMatrix.cpp:98
DOMMatrix & invertSelf()
Invert this matrix in place.
Definition DOMMatrix.cpp:203
float m41(float newM41)
Set m41.
Definition DOMMatrix.cpp:170
DOMMatrix & rotateSelf(float rx, float ry=0, float rz=0)
Rotate in place.
Definition DOMMatrix.cpp:250
virtual ~DOMMatrix()
Destructor.
float m22(float newM22)
Set m22.
Definition DOMMatrix.cpp:104
float m42(float newM42)
Set m42.
Definition DOMMatrix.cpp:176
DOMMatrix & scale3dSelf(float sx, float sy=1, float sz=1)
Uniform 3D scale in place.
Definition DOMMatrix.cpp:244
float f(float newF)
Set element f.
Definition DOMMatrix.cpp:59
float m44(float newM44)
Set m44.
Definition DOMMatrix.cpp:192
float m14(float newM14)
Set m14.
Definition DOMMatrix.cpp:88
DOMMatrix & skewYSelf(float angle)
Skew along Y in place.
Definition DOMMatrix.cpp:282
float m34(float newM34)
Set m34.
Definition DOMMatrix.cpp:160
float e(float newE)
Set element e.
Definition DOMMatrix.cpp:53
float m13(float newM13)
Set m13.
Definition DOMMatrix.cpp:78
float m12(float newM12)
Set m12.
Definition DOMMatrix.cpp:72
DOMMatrix & rotateAxisAngleSelf(float x, float y, float z, float angle)
Rotate around an axis in place.
Definition DOMMatrix.cpp:258
DOMMatrix & multiplySelf(const DOMMatrixReadOnly &other)
Post-multiply this matrix by another in place.
Definition DOMMatrix.cpp:211
DOMMatrix & preMultiplySelf(const DOMMatrixReadOnly &other)
Pre-multiply this matrix by another in place.
Definition DOMMatrix.cpp:219
float a(float newA)
Set element a.
Definition DOMMatrix.cpp:29
float m43(float newM43)
Set m43.
Definition DOMMatrix.cpp:182
float m12() const
Get row 1, column 2.
Definition DOMMatrixReadOnly.cpp:101
float f() const
Get element f (alias m42 / translateY).
Definition DOMMatrixReadOnly.cpp:91
float m34() const
Get row 3, column 4.
Definition DOMMatrixReadOnly.cpp:141
float m14() const
Get row 1, column 4.
Definition DOMMatrixReadOnly.cpp:109
DOMMatrixReadOnly(std::initializer_list< float > values={1, 0, 0, 1, 0, 0})
Construct from an initializer list.
Definition DOMMatrixReadOnly.cpp:24
float m41() const
Get row 4, column 1.
Definition DOMMatrixReadOnly.cpp:145
float a() const
Get element a (alias m11).
Definition DOMMatrixReadOnly.cpp:71
float d() const
Get element d (alias m22).
Definition DOMMatrixReadOnly.cpp:83
float m13() const
Get row 1, column 3.
Definition DOMMatrixReadOnly.cpp:105
float m32() const
Get row 3, column 2.
Definition DOMMatrixReadOnly.cpp:133
float e() const
Get element e (alias m41 / translateX).
Definition DOMMatrixReadOnly.cpp:87
float m43() const
Get row 4, column 3.
Definition DOMMatrixReadOnly.cpp:153
float c() const
Get element c (alias m21).
Definition DOMMatrixReadOnly.cpp:79
float m23() const
Get row 2, column 3.
Definition DOMMatrixReadOnly.cpp:121
float m21() const
Get row 2, column 1.
Definition DOMMatrixReadOnly.cpp:113
float m31() const
Get row 3, column 1.
Definition DOMMatrixReadOnly.cpp:129
float m33() const
Get row 3, column 3.
Definition DOMMatrixReadOnly.cpp:137
float m44() const
Get row 4, column 4.
Definition DOMMatrixReadOnly.cpp:157
float b() const
Get element b (alias m12).
Definition DOMMatrixReadOnly.cpp:75
float m24() const
Get row 2, column 4.
Definition DOMMatrixReadOnly.cpp:125
float m42() const
Get row 4, column 2.
Definition DOMMatrixReadOnly.cpp:149
float m22() const
Get row 2, column 2.
Definition DOMMatrixReadOnly.cpp:117
float m11() const
Get row 1, column 1.
Definition DOMMatrixReadOnly.cpp:97