#ifndef _CCOLLISION_HPP_
#define _CCOLLISION_HPP_

/*** SDL Header Files ***/
#include <SDL.h>

/*** DLL Header File ***/
#include "dllExport.h"

/*** Custom Header File ***/
#include "Vector/Vector2.hpp"
#include "iVector/iVector2.hpp"

#include "Vector/Vector4.hpp"
#include "iVector/iVector4.hpp"

namespace MathEngine {
	class EXPORT_FROM_MYDLL cCollision
	{
	private:
		cCollision();
		~cCollision();
	public:
		///Functions
		static const bool BoundingBox( const SDL_Rect& a, const SDL_Rect& b );
		static const bool BoundingBox( const Vector4& a, const Vector4& b );
		static const bool BoundingBox( const SDL_Rect& a, const Vector4& b );
		static const bool BoundingBox( const Vector4& a, const SDL_Rect& b );

		static const bool BoundingBox( const iVector4& a, const iVector4& b );
		static const bool BoundingBox( const SDL_Rect& a, const iVector4& b );
		static const bool BoundingBox( const iVector4& a, const SDL_Rect& b );
		static const bool BoundingBox( const iVector4& a, const Vector4& b );
		static const bool BoundingBox( const Vector4& a, const iVector4& b );
		

		static const Vector2 Inside( const SDL_Rect& a, const SDL_Rect& b );
		static const Vector2 Inside( const Vector4& a, const Vector4& b );
		static const Vector2 Inside( const SDL_Rect& a, const Vector4& b  );
		static const Vector2 Inside( const Vector4& a, const SDL_Rect& b );

		static const iVector2 Inside( const iVector4& a, const iVector4& b );
		static const iVector2 Inside( const SDL_Rect& a, const iVector4& b );
		static const iVector2 Inside( const iVector4& a, const SDL_Rect& b );
		static const Vector2 Inside( const iVector4& a, const Vector4& b );
		static const Vector2 Inside( const Vector4& a, const iVector4& b );

	};/// END CLASS DEFINITION cCollision
}/// END NAMESPACE DEFINITION MathEngine
#endif/// END IFNDEF _CCOLLISION_HPP_
