mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 15:03:27 +00:00
refactored some stuff
This commit is contained in:
@@ -321,10 +321,10 @@ namespace omath
|
||||
constexpr static Mat<4, 4> TranslationMat(const Vector3& diff) noexcept
|
||||
{
|
||||
return {
|
||||
{1, 0, 0, 0},
|
||||
{0, 1, 0, 0},
|
||||
{0, 0, 1, 0},
|
||||
{diff.x, diff.y, diff.z, 1},
|
||||
{1, 0, 0, diff.x},
|
||||
{0, 1, 0, diff.y},
|
||||
{0, 0, 1, diff.z},
|
||||
{0, 0, 0, 1},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -376,11 +376,11 @@ namespace omath
|
||||
[[nodiscard]]
|
||||
constexpr Mat<4, 4, T, St> MatTranslation(const Vector3& diff) noexcept
|
||||
{
|
||||
return {
|
||||
return Mat<4, 4, T, St>{
|
||||
{1, 0, 0, 0},
|
||||
{0, 1, 0, 0},
|
||||
{0, 0, 1, 0},
|
||||
{diff.x, diff.y, diff.z, 1},
|
||||
};
|
||||
}.Transposed();
|
||||
}
|
||||
} // namespace omath
|
||||
|
||||
@@ -32,12 +32,12 @@ namespace omath::source
|
||||
[[nodiscard]] constexpr Mat<4, 4, Type, MatStoreType::ROW_MAJOR> ViewMatrixFromVecs(const Vector3& forward, const Vector3& right,
|
||||
const Vector3& up, const Vector3& camera_pos)
|
||||
{
|
||||
return MatTranslation<float, MatStoreType::ROW_MAJOR>(-camera_pos) * Mat<4, 4, Type, MatStoreType::ROW_MAJOR>{
|
||||
{right.x, up.x, forward.x, 0},
|
||||
{right.y, up.y, forward.y, 0},
|
||||
{right.z, up.z, forward.z, 0},
|
||||
return Mat<4, 4, Type, MatStoreType::ROW_MAJOR>{
|
||||
{right.x, right.y, right.z, 0},
|
||||
{up.x, up.y, up.z, 0},
|
||||
{forward.x, forward.y, forward.z, 0},
|
||||
{0, 0, 0, 1},
|
||||
};
|
||||
} * MatTranslation<float, MatStoreType::ROW_MAJOR>(-camera_pos) ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace omath::projection
|
||||
|
||||
[[nodiscard]] auto GetViewProjectionMatrix() const
|
||||
{
|
||||
return GetProjectionMatrix() * GetViewMatrix().Transposed();
|
||||
return GetProjectionMatrix() * GetViewMatrix();
|
||||
}
|
||||
[[nodiscard]] std::expected<Vector3, Error> WorldToScreen([[maybe_unused]] const Vector3& worldPosition) const
|
||||
{
|
||||
@@ -65,7 +65,7 @@ namespace omath::projection
|
||||
return std::unexpected(Error::WORLD_POSITION_IS_OUT_OF_SCREEN_BOUNDS);
|
||||
projected /= projected.At(3, 0);
|
||||
|
||||
return Vector3{projected.At(0,0), projected.At(1,0), projected.At(2,0)};
|
||||
return Vector3{++projected.At(0,0) / 2 * m_viewPort.m_width , ++projected.At(1,0) / 2 * m_viewPort.m_height, projected.At(2,0)};
|
||||
}
|
||||
|
||||
ViewPort m_viewPort{};
|
||||
|
||||
Reference in New Issue
Block a user