Add is_conformal method to Basis and Transform2D

This commit is contained in:
Aaron Franke
2023-09-07 09:43:22 -05:00
parent 3ed4497113
commit 56806ffeed
9 changed files with 96 additions and 0 deletions

View File

@@ -164,6 +164,18 @@ Transform2D Transform2D::orthonormalized() const {
return ortho;
}
bool Transform2D::is_conformal() const {
// Non-flipped case.
if (Math::is_equal_approx(columns[0][0], columns[1][1]) && Math::is_equal_approx(columns[0][1], -columns[1][0])) {
return true;
}
// Flipped case.
if (Math::is_equal_approx(columns[0][0], -columns[1][1]) && Math::is_equal_approx(columns[0][1], columns[1][0])) {
return true;
}
return false;
}
bool Transform2D::is_equal_approx(const Transform2D &p_transform) const {
return columns[0].is_equal_approx(p_transform.columns[0]) && columns[1].is_equal_approx(p_transform.columns[1]) && columns[2].is_equal_approx(p_transform.columns[2]);
}