diff options
-rw-r--r-- | src/crepe/api/Vector2.h | 7 | ||||
-rw-r--r-- | src/crepe/api/Vector2.hpp | 6 | ||||
-rw-r--r-- | src/example/demo.cpp | 2 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/crepe/api/Vector2.h b/src/crepe/api/Vector2.h index bf9d124..f4ba2b2 100644 --- a/src/crepe/api/Vector2.h +++ b/src/crepe/api/Vector2.h @@ -1,5 +1,7 @@ #pragma once +#include <format> + namespace crepe { //! 2D vector @@ -94,4 +96,9 @@ struct Vector2 { } // namespace crepe +template <typename T> +struct std::formatter<crepe::Vector2<T>> : std::formatter<std::string> { + format_context::iterator format(crepe::Vector2<T> vec, format_context & ctx) const; +}; + #include "Vector2.hpp" diff --git a/src/crepe/api/Vector2.hpp b/src/crepe/api/Vector2.hpp index ff53cb0..75d875a 100644 --- a/src/crepe/api/Vector2.hpp +++ b/src/crepe/api/Vector2.hpp @@ -164,3 +164,9 @@ Vector2<T> Vector2<T>::perpendicular() const { } } // namespace crepe + +template <typename T> +std::format_context::iterator std::formatter<crepe::Vector2<T>>::format(crepe::Vector2<T> vec, format_context & ctx) const { + return formatter<string>::format(std::format("{{{}, {}}}", vec.x, vec.y), ctx); +} + diff --git a/src/example/demo.cpp b/src/example/demo.cpp index 1aadc54..c0c8062 100644 --- a/src/example/demo.cpp +++ b/src/example/demo.cpp @@ -12,7 +12,7 @@ using namespace std; class PlayerController : public Script { void update() { Rigidbody & body = get_component<Rigidbody>(); - Log::logf("linear_velocity = {{{}, {}}}", body.data.linear_velocity.x, body.data.linear_velocity.y); + logf("linear_velocity = {}", body.data.linear_velocity); if (get_key_state(Keycode::SPACE)) { body.add_force_linear({ 0, -1 }); |