#pragma once #include #include #include #include "../../define.hpp" #ifdef DEBUG #define LOG(message) asloengine::log((std::string)"LOG: ", message) #define WARN(message) asloengine::log((std::string)"WARNING: ", message) #define ERR(message) asloengine::log((std::string)"ERROR: ", message) #else #define LOG(message) #define WARN(message) #define ERR(message) #endif #define DEG_TO_RAD 0.01745 namespace asloengine { void log(const std::string& prefix, const bool condition); void log(const std::string& prefix, const int number); void log(const std::string& prefix, const double number); void log(const std::string& prefix, const char* message); void log(const std::string& prefix, const std::string& message); sf::Vector2f operator+(sf::Vector2f _vec, float add); sf::Vector2f operator-(sf::Vector2f _vec, float subtract); sf::Vector2f operator*(sf::Vector2f _vec, float multiplier); sf::Vector2f operator/(sf::Vector2f _vec, float divider); sf::Vector2f operator+(sf::Vector2f _vec_1, sf::Vector2f _vec_2); sf::Vector2f operator-(sf::Vector2f _vec_1, sf::Vector2f _vec_2); sf::Vector2f operator*(sf::Vector2f _vec_1, sf::Vector2f _vec_2); sf::Vector2f operator/(sf::Vector2f _vec_1, sf::Vector2f _vec_2); sf::Vector2f operator+(sf::Vector2f _vec, sf::FloatRect _rect); sf::Vector2f operator-(sf::Vector2f _vec, sf::FloatRect _rect); sf::Vector2f operator*(sf::Vector2f _vec, sf::FloatRect _rect); sf::Vector2f operator/(sf::Vector2f _vec, sf::FloatRect _rect); float clamp(float value, float min, float max); sf::Vector2i to_vector2i(sf::Vector2u _vec); sf::Vector2i to_vector2i(sf::Vector2f _vec); sf::Vector2u to_vector2u(sf::Vector2i _vec); sf::Vector2u to_vector2u(sf::Vector2f _vec); sf::Vector2f to_vector2f(sf::Vector2i _vec); sf::Vector2f to_vector2f(sf::Vector2u _vec); template T calculate_average(T *array, size_t size) { T sum; for (size_t i = 0; i < size; i++) { sum += array[i]; } return (sum / (T)size); } template int vector_contains(std::vector& vec, T element) { for(int i = 0; i < vec.size(); i++) { if (vec[i] == element) { return i; } } return -1; } }