twgl.js/docs/module-twgl_v3.html
2016-03-14 11:53:51 -07:00

3126 lines
52 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>twgl/v3 - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-twgl.html">twgl</a><ul class='methods'><li data-type='method'><a href="module-twgl.html#.bindFramebufferInfo">bindFramebufferInfo</a></li><li data-type='method'><a href="module-twgl.html#.bindUniformBlock">bindUniformBlock</a></li><li data-type='method'><a href="module-twgl.html#.createBufferInfoFromArrays">createBufferInfoFromArrays</a></li><li data-type='method'><a href="module-twgl.html#.createFramebufferInfo">createFramebufferInfo</a></li><li data-type='method'><a href="module-twgl.html#.createProgramInfo">createProgramInfo</a></li><li data-type='method'><a href="module-twgl.html#.createTexture">createTexture</a></li><li data-type='method'><a href="module-twgl.html#.createTextures">createTextures</a></li><li data-type='method'><a href="module-twgl.html#.createUniformBlockInfo">createUniformBlockInfo</a></li><li data-type='method'><a href="module-twgl.html#.createVertexArrayInfo">createVertexArrayInfo</a></li><li data-type='method'><a href="module-twgl.html#.drawBufferInfo">drawBufferInfo</a></li><li data-type='method'><a href="module-twgl.html#.drawObjectList">drawObjectList</a></li><li data-type='method'><a href="module-twgl.html#.getContext">getContext</a></li><li data-type='method'><a href="module-twgl.html#.getWebGLContext">getWebGLContext</a></li><li data-type='method'><a href="module-twgl.html#.resizeCanvasToDisplaySize">resizeCanvasToDisplaySize</a></li><li data-type='method'><a href="module-twgl.html#.resizeFramebufferInfo">resizeFramebufferInfo</a></li><li data-type='method'><a href="module-twgl.html#.resizeTexture">resizeTexture</a></li><li data-type='method'><a href="module-twgl.html#.setAttribInfoBufferFromArray">setAttribInfoBufferFromArray</a></li><li data-type='method'><a href="module-twgl.html#.setBlockUniforms">setBlockUniforms</a></li><li data-type='method'><a href="module-twgl.html#.setBuffersAndAttributes">setBuffersAndAttributes</a></li><li data-type='method'><a href="module-twgl.html#.setDefaults">setDefaults</a></li><li data-type='method'><a href="module-twgl.html#.setTextureFromArray">setTextureFromArray</a></li><li data-type='method'><a href="module-twgl.html#.setUniformBlock">setUniformBlock</a></li><li data-type='method'><a href="module-twgl.html#.setUniforms">setUniforms</a></li></ul></li><li><a href="module-twgl_attributes.html">twgl/attributes</a><ul class='methods'><li data-type='method'><a href="module-twgl_attributes.html#.createAttribsFromArrays">createAttribsFromArrays</a></li><li data-type='method'><a href="module-twgl_attributes.html#.createBufferFromArray">createBufferFromArray</a></li><li data-type='method'><a href="module-twgl_attributes.html#.createBufferFromTypedArray">createBufferFromTypedArray</a></li><li data-type='method'><a href="module-twgl_attributes.html#.createBufferInfoFromArrays">createBufferInfoFromArrays</a></li><li data-type='method'><a href="module-twgl_attributes.html#.createBuffersFromArrays">createBuffersFromArrays</a></li><li data-type='method'><a href="module-twgl_attributes.html#.createVertexArrayInfo">createVertexArrayInfo</a></li><li data-type='method'><a href="module-twgl_attributes.html#.setAttribInfoBufferFromArray">setAttribInfoBufferFromArray</a></li><li data-type='method'><a href="module-twgl_attributes.html#.setAttributePrefix">setAttributePrefix</a></li></ul></li><li><a href="module-twgl_draw.html">twgl/draw</a><ul class='methods'><li data-type='method'><a href="module-twgl_draw.html#.drawBufferInfo">drawBufferInfo</a></li><li data-type='method'><a href="module-twgl_draw.html#.drawObjectList">drawObjectList</a></li></ul></li><li><a href="module-twgl_framebuffers.html">twgl/framebuffers</a><ul class='methods'><li data-type='method'><a href="module-twgl_framebuffers.html#.bindFramebufferInfo">bindFramebufferInfo</a></li><li data-type='method'><a href="module-twgl_framebuffers.html#.createFramebufferInfo">createFramebufferInfo</a></li><li data-type='method'><a href="module-twgl_framebuffers.html#.resizeFramebufferInfo">resizeFramebufferInfo</a></li></ul></li><li><a href="module-twgl_m4.html">twgl/m4</a><ul class='methods'><li data-type='method'><a href="module-twgl_m4.html#.axisRotate">axisRotate</a></li><li data-type='method'><a href="module-twgl_m4.html#.axisRotation">axisRotation</a></li><li data-type='method'><a href="module-twgl_m4.html#.copy">copy</a></li><li data-type='method'><a href="module-twgl_m4.html#.frustum">frustum</a></li><li data-type='method'><a href="module-twgl_m4.html#.getAxis">getAxis</a></li><li data-type='method'><a href="module-twgl_m4.html#.getTranslation">getTranslation</a></li><li data-type='method'><a href="module-twgl_m4.html#.identity">identity</a></li><li data-type='method'><a href="module-twgl_m4.html#.inverse">inverse</a></li><li data-type='method'><a href="module-twgl_m4.html#.lookAt">lookAt</a></li><li data-type='method'><a href="module-twgl_m4.html#.multiply">multiply</a></li><li data-type='method'><a href="module-twgl_m4.html#.negate">negate</a></li><li data-type='method'><a href="module-twgl_m4.html#.ortho">ortho</a></li><li data-type='method'><a href="module-twgl_m4.html#.perspective">perspective</a></li><li data-type='method'><a href="module-twgl_m4.html#.rotateX">rotateX</a></li><li data-type='method'><a href="module-twgl_m4.html#.rotateY">rotateY</a></li><li data-type='method'><a href="module-twgl_m4.html#.rotateZ">rotateZ</a></li><li data-type='method'><a href="module-twgl_m4.html#.rotationX">rotationX</a></li><li data-type='method'><a href="module-twgl_m4.html#.rotationY">rotationY</a></li><li data-type='method'><a href="module-twgl_m4.html#.rotationZ">rotationZ</a></li><li data-type='method'><a href="module-twgl_m4.html#.scale">scale</a></li><li data-type='method'><a href="module-twgl_m4.html#.scaling">scaling</a></li><li data-type='method'><a href="module-twgl_m4.html#.setAxis">setAxis</a></li><li data-type='method'><a href="module-twgl_m4.html#.setTranslation">setTranslation</a></li><li data-type='method'><a href="module-twgl_m4.html#.transformDirection">transformDirection</a></li><li data-type='method'><a href="module-twgl_m4.html#.transformNormal">transformNormal</a></li><li data-type='method'><a href="module-twgl_m4.html#.transformPoint">transformPoint</a></li><li data-type='method'><a href="module-twgl_m4.html#.translate">translate</a></li><li data-type='method'><a href="module-twgl_m4.html#.translation">translation</a></li><li data-type='method'><a href="module-twgl_m4.html#.transpose">transpose</a></li></ul></li><li><a href="module-twgl_primitives.html">twgl/primitives</a><ul class='methods'><li data-type='method'><a href="module-twgl_primitives.html#.concatVertices">concatVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.create3DFBufferInfo">create3DFBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.create3DFBuffers">create3DFBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.create3DFVertices">create3DFVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createAugmentedTypedArray">createAugmentedTypedArray</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCresentBufferInfo">createCresentBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCresentBuffers">createCresentBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCresentVertices">createCresentVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCubeBufferInfo">createCubeBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCubeBuffers">createCubeBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCubeVertices">createCubeVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCylinderBufferInfo">createCylinderBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCylinderBuffers">createCylinderBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createCylinderVertices">createCylinderVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createDiscBufferInfo">createDiscBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createDiscBuffers">createDiscBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createDiscVertices">createDiscVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createPlaneBufferInfo">createPlaneBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createPlaneBuffers">createPlaneBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createPlaneVertices">createPlaneVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createSphereBufferInfo">createSphereBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createSphereBuffers">createSphereBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createSphereVertices">createSphereVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createTorusBufferInfo">createTorusBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createTorusBuffers">createTorusBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createTorusVertices">createTorusVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createTruncatedConeBufferInfo">createTruncatedConeBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createTruncatedConeBuffers">createTruncatedConeBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createTruncatedConeVertices">createTruncatedConeVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createXYQuadBufferInfo">createXYQuadBufferInfo</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createXYQuadBuffers">createXYQuadBuffers</a></li><li data-type='method'><a href="module-twgl_primitives.html#.createXYQuadVertices">createXYQuadVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.deindexVertices">deindexVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.duplicateVertices">duplicateVertices</a></li><li data-type='method'><a href="module-twgl_primitives.html#.flattenNormals">flattenNormals</a></li><li data-type='method'><a href="module-twgl_primitives.html#.makeRandomVertexColors">makeRandomVertexColors</a></li><li data-type='method'><a href="module-twgl_primitives.html#.reorientDirections">reorientDirections</a></li><li data-type='method'><a href="module-twgl_primitives.html#.reorientNormals">reorientNormals</a></li><li data-type='method'><a href="module-twgl_primitives.html#.reorientPositions">reorientPositions</a></li><li data-type='method'><a href="module-twgl_primitives.html#.reorientVertices">reorientVertices</a></li></ul></li><li><a href="module-twgl_programs.html">twgl/programs</a><ul class='methods'><li data-type='method'><a href="module-twgl_programs.html#.bindUniformBlock">bindUniformBlock</a></li><li data-type='method'><a href="module-twgl_programs.html#.createAttributeSetters">createAttributeSetters</a></li><li data-type='method'><a href="module-twgl_programs.html#.createProgram">createProgram</a></li><li data-type='method'><a href="module-twgl_programs.html#.createProgramFromScripts">createProgramFromScripts</a></li><li data-type='method'><a href="module-twgl_programs.html#.createProgramFromSources">createProgramFromSources</a></li><li data-type='method'><a href="module-twgl_programs.html#.createProgramInfo">createProgramInfo</a></li><li data-type='method'><a href="module-twgl_programs.html#.createProgramInfoFromProgram">createProgramInfoFromProgram</a></li><li data-type='method'><a href="module-twgl_programs.html#.createUniformBlockInfo">createUniformBlockInfo</a></li><li data-type='method'><a href="module-twgl_programs.html#.createUniformBlockInfoFromProgram">createUniformBlockInfoFromProgram</a></li><li data-type='method'><a href="module-twgl_programs.html#.createUniformBlockSpecFromProgram">createUniformBlockSpecFromProgram</a></li><li data-type='method'><a href="module-twgl_programs.html#.createUniformSetters">createUniformSetters</a></li><li data-type='method'><a href="module-twgl_programs.html#.setAttributes">setAttributes</a></li><li data-type='method'><a href="module-twgl_programs.html#.setBlockUniforms">setBlockUniforms</a></li><li data-type='method'><a href="module-twgl_programs.html#.setBuffersAndAttributes">setBuffersAndAttributes</a></li><li data-type='method'><a href="module-twgl_programs.html#.setUniformBlock">setUniformBlock</a></li><li data-type='method'><a href="module-twgl_programs.html#.setUniforms">setUniforms</a></li></ul></li><li><a href="module-twgl_textures.html">twgl/textures</a><ul class='methods'><li data-type='method'><a href="module-twgl_textures.html#.createTexture">createTexture</a></li><li data-type='method'><a href="module-twgl_textures.html#.createTextures">createTextures</a></li><li data-type='method'><a href="module-twgl_textures.html#.getNumComponentsForFormat">getNumComponentsForFormat</a></li><li data-type='method'><a href="module-twgl_textures.html#.loadCubemapFromUrls">loadCubemapFromUrls</a></li><li data-type='method'><a href="module-twgl_textures.html#.loadTextureFromUrl">loadTextureFromUrl</a></li><li data-type='method'><a href="module-twgl_textures.html#.resizeTexture">resizeTexture</a></li><li data-type='method'><a href="module-twgl_textures.html#.setDefaultTextureColor">setDefaultTextureColor</a></li><li data-type='method'><a href="module-twgl_textures.html#.setEmptyTexture">setEmptyTexture</a></li><li data-type='method'><a href="module-twgl_textures.html#.setTextureFilteringForSize">setTextureFilteringForSize</a></li><li data-type='method'><a href="module-twgl_textures.html#.setTextureFromArray">setTextureFromArray</a></li><li data-type='method'><a href="module-twgl_textures.html#.setTextureFromElement">setTextureFromElement</a></li><li data-type='method'><a href="module-twgl_textures.html#.setTextureParameters">setTextureParameters</a></li><li data-type='method'><a href="module-twgl_textures.html#.setTextureTo1PixelColor">setTextureTo1PixelColor</a></li></ul></li><li><a href="module-twgl_typedArray.html">twgl/typedArray</a><ul class='methods'><li data-type='method'><a href="module-twgl_typedArray.html#.getGLTypeForTypedArray">getGLTypeForTypedArray</a></li><li data-type='method'><a href="module-twgl_typedArray.html#.getTypedArrayTypeForGLType">getTypedArrayTypeForGLType</a></li></ul></li><li><a href="module-twgl_v3.html">twgl/v3</a><ul class='methods'><li data-type='method'><a href="module-twgl_v3.html#.add">add</a></li><li data-type='method'><a href="module-twgl_v3.html#.copy">copy</a></li><li data-type='method'><a href="module-twgl_v3.html#.create">create</a></li><li data-type='method'><a href="module-twgl_v3.html#.cross">cross</a></li><li data-type='method'><a href="module-twgl_v3.html#.divide">divide</a></li><li data-type='method'><a href="module-twgl_v3.html#.divScalar">divScalar</a></li><li data-type='method'><a href="module-twgl_v3.html#.dot">dot</a></li><li data-type='method'><a href="module-twgl_v3.html#.length">length</a></li><li data-type='method'><a href="module-twgl_v3.html#.lengthSq">lengthSq</a></li><li data-type='method'><a href="module-twgl_v3.html#.lerp">lerp</a></li><li data-type='method'><a href="module-twgl_v3.html#.mulScalar">mulScalar</a></li><li data-type='method'><a href="module-twgl_v3.html#.multiply">multiply</a></li><li data-type='method'><a href="module-twgl_v3.html#.negate">negate</a></li><li data-type='method'><a href="module-twgl_v3.html#.normalize">normalize</a></li><li data-type='method'><a href="module-twgl_v3.html#.subtract">subtract</a></li></ul></li></ul>
</nav>
<div id="main">
<h1 class="page-title">twgl/v3</h1>
<section>
<header>
</header>
<article>
<div class="container-overview">
<div class="description"><p>Vec3 math math functions.</p>
<p>Almost all functions take an optional <code>dst</code> argument. If it is not passed in the<br>functions will create a new Vec3. In other words you can do this</p>
<pre class="prettyprint source"><code>var v = v3.cross(v1, v2); // Creates a new Vec3 with the cross product of v1 x v2.</code></pre><p>or</p>
<pre class="prettyprint source"><code>var v3 = v3.create();
v3.cross(v1, v2, v); // Puts the cross product of v1 x v2 in v</code></pre><p>The first style is often easier but depending on where it's used it generates garbage where<br>as there is almost never allocation with the second style.</p>
<p>It is always save to pass any vector as the destination. So for example</p>
<pre class="prettyprint source"><code>v3.cross(v1, v2, v1); // Puts the cross product of v1 x v2 in v1</code></pre></div>
<dl class="details">
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id=".add"><span class="type-signature">(static) </span>add<span class="signature">(a, b, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Adds two vectors; assumes a and b have the same dimension.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>b</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h4 class="name" id=".copy"><span class="type-signature">(static) </span>copy<span class="signature">(v, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a>}</span></h4>
<div class="description">
<p>Copies a vector.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>v</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>The vector.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>A copy of v.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</dd>
</dl>
<h4 class="name" id=".create"><span class="type-signature">(static) </span>create<span class="signature">()</span><span class="type-signature"> &rarr; {Vec3}</span></h4>
<div class="description">
<p>Creates a vec3; may be called with x, y, z to set initial values.</p>
</div>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>the created vector</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">Vec3</span>
</dd>
</dl>
<h4 class="name" id=".cross"><span class="type-signature">(static) </span>cross<span class="signature">(a, b, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a>}</span></h4>
<div class="description">
<p>Computes the cross product of two vectors; assumes both vectors have<br>three entries.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>b</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>The vector a cross b.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</dd>
</dl>
<h4 class="name" id=".divide"><span class="type-signature">(static) </span>divide<span class="signature">(a, b, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a>}</span></h4>
<div class="description">
<p>Divides a vector by another vector (component-wise); assumes a and<br>b have the same length.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>b</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>The vector of quotients of entries of a and<br> b.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</dd>
</dl>
<h4 class="name" id=".divScalar"><span class="type-signature">(static) </span>divScalar<span class="signature">(v, k, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a>}</span></h4>
<div class="description">
<p>Divides a vector by a scalar.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>v</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>The vector.</p></td>
</tr>
<tr>
<td class="name"><code>k</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>The scalar.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>dst.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</dd>
</dl>
<h4 class="name" id=".dot"><span class="type-signature">(static) </span>dot<span class="signature">(a, b)</span><span class="type-signature"> &rarr; {number}</span></h4>
<div class="description">
<p>Computes the dot product of two vectors; assumes both vectors have<br>three entries.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>b</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>dot product</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
<h4 class="name" id=".length"><span class="type-signature">(static) </span>length<span class="signature">(v)</span><span class="type-signature"> &rarr; {number}</span></h4>
<div class="description">
<p>Computes the length of vector</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>v</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="description last"><p>vector.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>length of vector.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
<h4 class="name" id=".lengthSq"><span class="type-signature">(static) </span>lengthSq<span class="signature">(v)</span><span class="type-signature"> &rarr; {number}</span></h4>
<div class="description">
<p>Computes the square of the length of vector</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>v</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="description last"><p>vector.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>square of the length of vector.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
<h4 class="name" id=".lerp"><span class="type-signature">(static) </span>lerp<span class="signature">(a, b, t, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Performs linear interpolation on two vectors.<br>Given vectors a and b and interpolation coefficient t, returns<br>(1 - t) <em> a + t </em> b.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>b</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>t</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Interpolation coefficient.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h4 class="name" id=".mulScalar"><span class="type-signature">(static) </span>mulScalar<span class="signature">(v, k, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a>}</span></h4>
<div class="description">
<p>Mutiplies a vector by a scalar.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>v</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>The vector.</p></td>
</tr>
<tr>
<td class="name"><code>k</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>The scalar.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>dst.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</dd>
</dl>
<h4 class="name" id=".multiply"><span class="type-signature">(static) </span>multiply<span class="signature">(a, b, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a>}</span></h4>
<div class="description">
<p>Multiplies a vector by another vector (component-wise); assumes a and<br>b have the same length.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>b</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>The vector of products of entries of a and<br> b.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</dd>
</dl>
<h4 class="name" id=".negate"><span class="type-signature">(static) </span>negate<span class="signature">(v, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a>}</span></h4>
<div class="description">
<p>Negates a vector.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>v</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>The vector.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>-v.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</dd>
</dl>
<h4 class="name" id=".normalize"><span class="type-signature">(static) </span>normalize<span class="signature">(a, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a>}</span></h4>
<div class="description">
<p>Divides a vector by its Euclidean length and returns the quotient.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>The vector.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>The normalized vector.</p>
</div>
<dl class="param-type">
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</dd>
</dl>
<h4 class="name" id=".subtract"><span class="type-signature">(static) </span>subtract<span class="signature">(a, b, dst<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Subtracts two vectors.</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>b</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
</td>
<td class="description last"><p>Operand vector.</p></td>
</tr>
<tr>
<td class="name"><code>dst</code></td>
<td class="type">
<span class="param-type"><a href="module-twgl_v3.html#.Vec3">module:twgl/v3.Vec3</a></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last"><p>vector to hold result. If not new one is created..</p></td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
<h3 class="subsection-title">Type Definitions</h3>
<h4 class="name" id=".Vec3">Vec3</h4>
<div class="description">
<p>A JavaScript array with 3 values or a Float32Array with 3 values.<br>When created by the library will create the default type which is <code>Float32Array</code><br>but can be set by calling <code>module:twgl/v3.setDefaultType</code>.</p>
</div>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type">Array.&lt;number></span>
|
<span class="param-type">Float32Array</span>
</li>
</ul>
<dl class="details">
</dl>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> using the Minami theme.
</footer>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>