|  |  |  | @ -57,178 +57,168 @@ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | namespace glm | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  |   /// @addtogroup gtx_io
 | 
			
		
	
		
			
				
					|  |  |  |  |   /// @{
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/// @addtogroup gtx_io
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/// @{
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   namespace io | 
			
		
	
		
			
				
					|  |  |  |  |   { | 
			
		
	
		
			
				
					|  |  |  |  | 	namespace io | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		enum order_type { column_major, row_major}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     enum order_type { column_major, row_major, }; | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy> | 
			
		
	
		
			
				
					|  |  |  |  | 		class format_punct : public std::locale::facet | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			typedef CTy char_type; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy> | 
			
		
	
		
			
				
					|  |  |  |  |     class format_punct : public std::locale::facet { | 
			
		
	
		
			
				
					|  |  |  |  | 		public: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       typedef CTy char_type; | 
			
		
	
		
			
				
					|  |  |  |  | 			static std::locale::id id; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public: | 
			
		
	
		
			
				
					|  |  |  |  | 			bool       formatted; | 
			
		
	
		
			
				
					|  |  |  |  | 			unsigned   precision; | 
			
		
	
		
			
				
					|  |  |  |  | 			unsigned   width; | 
			
		
	
		
			
				
					|  |  |  |  | 			char_type  separator; | 
			
		
	
		
			
				
					|  |  |  |  | 			char_type  delim_left; | 
			
		
	
		
			
				
					|  |  |  |  | 			char_type  delim_right; | 
			
		
	
		
			
				
					|  |  |  |  | 			char_type  space; | 
			
		
	
		
			
				
					|  |  |  |  | 			char_type  newline; | 
			
		
	
		
			
				
					|  |  |  |  | 			order_type order; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       static std::locale::id id; | 
			
		
	
		
			
				
					|  |  |  |  | 			explicit format_punct(size_t a = 0); | 
			
		
	
		
			
				
					|  |  |  |  | 			explicit format_punct(format_punct const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       bool       formatted; | 
			
		
	
		
			
				
					|  |  |  |  |       unsigned   precision; | 
			
		
	
		
			
				
					|  |  |  |  |       unsigned   width; | 
			
		
	
		
			
				
					|  |  |  |  |       char_type  separator; | 
			
		
	
		
			
				
					|  |  |  |  |       char_type  delim_left; | 
			
		
	
		
			
				
					|  |  |  |  |       char_type  delim_right; | 
			
		
	
		
			
				
					|  |  |  |  |       char_type  space; | 
			
		
	
		
			
				
					|  |  |  |  |       char_type  newline; | 
			
		
	
		
			
				
					|  |  |  |  |       order_type order; | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |       explicit format_punct(size_t a = 0); | 
			
		
	
		
			
				
					|  |  |  |  |       explicit format_punct(format_punct const&); | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr = std::char_traits<CTy> > | 
			
		
	
		
			
				
					|  |  |  |  |     class basic_state_saver { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       explicit basic_state_saver(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  |               ~basic_state_saver(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       typedef ::std::basic_ios<CTy,CTr>      state_type; | 
			
		
	
		
			
				
					|  |  |  |  |       typedef typename state_type::char_type char_type; | 
			
		
	
		
			
				
					|  |  |  |  |       typedef ::std::ios_base::fmtflags      flags_type; | 
			
		
	
		
			
				
					|  |  |  |  |       typedef ::std::streamsize              streamsize_type; | 
			
		
	
		
			
				
					|  |  |  |  |       typedef ::std::locale const            locale_type; | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |       state_type&     state_; | 
			
		
	
		
			
				
					|  |  |  |  |       flags_type      flags_; | 
			
		
	
		
			
				
					|  |  |  |  |       streamsize_type precision_; | 
			
		
	
		
			
				
					|  |  |  |  |       streamsize_type width_; | 
			
		
	
		
			
				
					|  |  |  |  |       char_type       fill_; | 
			
		
	
		
			
				
					|  |  |  |  |       locale_type     locale_; | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |       basic_state_saver& operator=(basic_state_saver const&); | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     typedef basic_state_saver<char>     state_saver; | 
			
		
	
		
			
				
					|  |  |  |  |     typedef basic_state_saver<wchar_t> wstate_saver; | 
			
		
	
		
			
				
					|  |  |  |  |     
 | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr = std::char_traits<CTy> > | 
			
		
	
		
			
				
					|  |  |  |  |     class basic_format_saver { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       explicit basic_format_saver(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  |               ~basic_format_saver(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       basic_state_saver<CTy> const bss_; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       basic_format_saver& operator=(basic_format_saver const&); | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     typedef basic_format_saver<char>     format_saver; | 
			
		
	
		
			
				
					|  |  |  |  |     typedef basic_format_saver<wchar_t> wformat_saver; | 
			
		
	
		
			
				
					|  |  |  |  |     
 | 
			
		
	
		
			
				
					|  |  |  |  |     struct precision { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       unsigned value; | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |       explicit precision(unsigned); | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     struct width { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       unsigned value; | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |       explicit width(unsigned); | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy> | 
			
		
	
		
			
				
					|  |  |  |  |     struct delimeter { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       CTy value[3]; | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |       explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ','); | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     struct order { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       order_type value; | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |       explicit order(order_type); | 
			
		
	
		
			
				
					|  |  |  |  |       
 | 
			
		
	
		
			
				
					|  |  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  |  |     
 | 
			
		
	
		
			
				
					|  |  |  |  |     // functions, inlined (inline)
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename FTy, typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  |     FTy const& get_facet(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename FTy, typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  |     std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename FTy, typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  |     std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  |     
 | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  |     std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  |     std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  |     std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  |     std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order const&); | 
			
		
	
		
			
				
					|  |  |  |  |     
 | 
			
		
	
		
			
				
					|  |  |  |  |   }//namespace io
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   namespace detail | 
			
		
	
		
			
				
					|  |  |  |  |   { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     
 | 
			
		
	
		
			
				
					|  |  |  |  |     template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  |     GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, | 
			
		
	
		
			
				
					|  |  |  |  |                                                           std::pair<tmat4x4<T,P> const, | 
			
		
	
		
			
				
					|  |  |  |  |                                                                     tmat4x4<T,P> const> const&); | 
			
		
	
		
			
				
					|  |  |  |  |     
 | 
			
		
	
		
			
				
					|  |  |  |  |   }//namespace detail
 | 
			
		
	
		
			
				
					|  |  |  |  |   
 | 
			
		
	
		
			
				
					|  |  |  |  |   /// @}
 | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr = std::char_traits<CTy> > | 
			
		
	
		
			
				
					|  |  |  |  | 		class basic_state_saver { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		public: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			explicit basic_state_saver(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  | 					~basic_state_saver(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		private: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			typedef ::std::basic_ios<CTy,CTr>      state_type; | 
			
		
	
		
			
				
					|  |  |  |  | 			typedef typename state_type::char_type char_type; | 
			
		
	
		
			
				
					|  |  |  |  | 			typedef ::std::ios_base::fmtflags      flags_type; | 
			
		
	
		
			
				
					|  |  |  |  | 			typedef ::std::streamsize              streamsize_type; | 
			
		
	
		
			
				
					|  |  |  |  | 			typedef ::std::locale const            locale_type; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			state_type&     state_; | 
			
		
	
		
			
				
					|  |  |  |  | 			flags_type      flags_; | 
			
		
	
		
			
				
					|  |  |  |  | 			streamsize_type precision_; | 
			
		
	
		
			
				
					|  |  |  |  | 			streamsize_type width_; | 
			
		
	
		
			
				
					|  |  |  |  | 			char_type       fill_; | 
			
		
	
		
			
				
					|  |  |  |  | 			locale_type     locale_; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			basic_state_saver& operator=(basic_state_saver const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		typedef basic_state_saver<char>     state_saver; | 
			
		
	
		
			
				
					|  |  |  |  | 		typedef basic_state_saver<wchar_t> wstate_saver; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr = std::char_traits<CTy> > | 
			
		
	
		
			
				
					|  |  |  |  | 		class basic_format_saver | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 		public: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			explicit basic_format_saver(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  | 					~basic_format_saver(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		private: | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			basic_state_saver<CTy> const bss_; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			basic_format_saver& operator=(basic_format_saver const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		typedef basic_format_saver<char>     format_saver; | 
			
		
	
		
			
				
					|  |  |  |  | 		typedef basic_format_saver<wchar_t> wformat_saver; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		struct precision | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			unsigned value; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			explicit precision(unsigned); | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		struct width | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			unsigned value; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			explicit width(unsigned); | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy> | 
			
		
	
		
			
				
					|  |  |  |  | 		struct delimeter | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			CTy value[3]; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			explicit delimeter(CTy /* left */, CTy /* right */, CTy /* separator */ = ','); | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		struct order | 
			
		
	
		
			
				
					|  |  |  |  | 		{ | 
			
		
	
		
			
				
					|  |  |  |  | 			order_type value; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			explicit order(order_type); | 
			
		
	
		
			
				
					|  |  |  |  | 		}; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		// functions, inlined (inline)
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename FTy, typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  | 		FTy const& get_facet(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename FTy, typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  | 		std::basic_ios<CTy,CTr>& formatted(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename FTy, typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  | 		std::basic_ios<CTy,CTr>& unformattet(std::basic_ios<CTy,CTr>&); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  | 		std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, precision const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  | 		std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, width const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  | 		std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, delimeter<CTy> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr> | 
			
		
	
		
			
				
					|  |  |  |  | 		std::basic_ostream<CTy, CTr>& operator<<(std::basic_ostream<CTy, CTr>&, order const&); | 
			
		
	
		
			
				
					|  |  |  |  | 	}//namespace io
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	namespace detail | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tquat<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec2<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec3<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tvec4<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x2<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x3<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat2x4<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x2<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x3<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat3x4<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x2<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x3<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr>& operator<<(std::basic_ostream<CTy,CTr>&, tmat4x4<T,P> const&); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		template <typename CTy, typename CTr, typename T, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 		GLM_FUNC_DECL std::basic_ostream<CTy,CTr> & operator<<( | 
			
		
	
		
			
				
					|  |  |  |  | 			std::basic_ostream<CTy,CTr> &, | 
			
		
	
		
			
				
					|  |  |  |  | 			std::pair<tmat4x4<T,P> const, | 
			
		
	
		
			
				
					|  |  |  |  | 			tmat4x4<T,P> const> const &); | 
			
		
	
		
			
				
					|  |  |  |  | 	}//namespace detail
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	/// @}
 | 
			
		
	
		
			
				
					|  |  |  |  | }//namespace glm
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | #include "io.inl" | 
			
		
	
	
		
			
				
					|  |  |  | 
 |