type_mat4x2.hpp
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 #pragma once
00030 
00031 #include "../fwd.hpp"
00032 #include "type_vec2.hpp"
00033 #include "type_vec4.hpp"
00034 #include "type_mat.hpp"
00035 #if GLM_HAS_INITIALIZER_LISTS
00036 #       include <initializer_list>
00037 #endif
00038 #if GLM_HAS_RVALUE_REFERENCES
00039 #       include <algorithm>
00040 #endif
00041 #include <limits>
00042 #include <cstddef>
00043 
00044 namespace glm{
00045 namespace detail
00046 {
00047         template <typename T, precision P>
00048         struct tmat4x2
00049         {
00050                 enum ctor{_null};
00051                 typedef T value_type;
00052                 typedef std::size_t size_type;
00053                 typedef tvec2<T, P> col_type;
00054                 typedef tvec4<T, P> row_type;
00055                 typedef tmat4x2<T, P> type;
00056                 typedef tmat2x4<T, P> transpose_type;
00057 
00058                 GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
00059 
00060         private:
00061                 // Data 
00062                 col_type value[4];
00063 
00064         public:
00065                 // Constructors
00066                 GLM_FUNC_DECL tmat4x2();
00067                 GLM_FUNC_DECL tmat4x2(tmat4x2<T, P> const & m);
00068                 template <precision Q>
00069                 GLM_FUNC_DECL tmat4x2(tmat4x2<T, Q> const & m);
00070 
00071                 GLM_FUNC_DECL explicit tmat4x2(
00072                         ctor Null);
00073                 GLM_FUNC_DECL explicit tmat4x2(
00074                         T const & x);
00075                 GLM_FUNC_DECL tmat4x2(
00076                         T const & x0, T const & y0,
00077                         T const & x1, T const & y1,
00078                         T const & x2, T const & y2,
00079                         T const & x3, T const & y3);
00080                 GLM_FUNC_DECL tmat4x2(
00081                         col_type const & v0, 
00082                         col_type const & v1,
00083                         col_type const & v2,
00084                         col_type const & v3);
00085 
00087                 // Conversions
00088 
00089                 template<
00090                         typename X1, typename Y1,
00091                         typename X2, typename Y2,
00092                         typename X3, typename Y3,
00093                         typename X4, typename Y4>
00094                 GLM_FUNC_DECL tmat4x2(
00095                         X1 const & x1, Y1 const & y1,
00096                         X2 const & x2, Y2 const & y2,
00097                         X3 const & x3, Y3 const & y3,
00098                         X4 const & x4, Y4 const & y4);
00099 
00100                 template <typename V1, typename V2, typename V3, typename V4>
00101                 GLM_FUNC_DECL tmat4x2(
00102                         tvec2<V1, P> const & v1,
00103                         tvec2<V2, P> const & v2,
00104                         tvec2<V3, P> const & v3,
00105                         tvec2<V4, P> const & v4);
00106 
00107                 // Matrix conversions
00108                 template <typename U, precision Q>
00109                 GLM_FUNC_DECL explicit tmat4x2(tmat4x2<U, Q> const & m);
00110 
00111                 GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T, P> const & x);
00112                 GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T, P> const & x);
00113                 GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T, P> const & x);
00114                 GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T, P> const & x);
00115                 GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T, P> const & x);
00116                 GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T, P> const & x);
00117                 GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T, P> const & x);
00118                 GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T, P> const & x);
00119 
00120                 // Accesses
00121                 GLM_FUNC_DECL col_type & operator[](length_t i);
00122                 GLM_FUNC_DECL col_type const & operator[](length_t i) const;
00123 
00124                 GLM_FUNC_DECL tmat4x2<T, P>& operator=  (tmat4x2<T, P> const & m);
00125                 template <typename U> 
00126                 GLM_FUNC_DECL tmat4x2<T, P>& operator=  (tmat4x2<U, P> const & m);
00127                 template <typename U> 
00128                 GLM_FUNC_DECL tmat4x2<T, P>& operator+= (U s);
00129                 template <typename U> 
00130                 GLM_FUNC_DECL tmat4x2<T, P>& operator+= (tmat4x2<U, P> const & m);
00131                 template <typename U> 
00132                 GLM_FUNC_DECL tmat4x2<T, P>& operator-= (U s);
00133                 template <typename U> 
00134                 GLM_FUNC_DECL tmat4x2<T, P>& operator-= (tmat4x2<U, P> const & m);
00135                 template <typename U> 
00136                 GLM_FUNC_DECL tmat4x2<T, P>& operator*= (U s);
00137                 template <typename U> 
00138                 GLM_FUNC_DECL tmat4x2<T, P>& operator/= (U s);
00139 
00141                 // Increment and decrement operators
00142 
00143                 GLM_FUNC_DECL tmat4x2<T, P> & operator++ ();
00144                 GLM_FUNC_DECL tmat4x2<T, P> & operator-- ();
00145                 GLM_FUNC_DECL tmat4x2<T, P> operator++(int);
00146                 GLM_FUNC_DECL tmat4x2<T, P> operator--(int);
00147         };
00148 
00149         // Binary operators
00150         template <typename T, precision P>
00151         GLM_FUNC_DECL tmat4x2<T, P> operator+ (
00152                 tmat4x2<T, P> const & m,
00153                 T const & s);
00154 
00155         template <typename T, precision P>
00156         GLM_FUNC_DECL tmat4x2<T, P> operator+ (
00157                 tmat4x2<T, P> const & m1,
00158                 tmat4x2<T, P> const & m2);
00159 
00160         template <typename T, precision P>
00161         GLM_FUNC_DECL tmat4x2<T, P> operator- (
00162                 tmat4x2<T, P> const & m,
00163                 T const & s);
00164 
00165         template <typename T, precision P>
00166         GLM_FUNC_DECL tmat4x2<T, P> operator- (
00167                 tmat4x2<T, P> const & m1,
00168                 tmat4x2<T, P> const & m2);
00169 
00170         template <typename T, precision P>
00171         GLM_FUNC_DECL tmat4x2<T, P> operator* (
00172                 tmat4x2<T, P> const & m,
00173                 T const & s);
00174 
00175         template <typename T, precision P>
00176         GLM_FUNC_DECL tmat4x2<T, P> operator* (
00177                 T const & s,
00178                 tmat4x2<T, P> const & m);
00179 
00180         template <typename T, precision P>
00181         GLM_FUNC_DECL typename tmat4x2<T, P>::col_type operator* (
00182                 tmat4x2<T, P> const & m,
00183                 typename tmat4x2<T, P>::row_type const & v);
00184 
00185         template <typename T, precision P>
00186         GLM_FUNC_DECL typename tmat4x2<T, P>::row_type operator* (
00187                 typename tmat4x2<T, P>::col_type const & v,
00188                 tmat4x2<T, P> const & m);
00189 
00190         template <typename T, precision P>
00191         GLM_FUNC_DECL tmat3x2<T, P> operator* (
00192                 tmat4x2<T, P> const & m1,
00193                 tmat3x4<T, P> const & m2);
00194                 
00195         template <typename T, precision P>
00196         GLM_FUNC_DECL tmat4x2<T, P> operator* (
00197                 tmat4x2<T, P> const & m1,
00198                 tmat4x4<T, P> const & m2);
00199                 
00200         template <typename T, precision P>
00201         GLM_FUNC_DECL tmat2x3<T, P> operator* (
00202                 tmat4x3<T, P> const & m1,
00203                 tmat2x4<T, P> const & m2);
00204 
00205         template <typename T, precision P>
00206         GLM_FUNC_DECL tmat4x2<T, P> operator/ (
00207                 tmat4x2<T, P> const & m,
00208                 T const & s);
00209 
00210         template <typename T, precision P>
00211         GLM_FUNC_DECL tmat4x2<T, P> operator/ (
00212                 T const & s,
00213                 tmat4x2<T, P> const & m);
00214 
00215         // Unary constant operators
00216         template <typename T, precision P>
00217         GLM_FUNC_DECL tmat4x2<T, P> const operator-(
00218                 tmat4x2<T, P> const & m);
00219                 
00220 }//namespace detail
00221 }//namespace glm
00222 
00223 #ifndef GLM_EXTERNAL_TEMPLATE
00224 #include "type_mat4x2.inl"
00225 #endif


rtabmap
Author(s): Mathieu Labbe
autogenerated on Sat Jul 23 2016 11:44:27