Quaternion::Quaternion( Vector3& value )
{
	m_self = glm::quat( value.GetSelf() );
}
Vector3 Quaternion::ApplyRotation( Vector3& value )
{
	return Vector3( glm::rotate(m_self, value.GetSelf()) );
}
void Vector3::operator*=( Vector3& other )
{
	m_self *= other.GetSelf();
}
Vector3 Vector3::operator*( Vector3& other )
{
	return Vector3(m_self * other.GetSelf());
}
void Vector3::operator/=( Vector3& other )
{
	m_self /= other.GetSelf();
}
void Vector3::operator-=( Vector3& other )
{
	m_self -= other.GetSelf();
}
void Vector3::operator+=( Vector3& other )
{
	m_self += other.GetSelf();
}
Vector3 Vector3::Normalize( Vector3& value )
{
	return Vector3( glm::normalize(value.GetSelf()) );
}
float Vector3::Dot( Vector3& value1, Vector3& value2 )
{
	return glm::dot( value1.GetSelf(), value2.GetSelf() );
}