51 #include "../gtx/quaternion.hpp" 
   53 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 
   54 # pragma message("GLM: GLM_GTX_io extension included") 
   68                 enum order_type { column_major, row_major};
 
   70                 template <
typename CTy>
 
   71                 class format_punct : 
public std::locale::facet
 
   73                         typedef CTy char_type;
 
   77                         static std::locale::id id;
 
   84                         char_type  delim_right;
 
   89                         explicit format_punct(
size_t a = 0);
 
   90                         explicit format_punct(format_punct 
const&);
 
   93                 template <
typename CTy, 
typename CTr = std::
char_traits<CTy> >
 
   94                 class basic_state_saver {
 
   98                         explicit basic_state_saver(std::basic_ios<CTy,CTr>&);
 
  103                         typedef ::std::basic_ios<CTy,CTr>      state_type;
 
  104                         typedef typename state_type::char_type char_type;
 
  105                         typedef ::std::ios_base::fmtflags      flags_type;
 
  106                         typedef ::std::streamsize              streamsize_type;
 
  107                         typedef ::std::locale 
const            locale_type;
 
  111                         streamsize_type precision_;
 
  112                         streamsize_type width_;
 
  116                         basic_state_saver& operator=(basic_state_saver 
const&);
 
  119                 typedef basic_state_saver<char>     state_saver;
 
  120                 typedef basic_state_saver<wchar_t> wstate_saver;
 
  122                 template <
typename CTy, 
typename CTr = std::
char_traits<CTy> >
 
  123                 class basic_format_saver
 
  127                         explicit basic_format_saver(std::basic_ios<CTy,CTr>&);
 
  128                                         ~basic_format_saver();
 
  132                         basic_state_saver<CTy> 
const bss_;
 
  134                         basic_format_saver& operator=(basic_format_saver 
const&);
 
  137                 typedef basic_format_saver<char>     format_saver;
 
  138                 typedef basic_format_saver<wchar_t> wformat_saver;
 
  144                         explicit precision(
unsigned);
 
  151                         explicit width(
unsigned);
 
  154                 template <
typename CTy>
 
  159                         explicit delimeter(CTy , CTy , CTy  = 
',');
 
  166                         explicit order(order_type);
 
  171                 template <
typename FTy, 
typename CTy, 
typename CTr>
 
  172                 FTy 
const& get_facet(std::basic_ios<CTy,CTr>&);
 
  173                 template <
typename FTy, 
typename CTy, 
typename CTr>
 
  174                 std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&);
 
  175                 template <
typename FTy, 
typename CTy, 
typename CTr>
 
  176                 std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&);
 
  178                 template <
typename CTy, 
typename CTr>
 
  179                 std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision 
const&);
 
  180                 template <
typename CTy, 
typename CTr>
 
  181                 std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width 
const&);
 
  182                 template <
typename CTy, 
typename CTr>
 
  183                 std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> 
const&);
 
  184                 template <
typename CTy, 
typename CTr>
 
  185                 std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order 
const&);
 
  188         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  189         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> 
const&);
 
  190         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  191         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec1<T,P> 
const&);
 
  192         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  193         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> 
const&);
 
  194         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  195         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> 
const&);
 
  196         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  197         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> 
const&);
 
  198         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  199         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> 
const&);
 
  200         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  201         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> 
const&);
 
  202         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  203         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> 
const&);
 
  204         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  205         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> 
const&);
 
  206         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  207         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> 
const&);
 
  208         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  209         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> 
const&);
 
  210         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  211         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> 
const&);
 
  212         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  213         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> 
const&);
 
  214         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  215         GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> 
const&);
 
  217         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  218         GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(
 
  219                 std::basic_ostream<CTy,CTr> &,
 
  220                 std::pair<tmat4x4<T,P> 
const,
 
  221                 tmat4x4<T,P> 
const> 
const &);
 
  223         template <
typename CTy, 
typename CTr, 
typename T, precision P>
 
  224         GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<(
 
  225                 std::basic_ostream<CTy,CTr> &,
 
  226                 std::pair<tmat4x4<T,P>,
 
  227                 tmat4x4<T,P> > 
const &);