34 #       if GLM_HAS_ANONYMOUS_UNION 
   44         template <
typename T, precision P = defaultp>
 
   50                 typedef tvec3<T, P> type;
 
   51                 typedef tvec3<bool, P> bool_type;
 
   53                 typedef int size_type;
 
   58 #               ifdef GLM_FORCE_SIZE_FUNC 
   59                         GLM_FUNC_DECL GLM_CONSTEXPR 
size_t size() 
const;
 
   62                         GLM_FUNC_DECL GLM_CONSTEXPR length_t 
length() 
const;
 
   64 #               endif//GLM_FORCE_SIZE_FUNC 
   69 #               if GLM_HAS_ANONYMOUS_UNION 
   77                                         _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, x, y, z)
 
   78                                         _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, r, g, b)
 
   79                                         _GLM_SWIZZLE3_2_MEMBERS(T, P, tvec2, s, t, p)
 
   80                                         _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, x, y, z)
 
   81                                         _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, r, g, b)
 
   82                                         _GLM_SWIZZLE3_3_MEMBERS(T, P, tvec3, s, t, p)
 
   83                                         _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, x, y, z)
 
   84                                         _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, r, g, b)
 
   85                                         _GLM_SWIZZLE3_4_MEMBERS(T, P, tvec4, s, t, p)
 
   94                                 GLM_SWIZZLE_GEN_VEC_FROM_VEC3(T, P, tvec3, tvec2, tvec3, tvec4)
 
  101                 GLM_FUNC_DECL T & operator[](length_t i);
 
  102                 GLM_FUNC_DECL T 
const & operator[](length_t i) 
const;
 
  107                 GLM_FUNC_DECL tvec3();
 
  108                 template <precision Q>
 
  109                 GLM_FUNC_DECL tvec3(tvec3<T, Q> 
const & v);
 
  114                 GLM_FUNC_DECL 
explicit tvec3(ctor);
 
  115                 GLM_FUNC_DECL 
explicit tvec3(T 
const & s);
 
  116                 GLM_FUNC_DECL tvec3(T 
const & a, T 
const & b, T 
const & c);
 
  122                 template <
typename A, 
typename B, 
typename C>
 
  123                 GLM_FUNC_DECL tvec3(A 
const & a, B 
const & b, C 
const & c);
 
  124                 template <
typename A, 
typename B, 
typename C>
 
  125                 GLM_FUNC_DECL tvec3(tvec1<A, P> 
const & a, tvec1<B, P> 
const & b, tvec1<C, P> 
const & c);
 
  131                 template <
typename A, 
typename B, precision Q>
 
  132                 GLM_FUNC_DECL 
explicit tvec3(tvec2<A, Q> 
const & a, B 
const & b);
 
  134                 template <
typename A, 
typename B, precision Q>
 
  135                 GLM_FUNC_DECL 
explicit tvec3(tvec2<A, Q> 
const & a, tvec1<B, Q> 
const & b);
 
  137                 template <
typename A, 
typename B, precision Q>
 
  138                 GLM_FUNC_DECL 
explicit tvec3(A 
const & a, tvec2<B, Q> 
const & b);
 
  140                 template <
typename A, 
typename B, precision Q>
 
  141                 GLM_FUNC_DECL 
explicit tvec3(tvec1<A, Q> 
const & a, tvec2<B, Q> 
const & b);
 
  143                 template <
typename U, precision Q>
 
  144                 GLM_FUNC_DECL 
explicit tvec3(tvec4<U, Q> 
const & v);
 
  146 #               ifdef GLM_FORCE_EXPLICIT_CTOR 
  147                         template <
typename U, precision Q>
 
  149                         GLM_FUNC_DECL 
explicit tvec3(tvec3<U, Q> 
const & v);
 
  151                         template <
typename U, precision Q>
 
  153                         GLM_FUNC_DECL tvec3(tvec3<U, Q> 
const & v);
 
  159 #               if GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE) 
  160                         template <
int E0, 
int E1, 
int E2>
 
  161                         GLM_FUNC_DECL tvec3(detail::_swizzle<3, T, P, tvec3<T, P>, E0, E1, E2, -1> 
const & that)
 
  166                         template <
int E0, 
int E1>
 
  167                         GLM_FUNC_DECL tvec3(detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> 
const & v, T 
const & s)
 
  169                                 *
this = tvec3<T, P>(v(), s);
 
  172                         template <
int E0, 
int E1>
 
  173                         GLM_FUNC_DECL tvec3(T 
const & s, detail::_swizzle<2, T, P, tvec2<T, P>, E0, E1, -1, -2> 
const & v)
 
  175                                 *
this = tvec3<T, P>(s, v());
 
  177 #               endif// GLM_HAS_ANONYMOUS_UNION && defined(GLM_SWIZZLE) 
  182                 template <
typename U>
 
  183                 GLM_FUNC_DECL tvec3<T, P> & operator=(tvec3<U, P> 
const & v);
 
  184                 template <
typename U>
 
  185                 GLM_FUNC_DECL tvec3<T, P> & operator+=(U s);
 
  186                 template <
typename U>
 
  187                 GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec1<U, P> 
