/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
****************************************************************************/

#pragma once

#include "glmSDKAPI.h"

#include "glmQuaternion.h"
#include "glmVector3.h"
#include "glmRotationMatrix.h"
#include "glmQuaternionConversions.h"
#include "glmRotationMatrixConversions.h"

namespace physx
{
	class PxQuat;
	class PxVec3;
}

namespace glm  
{
	///\name conversion functions
	/// These functions allow the user to convert the objects from the Math library to 
	/// PhysX library and reciprocally.
	//@{
	//@{
	///\brief Convert quaternions
	Quaternion GLM_SDK_API convertTypeOnly_PhysX( const physx::PxQuat& q);
	//Quaternion GLM_SDK_API convertTypeAndReference( const physx::PxQuat& q);
	physx::PxQuat GLM_SDK_API convertTypeOnly_PhysX( const Quaternion& q);
	//physx::PxQuat GLM_SDK_API convertTypeAndReference( const Quaternion& q);
	////@}

	//@{
	///\brief Convert vector of 3		
	Vector3 GLM_SDK_API convertTypeOnly_PhysX( const physx::PxVec3& v);
	//Vector3 GLM_SDK_API convertTypeAndReference( const physx::PxVec3& v);
	physx::PxVec3 GLM_SDK_API convertTypeOnly_PhysX( const Vector3& v);

	//physx::PxVec3 GLM_SDK_API convertTypeAndReference( const Vector3& v);
	//@}

	//@{
	///\brief Convert matrix of 3 by 3		
	//RotationMatrix GLM_SDK_API convert( const btMatrix3x3& m );		
	//btMatrix3x3 GLM_SDK_API convert( const RotationMatrix& m );	
}
