#ifndef MATH #define MATH #include "CAABox.h" #include "CRay.h" #include "CPlane.h" #include "CVector3f.h" #include "SRayIntersection.h" #include namespace Math { float Abs(float v); float Pow(float Base, float Exponent); float Sqrt(float v); float Distance(const CVector3f& A, const CVector3f& B); float DegreesToRadians(float deg); float RadiansToDegrees(float rad); std::pair RayPlaneIntersecton(const CRay& ray, const CPlane& plane); std::pair RayBoxIntersection(const CRay& Ray, const CAABox& Box); std::pair RayLineIntersection(const CRay& ray, const CVector3f& pointA, const CVector3f& pointB, float threshold = 0.02f); std::pair RayTriangleIntersection(const CRay& Ray, const CVector3f& PointA, const CVector3f& PointB, const CVector3f& PointC, bool AllowBackfaces = false); CMatrix4f PerspectiveMatrix(float fov, float aspect, float near, float far); CMatrix4f OrthographicMatrix(float left, float right, float bottom, float top, float near, float far); // Constants static const float skPi = 3.14159265358979323846f; static const float skHalfPi = skPi / 2.f; } #endif // MATH