#pragma once #include "QuatFwd.h" #include "AxisAngle.h" #include //This is a implementation file used by the templated AxisAngle class. The primary purpose of this //class is to form a compilation firewall for the Ve namespace Aftr { namespace QuatImpl { //template< typename T > //Aftr::VectorT make_VectorT( std::string const& str ); template< typename T > std::string toString( QuatT const& v, size_t length ); template< typename T > Aftr::AxisAngleT toAxisAngle( QuatT const& q ); template< typename T > Aftr::QuatT fromAxisAngle( AxisAngleT const& q ); /// Returns a unit rotation quaternion given a SO(3) /// Rotation Matrix (DCM / Display matrix). template< typename T > Aftr::QuatT fromDCM( Mat4T const& m ); template< typename T > Aftr::Mat4T toRotationMatrix( QuatT const& m ); template< typename T > bool isEqual( QuatT const& a, QuatT const& b, T epsilon = 0.00001 ); //template< typename T > //std::string toStringWithMag( VectorT const& v, size_t length ); template< typename T > std::optional< QuatT > fromString_opt( std::string const& str ); } }