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