type_mat3x4.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_vec3.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 tmat3x4
00049         {
00050                 enum ctor{_null};
00051                 typedef T value_type;
00052                 typedef std::size_t size_type;
00053                 typedef tvec4<T, P> col_type;
00054                 typedef tvec3<T, P> row_type;
00055                 typedef tmat3x4<T, P> type;
00056                 typedef tmat4x3<T, P> transpose_type;
00057 
00058                 GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const;
00059 
00060         private:
00061                 // Data 
00062                 col_type value[3];
00063 
00064         public:
00065                 // Constructors
00066                 GLM_FUNC_DECL tmat3x4();
00067                 GLM_FUNC_DECL tmat3x4(tmat3x4<T, P> const & m);
00068                 template <precision Q>
00069                 GLM_FUNC_DECL tmat3x4(tmat3x4<T, Q> const & m);
00070 
00071                 GLM_FUNC_DECL explicit tmat3x4(
00072                         ctor Null);
00073                 GLM_FUNC_DECL explicit tmat3x4(
00074                         T const & s);
00075                 GLM_FUNC_DECL tmat3x4(
00076                         T const & x0, T const & y0, T const & z0, T const & w0,
00077                         T const & x1, T const & y1, T const & z1, T const & w1,
00078                         T const & x2, T const & y2, T const & z2, T const & w2);
00079                 GLM_FUNC_DECL tmat3x4(
00080                         col_type const & v0,
00081                         col_type const & v1,
00082                         col_type const & v2);
00083 
00085                 // Conversions
00086                 template<
00087                         typename X1, typename Y1, typename Z1, typename W1,
00088                         typename X2, typename Y2, typename Z2, typename W2,
00089                         typename X3, typename Y3, typename Z3, typename W3>
00090                 GLM_FUNC_DECL tmat3x4(
00091                         X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
00092                         X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
00093                         X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);
00094                         
00095                 template <typename V1, typename V2, typename V3>
00096                 GLM_FUNC_DECL tmat3x4(
00097                         tvec4<V1, P> const & v1,
00098                         tvec4<V2, P> const & v2,
00099                         tvec4<V3, P> const & v3);
00100 
00101                 // Matrix conversion
00102                 template <typename U, precision Q>
00103                 GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U, Q> const & m);
00104 
00105                 GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T, P> const & x);
00106                 GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T, P> const & x);
00107                 GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T, P> const & x);
00108                 GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T, P> const & x);
00109                 GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T, P> const & x);
00110                 GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T, P> const & x);
00111                 GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T, P> const & x);
00112                 GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T, P> const & x);
00113 
00114                 // Accesses
00115                 GLM_FUNC_DECL col_type & operator[](length_t i);
00116                 GLM_FUNC_DECL col_type const & operator[](length_t i) const;
00117 
00118                 GLM_FUNC_DECL tmat3x4<T, P> & operator=  (tmat3x4<T, P> const & m);
00119                 template <typename U> 
00120                 GLM_FUNC_DECL tmat3x4<T, P> & operator=  (tmat3x4<U, P> const & m);
00121                 template <typename U> 
00122                 GLM_FUNC_DECL tmat3x4<T, P> & operator+= (U s);
00123                 template <typename U> 
00124                 GLM_FUNC_DECL tmat3x4<T, P> & operator+= (tmat3x4<U, P> const & m);
00125                 template <typename U> 
00126                 GLM_FUNC_DECL tmat3x4<T, P> & operator-= (U s);
00127                 template <typename U> 
00128                 GLM_FUNC_DECL tmat3x4<T, P> & operator-= (tmat3x4<U, P> const & m);
00129                 template <typename U> 
00130                 GLM_FUNC_DECL tmat3x4<T, P> & operator*= (U s);
00131                 template <typename U> 
00132                 GLM_FUNC_DECL tmat3x4<T, P> & operator/= (U s);
00133 
00135                 // Increment and decrement operators
00136 
00137                 GLM_FUNC_DECL tmat3x4<T, P> & operator++ ();
00138                 GLM_FUNC_DECL tmat3x4<T, P> & operator-- ();
00139                 GLM_FUNC_DECL tmat3x4<T, P> operator++(int);
00140                 GLM_FUNC_DECL tmat3x4<T, P> operator--(int);
00141         };
00142 
00143         // Binary operators
00144         template <typename T, precision P>
00145         GLM_FUNC_DECL tmat3x4<T, P> operator+ (
00146                 tmat3x4<T, P> const & m,
00147                 T const & s);
00148 
00149         template <typename T, precision P>
00150         GLM_FUNC_DECL tmat3x4<T, P> operator+ (
00151                 tmat3x4<T, P> const & m1,
00152                 tmat3x4<T, P> const & m2);
00153 
00154         template <typename T, precision P>
00155         GLM_FUNC_DECL tmat3x4<T, P> operator- (
00156                 tmat3x4<T, P> const & m,
00157                 T const & s);
00158 
00159         template <typename T, precision P>
00160         GLM_FUNC_DECL tmat3x4<T, P> operator- (
00161                 tmat3x4<T, P> const & m1,
00162                 tmat3x4<T, P> const & m2);
00163 
00164         template <typename T, precision P>
00165         GLM_FUNC_DECL tmat3x4<T, P> operator* (
00166                 tmat3x4<T, P> const & m, 
00167                 T const & s);
00168 
00169         template <typename T, precision P>
00170         GLM_FUNC_DECL tmat3x4<T, P> operator* (
00171                 T const & s,
00172                 tmat3x4<T, P> const & m);
00173 
00174         template <typename T, precision P>
00175         GLM_FUNC_DECL typename tmat3x4<T, P>::col_type operator* (
00176                 tmat3x4<T, P> const & m,
00177                 typename tmat3x4<T, P>::row_type const & v);
00178 
00179         template <typename T, precision P> 
00180         GLM_FUNC_DECL typename tmat3x4<T, P>::row_type operator* (
00181                 typename tmat3x4<T, P>::col_type const & v,
00182                 tmat3x4<T, P> const & m);
00183 
00184         template <typename T, precision P>
00185         GLM_FUNC_DECL tmat4x4<T, P> operator* (
00186                 tmat3x4<T, P> const & m1,
00187                 tmat4x3<T, P> const & m2);
00188                 
00189         template <typename T, precision P>
00190         GLM_FUNC_DECL tmat2x4<T, P> operator* (
00191                 tmat3x4<T, P> const & m1,
00192                 tmat2x3<T, P> const & m2);
00193                 
00194         template <typename T, precision P>
00195         GLM_FUNC_DECL tmat3x4<T, P> operator* (
00196                 tmat3x4<T, P> const & m1,
00197                 tmat3x3<T, P> const & m2);
00198 
00199         template <typename T, precision P>
00200         GLM_FUNC_DECL tmat3x4<T, P> operator/ (
00201                 tmat3x4<T, P> const & m,
00202                 T const & s);
00203 
00204         template <typename T, precision P>
00205         GLM_FUNC_DECL tmat3x4<T, P> operator/ (
00206                 T const & s,
00207                 tmat3x4<T, P> const & m);
00208 
00209         // Unary constant operators
00210         template <typename T, precision P>
00211         GLM_FUNC_DECL tmat3x4<T, P> const operator-(
00212                 tmat3x4<T, P> const & m);
00213 
00214 }//namespace detail
00215 }//namespace glm
00216 
00217 #ifndef GLM_EXTERNAL_TEMPLATE
00218 #include "type_mat3x4.inl"
00219 #endif


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