\c\This file was generated using a tool\c\
\h1\func_geometric methods\h1\
The following methods are all part of the \b\func_geometric methods\b\.
These operate on vectors as vectors, not component-wise.
\h2\Table of contents\h2\
\ul\
\-\\url #cross-function\\b\cross\b\ function\url\
\-\\url #distance-function\\b\distance\b\ function\url\
\-\\url #dot-function\\b\dot\b\ function\url\
\-\\url #faceforward-function\\b\faceforward\b\ function\url\
\-\\url #length-function\\b\length\b\ function\url\
\-\\url #normalize-function\\b\normalize\b\ function\url\
\-\\url #reflect-function\\b\reflect\b\ function\url\
\-\\url #refract-function\\b\refract\b\ function\url\
\ul\
\h3\cross() function\h3\
\raw\#### <code>glm.<code>**cross**(**x**: *vec3*, **y**: *vec3*) -\\> *vec3*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the cross product of \code\x\code\ and \code\y\code\.

\raw\#### <code>glm.<code>**cross**(**x**: *quat*, **y**: *quat*) -\\> *quat*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Compute a cross product.

\h3\distance() function\h3\
\raw\#### <code>glm.<code>**distance**(**p0**: *float*, **p1**: *float*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the distance between \code\p0\code\ and \code\p1\code\, i.e., \code\length(p0 - p1)\code\.

\raw\#### <code>glm.<code>**distance**(**p0**: *vecN*, **p1**: *vecN*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the distance between \code\p0\code\ and \code\p1\code\, i.e., \code\length(p0 - p1)\code\.

\h3\dot() function\h3\
\raw\#### <code>glm.<code>**dot**(**x**: *number*, **y**: *number*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the dot product of \code\x\code\ and \code\y\code\, i.e., \code\result = x * y\code\.

\raw\#### <code>glm.<code>**dot**(**x**: *vecN*, **y**: *vecN*) -\\> *number*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the dot product of \code\x\code\ and \code\y\code\, i.e., \code\result = x[0] * y[0] + x[1] * y[1] + ...\code\

\raw\#### <code>glm.<code>**dot**(**x**: *quat*, **y**: *quat*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns dot product of \code\x\code\ and \code\y\code\, i.e., \code\x[0] * y[0] + x[1] * y[1] + ...\code\

\h3\faceforward() function\h3\
\raw\#### <code>glm.<code>**faceforward**(**N**: *float*, **I**: *float*, **Nref**: *float*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\If \code\dot(Nref, I) < 0.0\code\, return \code\N\code\, otherwise, return \code\-N\code\.

\raw\#### <code>glm.<code>**faceforward**(**N**: *vecN*, **I**: *vecN*, **Nref**: *vecN*) -\\> *vecN*</code></code>\raw\
\raw\&emsp;&emsp;\raw\For every index \code\i\code\:
\raw\&emsp;&emsp;\raw\If \code\dot(Nref[i], I[i]) < 0.0\code\, return \code\N[i]\code\, otherwise, return \code\-N[i]\code\.

\h3\length() function\h3\
\raw\#### <code>glm.<code>**length**(**x**: *float*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the length of \code\x\code\, i.e., \code\abs(x)\code\.

\raw\#### <code>glm.<code>**length**(**x**: *vecN*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the length of \code\x\code\, i.e., \code\sqrt(x * x)\code\.

\raw\#### <code>glm.<code>**length**(**x**: *quat*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the norm of a quaternion.

\h3\normalize() function\h3\
\raw\#### <code>glm.<code>**normalize**(**x**: *vecN*) -\\> *vecN*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns a vector in the same direction as \code\x\code\ but with length of \code\1\code\.

\raw\#### <code>glm.<code>**normalize**(**x**: *quat*) -\\> *quat*</code></code>\raw\
\raw\&emsp;&emsp;\raw\Returns the normalized quaternion.

\h3\reflect() function\h3\
\raw\#### <code>glm.<code>**reflect**(**I**: *float*, **N**: *float*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\For the incident vector \code\I\code\ and surface orientation \code\N\code\, returns the reflection direction:
\raw\&emsp;&emsp;\raw\\code\result = I - 2.0 * dot(N, I) * N\code\.

\raw\#### <code>glm.<code>**reflect**(**I**: *vecN*, **N**: *vecN*) -\\> *vecN*</code></code>\raw\
\raw\&emsp;&emsp;\raw\For the incident vector \code\I\code\ and surface orientation \code\N\code\, returns the reflection direction:
\raw\&emsp;&emsp;\raw\\code\result = I - 2.0 * dot(N, I) * N\code\.

\h3\refract() function\h3\
\raw\#### <code>glm.<code>**refract**(**I**: *float*, **N**: *float*, **eta**: *float*) -\\> *float*</code></code>\raw\
\raw\&emsp;&emsp;\raw\For the incident vector \code\I\code\ and surface normal \code\N\code\, and the ratio of indices of refraction \code\eta\code\,
\raw\&emsp;&emsp;\raw\return the refraction vector.

\raw\#### <code>glm.<code>**refract**(**I**: *vecN*, **N**: *vecN*, **eta**: *float*) -\\> *vecN*</code></code>\raw\
\raw\&emsp;&emsp;\raw\For the incident vector \code\I\code\ and surface normal \code\N\code\, and the ratio of indices of refraction \code\eta\code\,
\raw\&emsp;&emsp;\raw\return the refraction vector.