const & v);
 
  188                 template <
typename U>
 
  189                 GLM_FUNC_DECL tvec3<T, P> & operator+=(tvec3<U, P> 
const & v);
 
  190                 template <
typename U>
 
  191                 GLM_FUNC_DECL tvec3<T, P> & operator-=(U s);
 
  192                 template <
typename U>
 
  193                 GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec1<U, P> 
const & v);
 
  194                 template <
typename U>
 
  195                 GLM_FUNC_DECL tvec3<T, P> & operator-=(tvec3<U, P> 
const & v);
 
  196                 template <
typename U>
 
  197                 GLM_FUNC_DECL tvec3<T, P> & operator*=(U s);
 
  198                 template <
typename U>
 
  199                 GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec1<U, P> 
const & v);
 
  200                 template <
typename U>
 
  201                 GLM_FUNC_DECL tvec3<T, P> & operator*=(tvec3<U, P> 
const & v);
 
  202                 template <
typename U>
 
  203                 GLM_FUNC_DECL tvec3<T, P> & operator/=(U s);
 
  204                 template <
typename U>
 
  205                 GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec1<U, P> 
const & v);
 
  206                 template <
typename U>
 
  207                 GLM_FUNC_DECL tvec3<T, P> & operator/=(tvec3<U, P> 
const & v);
 
  212                 GLM_FUNC_DECL tvec3<T, P> & operator++();
 
  213                 GLM_FUNC_DECL tvec3<T, P> & operator--();
 
  214                 GLM_FUNC_DECL tvec3<T, P> operator++(
int);
 
  215                 GLM_FUNC_DECL tvec3<T, P> operator--(
int);
 
  220                 template <
typename U>
 
  221                 GLM_FUNC_DECL tvec3<T, P> & operator%=(U s);
 
  222                 template <
typename U>
 
  223                 GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec1<U, P> 
const & v);
 
  224                 template <
typename U>
 
  225                 GLM_FUNC_DECL tvec3<T, P> & operator%=(tvec3<U, P> 
const & v);
 
  226                 template <
typename U>
 
  227                 GLM_FUNC_DECL tvec3<T, P> & operator&=(U s);
 
  228                 template <
typename U>
 
  229                 GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec1<U, P> 
const & v);
 
  230                 template <
typename U>
 
  231                 GLM_FUNC_DECL tvec3<T, P> & operator&=(tvec3<U, P> 
const & v);
 
  232                 template <
typename U>
 
  233                 GLM_FUNC_DECL tvec3<T, P> & operator|=(U s);
 
  234                 template <
typename U>
 
  235                 GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec1<U, P> 
const & v);
 
  236                 template <
typename U>
 
  237                 GLM_FUNC_DECL tvec3<T, P> & operator|=(tvec3<U, P> 
const & v);
 
  238                 template <
typename U>
 
  239                 GLM_FUNC_DECL tvec3<T, P> & operator^=(U s);
 
  240                 template <
typename U>
 
  241                 GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec1<U, P> 
const & v);
 
  242                 template <
typename U>
 
  243                 GLM_FUNC_DECL tvec3<T, P> & operator^=(tvec3<U, P> 
const & v);
 
  244                 template <
typename U>
 
  245                 GLM_FUNC_DECL tvec3<T, P> & operator<<=(U s);
 
  246                 template <
typename U>
 
  247                 GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec1<U, P> 
const & v);
 
  248                 template <
typename U>
 
  249                 GLM_FUNC_DECL tvec3<T, P> & operator<<=(tvec3<U, P> 
const & v);
 
  250                 template <
typename U>
 
  251                 GLM_FUNC_DECL tvec3<T, P> & operator>>=(U s);
 
  252                 template <
typename U>
 
  253                 GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec1<U, P> 
const & v);
 
  254                 template <
typename U>
 
  255                 GLM_FUNC_DECL tvec3<T, P> & operator>>=(tvec3<U, P> 
const & v);
 
  258         template <
typename T, precision P>
 
  259         GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> 
const & v, T 
const & s);
 
  261         template <
typename T, precision P>
 
  262         GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  264         template <
typename T, precision P>
 
  265         GLM_FUNC_DECL tvec3<T, P> operator+(T 
const & s, tvec3<T, P> 
const & v);
 
  267         template <
