//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: common_math.hpp
//      Краткое описание: стандартные математические функции, константы и структуры
//

#ifndef DSE_MATH_COMMONMATH_HPP
#define DSE_MATH_COMMONMATH_HPP

#include <Darkstar/common.hpp>

namespace math
{
	class Vect3;
	
	const float pi = 3.1415926f;
	const float pi2 = 1.570796f;
	const float deg_to_rad = 1/57.2957795f;
	const float rad_to_deg = 180.0f/pi;
	// используется в функциях float_equal & float_notequal
	const float treshold = 0.005f;

	bool float_equal(const float f1, const float f2);
	bool float_notequal(const float f1, const float f2);

	int ceilf(const float f);
	// return (int)(ceilf(float(i1) / (float)i2)
	unsigned int ceil_divf(const unsigned int i1, const unsigned int i2);

	// вычисление нормализованного направления на сфере, как вектора от центра сферы к точке, 
	// задаваемой двумя углами
	// theta - угол между точкой на сфере и зенитом
	// phi - угол между точкой на сфере и азимутом, этот угол считается от направления - юг с положи-
	// тельными значениями соответствующими юго-западу
	Vect3 computeDirectionOnSphere(const float theta, const float phi);
};

#include <Darkstar/Math/common_math.inl>

#endif