AsloEngine/asloengine/headers/helpers.hpp
2019-08-29 20:18:48 +02:00

83 lines
No EOL
2.4 KiB
C++
Executable file

#pragma once
#include <iostream>
#include <fstream>
#include <SFML/Graphics.hpp>
#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 <typename T>
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 <typename T>
int vector_contains(std::vector<T>& vec, T element)
{
for(int i = 0; i < vec.size(); i++)
{
if (vec[i] == element)
{
return i;
}
}
return -1;
}
}