Implement Mat4x4::WorldX/Y/Z/IsFinite
This commit is contained in:
@@ -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);}
|
||||
}
|
Reference in New Issue
Block a user