43 #include "../detail/setup.hpp" 
   44 #include "../gtc/quaternion.hpp" 
   46 #if(defined(GLM_MESSAGES) && !defined(GLM_EXT_INCLUDED)) 
   47 #       pragma message("GLM: GLM_GTX_io extension included") 
   61     class precision_guard {
 
   65       GLM_FUNC_DECL 
explicit precision_guard();
 
   66       GLM_FUNC_DECL         ~precision_guard();
 
   71       unsigned value_width_;
 
   78                 enum order_t { column_major, row_major, };
 
   80                 GLM_FUNC_DECL 
explicit format_guard();
 
   81                 GLM_FUNC_DECL         ~format_guard();
 
   90     GLM_FUNC_DECL 
unsigned& precision();
 
   93     GLM_FUNC_DECL 
unsigned& value_width();
 
   96     GLM_FUNC_DECL format_guard::order_t& order();
 
   99     GLM_FUNC_DECL 
char& cr();
 
  102     GLM_FUNC_DECL std::ios_base& column_major(std::ios_base&);
 
  105     GLM_FUNC_DECL std::ios_base& row_major   (std::ios_base&);
 
  108     GLM_FUNC_DECL std::ios_base& formatted   (std::ios_base&);
 
  111     GLM_FUNC_DECL std::ios_base& unformatted (std::ios_base&);
 
  117     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  118     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> 
const&);
 
  119     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  120     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> 
const&);
 
  121     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  122     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> 
const&);
 
  123     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  124     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> 
const&);
 
  125     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  126     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> 
const&);
 
  127     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  128     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> 
const&);
 
  129     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  130     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> 
const&);
 
  131     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  132     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> 
const&);
 
  133     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  134     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> 
const&);
 
  135     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  136     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> 
const&);
 
  137     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  138     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> 
const&);
 
  139     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  140     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> 
const&);
 
  141     template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  142     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> 
const&);