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() ); }