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 &);