1
0
forked from josh/j3ml

Implement Mat4x4::WorldX/Y/Z/IsFinite

This commit is contained in:
2024-02-01 17:17:04 -05:00
parent 6b78a0b731
commit 35fded8ec0
2 changed files with 37 additions and 3 deletions

View File

@@ -374,4 +374,34 @@ namespace LinearAlgebra {
Vector3 Matrix4x4::Diagonal3() const {
return Vector3 { At(0, 0), At(1,1), At(2,2) };
}
Vector4 Matrix4x4::WorldX() const {
return GetColumn3(0);
}
Vector4 Matrix4x4::WorldY() const {
return GetColumn3(1);
}
Vector4 Matrix4x4::WorldZ() const {
return GetColumn3(2);
}
bool Matrix4x4::IsFinite() const {
for(int iy = 0; iy < Rows; ++iy)
for(int ix = 0; ix < Cols; ++ix)
if (!std::isfinite(elems[iy][ix]))
return false;
return true;
}
Vector3 Matrix4x4::GetColumn3(int index) const {
return Vector3{At(0, index), At(1, index), At(2, index)};
}
Vector2 Matrix4x4::operator*(const Vector2 &rhs) const { return this->Transform(rhs);}
Vector3 Matrix4x4::operator*(const Vector3 &rhs) const { return this->Transform(rhs);}
Vector4 Matrix4x4::operator*(const Vector4 &rhs) const { return this->Transform(rhs);}
}