39 template <
typename T, precision P = defaultp>
43 typedef std::size_t size_type;
44 typedef tvec3<T, P> col_type;
45 typedef tvec3<T, P> row_type;
46 typedef tmat3x3<T, P> type;
47 typedef tmat3x3<T, P> transpose_type;
49 # ifdef GLM_FORCE_SIZE_FUNC
50 GLM_FUNC_DECL GLM_CONSTEXPR
size_t size()
const;
52 GLM_FUNC_DECL GLM_CONSTEXPR length_t
length()
const;
53 # endif//GLM_FORCE_SIZE_FUNC
55 template <
typename U, precision Q>
56 friend tvec3<U, Q> operator/(tmat3x3<U, Q>
const & m, tvec3<U, Q>
const & v);
57 template <
typename U, precision Q>
58 friend tvec3<U, Q> operator/(tvec3<U, Q>
const & v, tmat3x3<U, Q>
const & m);
67 GLM_FUNC_DECL tmat3x3();
68 template <precision Q>
69 GLM_FUNC_DECL tmat3x3(tmat3x3<T, Q>
const & m);
71 GLM_FUNC_DECL
explicit tmat3x3(ctor);
72 GLM_FUNC_DECL
explicit tmat3x3(T
const & s);
73 GLM_FUNC_DECL tmat3x3(
74 T
const & x0, T
const & y0, T
const & z0,
75 T
const & x1, T
const & y1, T
const & z1,
76 T
const & x2, T
const & y2, T
const & z2);
77 GLM_FUNC_DECL tmat3x3(
86 typename X1,
typename Y1,
typename Z1,
87 typename X2,
typename Y2,
typename Z2,
88 typename X3,
typename Y3,
typename Z3>
89 GLM_FUNC_DECL tmat3x3(
90 X1
const & x1, Y1
const & y1, Z1
const & z1,
91 X2
const & x2, Y2
const & y2, Z2
const & z2,
92 X3
const & x3, Y3
const & y3, Z3
const & z3);
94 template <
typename V1,
typename V2,
typename V3>
95 GLM_FUNC_DECL tmat3x3(
96 tvec3<V1, P>
const & v1,
97 tvec3<V2, P>
const & v2,
98 tvec3<V3, P>
const & v3);
103 # ifdef GLM_FORCE_EXPLICIT_CTOR
104 template <
typename U, precision Q>
105 GLM_FUNC_DECL
explicit tmat3x3(tmat3x3<U, Q>
const & m);
107 template <
typename U, precision Q>
108 GLM_FUNC_DECL tmat3x3(tmat3x3<U, Q>
const & m);
111 GLM_FUNC_DECL
explicit tmat3x3(tmat2x2<T, P>
const & x);
112 GLM_FUNC_DECL
explicit tmat3x3(tmat4x4<T, P>
const & x);
113 GLM_FUNC_DECL
explicit tmat3x3(tmat2x3<T, P>
const & x);
114 GLM_FUNC_DECL
explicit tmat3x3(tmat3x2<T, P>
const & x);
115 GLM_FUNC_DECL
explicit tmat3x3(tmat2x4<T, P>
const & x);
116 GLM_FUNC_DECL
explicit tmat3x3(tmat4x2<T, P>
const & x);
117 GLM_FUNC_DECL
explicit tmat3x3(tmat3x4<T, P>
const & x);
118 GLM_FUNC_DECL
explicit tmat3x3(tmat4x3<T, P>
const & x);
121 GLM_FUNC_DECL col_type & operator[](length_t i);
122 GLM_FUNC_DECL col_type
const & operator[](length_t i)
const;
124 template <
typename U>
125 GLM_FUNC_DECL tmat3x3<T, P>& operator= (tmat3x3<U, P>
const & m);
126 template <
typename U>
127 GLM_FUNC_DECL tmat3x3<T, P>& operator+= (U s);
128 template <
typename U>
129 GLM_FUNC_DECL tmat3x3<T, P>& operator+= (tmat3x3<U, P>
const & m);
130 template <
typename U>
131 GLM_FUNC_DECL tmat3x3<T, P>& operator-= (U s);
132 template <
typename U>
133 GLM_FUNC_DECL tmat3x3<T, P>& operator-= (tmat3x3<U, P>
const & m);
134 template <
typename U>
135 GLM_FUNC_DECL tmat3x3<T, P>& operator*= (U s);
136 template <
typename U>
137 GLM_FUNC_DECL tmat3x3<T, P>& operator*= (tmat3x3<U, P>
const & m);
138 template <
typename U>
139 GLM_FUNC_DECL tmat3x3<T, P>& operator/= (U s);
140 template <
typename U>
141 GLM_FUNC_DECL tmat3x3<T, P>& operator/= (tmat3x3<U, P>
const & m);
146 GLM_FUNC_DECL tmat3x3<T, P> & operator++ ();
147 GLM_FUNC_DECL tmat3x3<T, P> & operator-- ();
148 GLM_FUNC_DECL tmat3x3<T, P> operator++(
int);
149 GLM_FUNC_DECL tmat3x3<T, P> operator--(
int);
153 template <
typename T, precision P>
154 GLM_FUNC_DECL tmat3x3<T, P> operator+ (
155 tmat3x3<T, P>
const & m,
158 template <
typename T, precision P>
159 GLM_FUNC_DECL tmat3x3<T, P> operator+ (
161 tmat3x3<T, P>
const & m);
163 template <
typename T, precision P>
164 GLM_FUNC_DECL tmat3x3<T, P> operator+ (
165 tmat3x3<T, P>
const & m1,
166 tmat3x3<T, P>
const & m2);
168 template <
typename T, precision P>
169 GLM_FUNC_DECL tmat3x3<T, P> operator- (
170 tmat3x3<T, P>
const & m,
173 template <
typename T, precision P>
174 GLM_FUNC_DECL tmat3x3<T, P> operator- (
176 tmat3x3<T, P>
const & m);
178 template <
typename T, precision P>
179 GLM_FUNC_DECL tmat3x3<T, P> operator- (
180 tmat3x3<T, P>
const & m1,
181 tmat3x3<T, P>
const & m2);
183 template <
typename T, precision P>
184 GLM_FUNC_DECL tmat3x3<T, P> operator* (
185 tmat3x3<T, P>
const & m,
188 template <
typename T, precision P>
189 GLM_FUNC_DECL tmat3x3<T, P> operator* (
191 tmat3x3<T, P>
const & m);
193 template <
typename T, precision P>
194 GLM_FUNC_DECL
typename tmat3x3<T, P>::col_type operator* (
195 tmat3x3<T, P>
const & m,
196 typename tmat3x3<T, P>::row_type
const & v);
198 template <
typename T, precision P>
199 GLM_FUNC_DECL
typename tmat3x3<T, P>::row_type operator* (
200 typename tmat3x3<T, P>::col_type
const & v,
201 tmat3x3<T, P>
const & m);
203 template <
typename T, precision P>
204 GLM_FUNC_DECL tmat3x3<T, P> operator* (
205 tmat3x3<T, P>
const & m1,
206 tmat3x3<T, P>
const & m2);
208 template <
typename T, precision P>
209 GLM_FUNC_DECL tmat2x3<T, P> operator* (
210 tmat3x3<T, P>
const & m1,
211 tmat2x3<T, P>
const & m2);
213 template <
typename T, precision P>
214 GLM_FUNC_DECL tmat4x3<T, P> operator* (
215 tmat3x3<T, P>
const & m1,
216 tmat4x3<T, P>
const & m2);
218 template <
typename T, precision P>
219 GLM_FUNC_DECL tmat3x3<T, P> operator/ (
220 tmat3x3<T, P>
const & m,
223 template <
typename T, precision P>
224 GLM_FUNC_DECL tmat3x3<T, P> operator/ (
226 tmat3x3<T, P>
const & m);
228 template <
typename T, precision P>
229 GLM_FUNC_DECL
typename tmat3x3<T, P>::col_type operator/ (
230 tmat3x3<T, P>
const & m,
231 typename tmat3x3<T, P>::row_type
const & v);
233 template <
typename T, precision P>
234 GLM_FUNC_DECL
typename tmat3x3<T, P>::row_type operator/ (
235 typename tmat3x3<T, P>::col_type
const & v,
236 tmat3x3<T, P>
const & m);
238 template <
typename T, precision P>
239 GLM_FUNC_DECL tmat3x3<T, P> operator/ (
240 tmat3x3<T, P>
const & m1,
241 tmat3x3<T, P>
const & m2);
244 template <
typename T, precision P>
245 GLM_FUNC_DECL tmat3x3<T, P>
const operator-(
246 tmat3x3<T, P>
const & m);
249 #ifndef GLM_EXTERNAL_TEMPLATE
250 #include "type_mat3x3.inl"
GLM_FUNC_DECL T length(vecType< T, P > const &x)
Returns the length of x, i.e., sqrt(x * x).
OpenGL Mathematics (glm.g-truc.net)
OpenGL Mathematics (glm.g-truc.net)