typename T, precision P>
 
  268         GLM_FUNC_DECL tvec3<T, P> operator+(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  270         template <
typename T, precision P>
 
  271         GLM_FUNC_DECL tvec3<T, P> operator+(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  273         template <
typename T, precision P>
 
  274         GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> 
const & v, T 
const & s);
 
  276         template <
typename T, precision P>
 
  277         GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  279         template <
typename T, precision P>
 
  280         GLM_FUNC_DECL tvec3<T, P> operator-(T 
const & s, tvec3<T, P> 
const & v);
 
  282         template <
typename T, precision P>
 
  283         GLM_FUNC_DECL tvec3<T, P> operator-(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  285         template <
typename T, precision P>
 
  286         GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  288         template <
typename T, precision P>
 
  289         GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> 
const & v, T 
const & s);
 
  291         template <
typename T, precision P>
 
  292         GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  294         template <
typename T, precision P>
 
  295         GLM_FUNC_DECL tvec3<T, P> operator*(T 
const & s, tvec3<T, P> 
const & v);
 
  297         template <
typename T, precision P>
 
  298         GLM_FUNC_DECL tvec3<T, P> operator*(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  300         template <
typename T, precision P>
 
  301         GLM_FUNC_DECL tvec3<T, P> operator*(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  303         template <
typename T, precision P>
 
  304         GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> 
const & v, T 
const & s);
 
  306         template <
typename T, precision P>
 
  307         GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  309         template <
typename T, precision P>
 
  310         GLM_FUNC_DECL tvec3<T, P> operator/(T 
const & s, tvec3<T, P> 
const & v);
 
  312         template <
typename T, precision P>
 
  313         GLM_FUNC_DECL tvec3<T, P> operator/(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  315         template <
typename T, precision P>
 
  316         GLM_FUNC_DECL tvec3<T, P> operator/(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  318         template <
typename T, precision P>
 
  319         GLM_FUNC_DECL tvec3<T, P> operator-(tvec3<T, P> 
const & v);
 
  321         template <
typename T, precision P>
 
  322         GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> 
const & v, T 
const & s);
 
  324         template <
typename T, precision P>
 
  325         GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  327         template <
typename T, precision P>
 
  328         GLM_FUNC_DECL tvec3<T, P> operator%(T 
const & s, tvec3<T, P> 
const & v);
 
  330         template <
typename T, precision P>
 
  331         GLM_FUNC_DECL tvec3<T, P> operator%(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  333         template <
typename T, precision P>
 
  334         GLM_FUNC_DECL tvec3<T, P> operator%(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  336         template <
typename T, precision P>
 
  337         GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> 
const & v, T 
const & s);
 
  339         template <
typename T, precision P>
 
  340         GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  342         template <
typename T, precision P>
 
  343         GLM_FUNC_DECL tvec3<T, P> operator&(T 
const & s, tvec3<T, P> 
const & v);
 
  345         template <
typename T, precision P>
 
  346         GLM_FUNC_DECL tvec3<T, P> operator&(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  348         template <
typename T, precision P>
 
  349         GLM_FUNC_DECL tvec3<T, P> operator&(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  351         template <
typename T, precision P>
 
  352         GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> 
const & v, T 
const & s);
 
  354         template <
typename T, precision P>
 
  355         GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  357         template <
typename T, precision P>
 
  358         GLM_FUNC_DECL tvec3<T, P> operator|(T 
const & s, tvec3<T, P> 
const & v);
 
  360         template <
typename T, precision P>
 
  361         GLM_FUNC_DECL tvec3<T, P> operator|(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  363         template <
typename T, precision P>
 
  364         GLM_FUNC_DECL tvec3<T, P> operator|(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  366         template <
typename T, precision P>
 
  367         GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> 
const & v, T 
const & s);
 
  369         template <
typename T, precision P>
 
  370         GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  372         template <
typename T, precision P>
 
  373         GLM_FUNC_DECL tvec3<T, P> operator^(T 
const & s, tvec3<T, P> 
const & v);
 
  375         template <
typename T, precision P>
 
  376         GLM_FUNC_DECL tvec3<T, P> operator^(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  378         template <
typename T, precision P>
 
  379         GLM_FUNC_DECL tvec3<T, P> operator^(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  381         template <
typename T, precision P>
 
  382         GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> 
const & v, T 
const & s);
 
  384         template <
typename T, precision P>
 
  385         GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  387         template <
typename T, precision P>
 
  388         GLM_FUNC_DECL tvec3<T, P> operator<<(T const & s, tvec3<T, P> 
const & v);
 
  390         template <
typename T, precision P>
 
  391         GLM_FUNC_DECL tvec3<T, P> operator<<(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  393         template <
typename T, precision P>
 
  394         GLM_FUNC_DECL tvec3<T, P> operator<<(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  396         template <
typename T, precision P>
 
  397         GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> 
const & v, T 
const & s);
 
  399         template <
typename T, precision P>
 
  400         GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> 
const & v, tvec1<T, P> 
const & s);
 
  402         template <
typename T, precision P>
 
  403         GLM_FUNC_DECL tvec3<T, P> operator>>(T 
const & s, tvec3<T, P> 
const & v);
 
  405         template <
typename T, precision P>
 
  406         GLM_FUNC_DECL tvec3<T, P> operator>>(tvec1<T, P> 
const & s, tvec3<T, P> 
const & v);
 
  408         template <
typename T, precision P>
 
  409         GLM_FUNC_DECL tvec3<T, P> operator>>(tvec3<T, P> 
const & v1, tvec3<T, P> 
const & v2);
 
  411         template <
typename T, precision P> 
 
  412         GLM_FUNC_DECL tvec3<T, P> operator~(tvec3<T, P> 
const & v);
 
  415 #ifndef GLM_EXTERNAL_TEMPLATE 
  416 #include "type_vec3.inl" 
  417 #endif//GLM_EXTERNAL_TEMPLATE 
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) 
OpenGL Mathematics (glm.g-truc.net)