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:214
auto transpose() -> AffineMatrix &
Transposes the current matrix.
Definition AffineMatrix.cpp:117
auto rotate(float angle) -> AffineMatrix &
Definition AffineMatrix.cpp:149
auto operator()(int row, int col) -> float &
Definition AffineMatrix.cpp:184
auto get(int row, int col) -> float &
Definition AffineMatrix.cpp:194
auto operator*(const AffineMatrix &Other) const -> AffineMatrix
NOTE: THIS MULTIPLIES MATRICES AS THEY ARE WRITTEN (UNLIKE *=) e.g.
Definition AffineMatrix.cpp:95
auto scale(float s) -> AffineMatrix &
Definition AffineMatrix.cpp:123
auto identity() -> AffineMatrix &
Converts the current matrix into the identity matrix.
Definition AffineMatrix.cpp:107
Eigen::Matrix4f matrix
Definition AffineMatrix.h:167
auto translate(float x, float y) -> AffineMatrix &
Definition AffineMatrix.cpp:165
auto operator*=(const AffineMatrix &Other) -> AffineMatrix &
NOTE: THIS FLIPS MULTIPLICATION ORDER SO THE MATRICES PROPERLY MULTIPLY e.g.
Definition AffineMatrix.cpp:81
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:18
auto operator=(const AffineMatrix &) -> AffineMatrix &=default
AffineMatrix(const AffineMatrix &)=default
auto data() const -> const float *
Definition AffineMatrix.cpp:204