41 AffineMatrix(
float x1,
float x2,
float x3,
float x4,
float y1,
float y2,
float y3,
float y4,
float z1,
float z2,
42 float z3,
float z4,
float w1,
float w2,
float w3,
float w4);
109 auto operator()(
int row,
int col)
const -> float;
111 auto get(
int row,
int col) ->
float&;
112 auto get(
int row,
int col)
const -> float;
114 auto data() const -> const
float*;
115 auto
data() ->
float*;
121 j.at(
"v1").push_back(a.get(0, 0));
122 j.at(
"v1").push_back(a.get(0, 1));
123 j.at(
"v1").push_back(a.get(0, 2));
124 j.at(
"v1").push_back(a.get(0, 3));
126 j.at(
"v2").push_back(a.get(1, 0));
127 j.at(
"v2").push_back(a.get(1, 1));
128 j.at(
"v2").push_back(a.get(1, 2));
129 j.at(
"v2").push_back(a.get(1, 3));
131 j.at(
"v3").push_back(a.get(2, 0));
132 j.at(
"v3").push_back(a.get(2, 1));
133 j.at(
"v3").push_back(a.get(2, 2));
134 j.at(
"v3").push_back(a.get(2, 3));
136 j.at(
"v4").push_back(a.get(3, 0));
137 j.at(
"v4").push_back(a.get(3, 1));
138 j.at(
"v4").push_back(a.get(3, 2));
139 j.at(
"v4").push_back(a.get(3, 3));
144 a.get(0, 0) = j.at(
"v1")[0];
145 a.get(0, 1) = j.at(
"v1")[1];
146 a.get(0, 2) = j.at(
"v1")[2];
147 a.get(0, 3) = j.at(
"v1")[3];
149 a.get(1, 0) = j.at(
"v2")[0];
150 a.get(1, 1) = j.at(
"v2")[1];
151 a.get(1, 2) = j.at(
"v2")[2];
152 a.get(1, 3) = j.at(
"v2")[3];
154 a.get(2, 0) = j.at(
"v3")[0];
155 a.get(2, 1) = j.at(
"v3")[1];
156 a.get(2, 2) = j.at(
"v3")[2];
157 a.get(2, 3) = j.at(
"v3")[3];
159 a.get(3, 0) = j.at(
"v4")[0];
160 a.get(3, 1) = j.at(
"v4")[1];
161 a.get(3, 2) = j.at(
"v4")[2];
162 a.get(3, 3) = j.at(
"v4")[3];
nlohmann::json json
Definition Json.cpp:19
auto invert() -> void
Definition AffineMatrix.cpp:233
auto transpose() -> AffineMatrix &
Transposes the current matrix.
Definition AffineMatrix.cpp:135
auto rotate(float angle) -> AffineMatrix &
Definition AffineMatrix.cpp:167
auto operator()(int row, int col) -> float &
Definition AffineMatrix.cpp:203
auto get(int row, int col) -> float &
Definition AffineMatrix.cpp:213
auto operator*(const AffineMatrix &Other) const -> AffineMatrix
NOTE: THIS MULTIPLIES MATRICES AS THEY ARE WRITTEN (UNLIKE *=) e.g.
Definition AffineMatrix.cpp:113
auto scale(float s) -> AffineMatrix &
Definition AffineMatrix.cpp:141
auto identity() -> AffineMatrix &
Converts the current matrix into the identity matrix.
Definition AffineMatrix.cpp:125
Eigen::Matrix4f matrix
Definition AffineMatrix.h:167
auto translate(float x, float y) -> AffineMatrix &
Definition AffineMatrix.cpp:183
auto operator*=(const AffineMatrix &Other) -> AffineMatrix &
NOTE: THIS FLIPS MULTIPLICATION ORDER SO THE MATRICES PROPERLY MULTIPLY e.g.
Definition AffineMatrix.cpp:99
friend auto to_json(json &j, const AffineMatrix &a)
Definition AffineMatrix.h:119
friend auto from_json(const json &j, AffineMatrix &a) -> void
Definition AffineMatrix.h:142
AffineMatrix()
Definition AffineMatrix.cpp:36
static auto bindLuaTypes(sol::state &lua) -> void
Definition AffineMatrix.cpp:21
auto operator=(const AffineMatrix &) -> AffineMatrix &=default
AffineMatrix(const AffineMatrix &)=default
auto data() const -> const float *
Definition AffineMatrix.cpp:223