Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef glm_core_type_mat3x2
00030 #define glm_core_type_mat3x2
00031
00032 #include "type_mat.hpp"
00033
00034 namespace glm{
00035 namespace detail
00036 {
00037 template <typename T> struct tvec1;
00038 template <typename T> struct tvec2;
00039 template <typename T> struct tvec3;
00040 template <typename T> struct tvec4;
00041 template <typename T> struct tmat2x2;
00042 template <typename T> struct tmat2x3;
00043 template <typename T> struct tmat2x4;
00044 template <typename T> struct tmat3x2;
00045 template <typename T> struct tmat3x3;
00046 template <typename T> struct tmat3x4;
00047 template <typename T> struct tmat4x2;
00048 template <typename T> struct tmat4x3;
00049 template <typename T> struct tmat4x4;
00050
00053 template <typename T>
00054 struct tmat3x2
00055 {
00056 enum ctor{null};
00057 typedef T value_type;
00058 typedef std::size_t size_type;
00059 typedef tvec2<T> col_type;
00060 typedef tvec3<T> row_type;
00061 GLM_FUNC_DECL size_type length() const;
00062 static GLM_FUNC_DECL size_type col_size();
00063 static GLM_FUNC_DECL size_type row_size();
00064
00065 typedef tmat3x2<T> type;
00066 typedef tmat2x3<T> transpose_type;
00067
00068 private:
00069
00070 col_type value[3];
00071
00072 public:
00073
00074 GLM_FUNC_DECL tmat3x2();
00075 GLM_FUNC_DECL tmat3x2(tmat3x2 const & m);
00076
00077 GLM_FUNC_DECL explicit tmat3x2(
00078 ctor);
00079 GLM_FUNC_DECL explicit tmat3x2(
00080 value_type const & s);
00081 GLM_FUNC_DECL explicit tmat3x2(
00082 value_type const & x0, value_type const & y0,
00083 value_type const & x1, value_type const & y1,
00084 value_type const & x2, value_type const & y2);
00085 GLM_FUNC_DECL explicit tmat3x2(
00086 col_type const & v0,
00087 col_type const & v1,
00088 col_type const & v2);
00089
00091
00092 template <typename U>
00093 GLM_FUNC_DECL explicit tmat3x2(
00094 U const & x);
00095
00096 template
00097 <
00098 typename X1, typename Y1,
00099 typename X2, typename Y2,
00100 typename X3, typename Y3
00101 >
00102 GLM_FUNC_DECL explicit tmat3x2(
00103 X1 const & x1, Y1 const & y1,
00104 X2 const & x2, Y2 const & y2,
00105 X3 const & x3, Y3 const & y3);
00106
00107 template <typename V1, typename V2, typename V3>
00108 GLM_FUNC_DECL explicit tmat3x2(
00109 tvec2<V1> const & v1,
00110 tvec2<V2> const & v2,
00111 tvec2<V3> const & v3);
00112
00113
00114 template <typename U>
00115 GLM_FUNC_DECL explicit tmat3x2(tmat3x2<U> const & m);
00116
00117 GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T> const & x);
00118 GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T> const & x);
00119 GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T> const & x);
00120 GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T> const & x);
00121 GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T> const & x);
00122 GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T> const & x);
00123 GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T> const & x);
00124 GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T> const & x);
00125
00126
00127 GLM_FUNC_DECL col_type & operator[](size_type i);
00128 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
00129
00130
00131 GLM_FUNC_DECL tmat3x2<T> & operator= (tmat3x2<T> const & m);
00132 template <typename U>
00133 GLM_FUNC_DECL tmat3x2<T> & operator= (tmat3x2<U> const & m);
00134 template <typename U>
00135 GLM_FUNC_DECL tmat3x2<T> & operator+= (U const & s);
00136 template <typename U>
00137 GLM_FUNC_DECL tmat3x2<T> & operator+= (tmat3x2<U> const & m);
00138 template <typename U>
00139 GLM_FUNC_DECL tmat3x2<T> & operator-= (U const & s);
00140 template <typename U>
00141 GLM_FUNC_DECL tmat3x2<T> & operator-= (tmat3x2<U> const & m);
00142 template <typename U>
00143 GLM_FUNC_DECL tmat3x2<T> & operator*= (U const & s);
00144 template <typename U>
00145 GLM_FUNC_DECL tmat3x2<T> & operator*= (tmat3x2<U> const & m);
00146 template <typename U>
00147 GLM_FUNC_DECL tmat3x2<T> & operator/= (U const & s);
00148
00149 GLM_FUNC_DECL tmat3x2<T> & operator++ ();
00150 GLM_FUNC_DECL tmat3x2<T> & operator-- ();
00151 };
00152
00153
00154 template <typename T>
00155 tmat3x2<T> operator+ (
00156 tmat3x2<T> const & m,
00157 typename tmat3x2<T>::value_type const & s);
00158
00159 template <typename T>
00160 tmat3x2<T> operator+ (
00161 tmat3x2<T> const & m1,
00162 tmat3x2<T> const & m2);
00163
00164 template <typename T>
00165 tmat3x2<T> operator- (
00166 tmat3x2<T> const & m,
00167 typename tmat3x2<T>::value_type const & s);
00168
00169 template <typename T>
00170 tmat3x2<T> operator- (
00171 tmat3x2<T> const & m1,
00172 tmat3x2<T> const & m2);
00173
00174 template <typename T>
00175 tmat3x2<T> operator* (
00176 tmat3x2<T> const & m,
00177 typename tmat3x2<T>::value_type const & s);
00178
00179 template <typename T>
00180 tmat3x2<T> operator* (
00181 typename tmat3x2<T>::value_type const & s,
00182 tmat3x2<T> const & m);
00183
00184 template <typename T>
00185 typename tmat3x2<T>::col_type operator* (
00186 tmat3x2<T> const & m,
00187 typename tmat3x2<T>::row_type const & v);
00188
00189 template <typename T>
00190 typename tmat3x2<T>::row_type operator* (
00191 typename tmat3x2<T>::col_type const & v,
00192 tmat3x2<T> const & m);
00193
00194 template <typename T>
00195 tmat2x2<T> operator* (
00196 tmat3x2<T> const & m1,
00197 tmat2x3<T> const & m2);
00198
00199 template <typename T>
00200 tmat3x2<T> operator* (
00201 tmat3x2<T> const & m1,
00202 tmat3x3<T> const & m2);
00203
00204 template <typename T>
00205 tmat4x2<T> operator* (
00206 tmat3x2<T> const & m1,
00207 tmat4x3<T> const & m2);
00208
00209 template <typename T>
00210 tmat3x2<T> operator/ (
00211 tmat3x2<T> const & m,
00212 typename tmat3x2<T>::value_type const & s);
00213
00214 template <typename T>
00215 tmat3x2<T> operator/ (
00216 typename tmat3x2<T>::value_type const & s,
00217 tmat3x2<T> const & m);
00218
00219
00220 template <typename T>
00221 tmat3x2<T> const operator- (
00222 tmat3x2<T> const & m);
00223
00224 template <typename T>
00225 tmat3x2<T> const operator-- (
00226 tmat3x2<T> const & m,
00227 int);
00228
00229 template <typename T>
00230 tmat3x2<T> const operator++ (
00231 tmat3x2<T> const & m,
00232 int);
00233
00234 }
00235
00239 typedef detail::tmat3x2<lowp_float> lowp_mat3x2;
00240
00244 typedef detail::tmat3x2<mediump_float> mediump_mat3x2;
00245
00249 typedef detail::tmat3x2<highp_float> highp_mat3x2;
00250
00251 }
00252
00253 #ifndef GLM_EXTERNAL_TEMPLATE
00254 #include "type_mat3x2.inl"
00255 #endif
00256
00257 #endif //glm_core_type_mat3x2