1
0
mirror of https://github.com/psychopy/psychojs.git synced 2025-05-10 10:40:54 +00:00
psychojs/docs/module-util.html
2019-04-19 09:50:14 +02:00

3908 lines
44 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Module: util</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="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Module: util</h1>
<section>
<header>
</header>
<article>
<div class="container-overview">
</div>
<h3 class="subsection-title">Classes</h3>
<dl>
<dt><a href="module-util.Clock.html">Clock</a></dt>
<dd></dd>
<dt><a href="module-util.Color.html">Color</a></dt>
<dd></dd>
<dt><a href="module-util.CountdownTimer.html">CountdownTimer</a></dt>
<dd></dd>
<dt><a href="module-util.EventEmitter.html">EventEmitter</a></dt>
<dd></dd>
<dt><a href="module-util.Logger.html">Logger</a></dt>
<dd></dd>
<dt><a href="module-util.MixinBuilder.html">MixinBuilder</a></dt>
<dd></dd>
<dt><a href="module-util.MonotonicClock.html">MonotonicClock</a></dt>
<dd></dd>
<dt><a href="module-util.PsychObject.html">PsychObject</a></dt>
<dd></dd>
<dt><a href="module-util.Scheduler.html">Scheduler</a></dt>
<dd></dd>
</dl>
<h3 class="subsection-title">Mixins</h3>
<dl>
<dt><a href="module-util.ColorMixin.html">ColorMixin</a></dt>
<dd></dd>
</dl>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id=".addInfoFromUrl"><span class="type-signature">(static) </span>addInfoFromUrl<span class="signature">(info)</span><span class="type-signature"></span></h4>
<div class="description">
Add info extracted from the URL to the given dictionary.
</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>info</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">the dictionary</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line549">line 549</a>
</li></ul></dd>
</dl>
<h4 class="name" id=".detectBrowser"><span class="type-signature">(static) </span>detectBrowser<span class="signature">()</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
Detect the user's browser.
<p> Note: since user agent is easily spoofed, we use a more sophisticated approach, as described here:
https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser </p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line120">line 120</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the detected browser, one of 'Opera', 'Firefox', 'Safari',
'IE', 'Edge', 'Chrome', 'Blink", 'unknown'
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">string</span>
</dd>
</dl>
<h4 class="name" id=".flattenArray"><span class="type-signature">(static) </span>flattenArray<span class="signature">(array)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
<div class="description">
Recursively flatten an array of arrays.
</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>array</code></td>
<td class="type">
<span class="param-type">Array.&lt;Object></span>
</td>
<td class="description last">the input array of arrays</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line621">line 621</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the flatten array
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;Object></span>
</dd>
</dl>
<h4 class="name" id=".getErrorStack"><span class="type-signature">(static) </span>getErrorStack<span class="signature">()</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
Get the error stack of the calling, exception-throwing function.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line78">line 78</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the error stack as a string
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">string</span>
</dd>
</dl>
<h4 class="name" id=".getPositionFromObject"><span class="type-signature">(static) </span>getPositionFromObject<span class="signature">(object, units)</span><span class="type-signature"> &rarr; {Array.&lt;number>}</span></h4>
<div class="description">
Get the position of the object in pixel units
</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>object</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">the input object</td>
</tr>
<tr>
<td class="name"><code>units</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the units</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line254">line 254</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the position of the object in pixel units
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;number></span>
</dd>
</dl>
<h4 class="name" id=".getUrlParameters"><span class="type-signature">(static) </span>getUrlParameters<span class="signature">()</span><span class="type-signature"> &rarr; {URLSearchParams}</span></h4>
<div class="description">
Get the URL parameters.
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line522">line 522</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the iterable URLSearchParams
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">URLSearchParams</span>
</dd>
</dl>
<h5>Example</h5>
<pre class="prettyprint"><code>const urlParameters = util.getUrlParameters();
for (const [key, value] of urlParameters)
console.log(key + ' = ' + value);</code></pre>
<h4 class="name" id=".isEmpty"><span class="type-signature">(static) </span>isEmpty<span class="signature">(x)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
<div class="description">
Test if x is an 'empty' value.
</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>x</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">the value to test</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line100">line 100</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
true if x is one of the following: undefined, [], [undefined]
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">boolean</span>
</dd>
</dl>
<h4 class="name" id=".isInt"><span class="type-signature">(static) </span>isInt<span class="signature">(obj)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
<div class="description">
Test whether an object is either an integer or the string representation of an integer.
<p>This is adapted from: https://stackoverflow.com/a/14794066</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>obj</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">the input object</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line503">line 503</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
whether or not the object is an integer or the string representation of an integer
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">boolean</span>
</dd>
</dl>
<h4 class="name" id=".IsPointInsidePolygon"><span class="type-signature">(static) </span>IsPointInsidePolygon<span class="signature">(point, vertices)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
<div class="description">
Check whether a point lies within a polygon
<p>We are using the algorithm described here: https://wrf.ecse.rpi.edu//Research/Short_Notes/pnpoly.html</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>point</code></td>
<td class="type">
<span class="param-type">Array.&lt;number></span>
</td>
<td class="description last">the point</td>
</tr>
<tr>
<td class="name"><code>vertices</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">the vertices defining the polygon</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line204">line 204</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
whether or not the point lies within the polygon
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">boolean</span>
</dd>
</dl>
<h4 class="name" id=".makeUuid"><span class="type-signature">(static) </span>makeUuid<span class="signature">()</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
Get a Universally Unique Identifier (RFC4122 version 4)
<p> See details here: https://www.ietf.org/rfc/rfc4122.txt</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line60">line 60</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the uuid
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">string</span>
</dd>
</dl>
<h4 class="name" id=".promiseToTupple"><span class="type-signature">(static) </span>promiseToTupple<span class="signature">(promise)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
<div class="description">
Convert the resulting value of a promise into a tupple.
</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>promise</code></td>
<td class="type">
<span class="param-type">Promise</span>
</td>
<td class="description last">the promise</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line43">line 43</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the resulting value in the format [error, return data]
where error is null if there was no error
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;Object></span>
</dd>
</dl>
<h4 class="name" id=".selectFromArray"><span class="type-signature">(static) </span>selectFromArray<span class="signature">(array, selection)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
<div class="description">
Select values from an array.
<p> 'selection' can be a single integer, an array of indices, or a string to be parsed, e.g.:
<ul>
<li>5</li>
<li>[1,2,3,10]</li>
<li>'1,5,10'</li>
<li>'1:2:5'</li>
<li>'5:'</li>
<li>'-5:-2, 9, 11:5:22'</li>
</ul></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>array</code></td>
<td class="type">
<span class="param-type">Array.&lt;Object></span>
</td>
<td class="description last">the input array</td>
</tr>
<tr>
<td class="name"><code>selection</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">Array.&lt;number></span>
|
<span class="param-type">string</span>
</td>
<td class="description last">the selection</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line571">line 571</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the array of selected items
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;Object></span>
</dd>
</dl>
<h4 class="name" id=".shuffle"><span class="type-signature">(static) </span>shuffle<span class="signature">(array)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
<div class="description">
Shuffle an array in place using the Fisher-Yastes's modern algorithm
<p>See details here: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm</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>array</code></td>
<td class="type">
<span class="param-type">Array.&lt;Object></span>
</td>
<td class="description last">the input 1-D array</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line233">line 233</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the shuffled array
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;Object></span>
</dd>
</dl>
<h4 class="name" id=".sliceArray"><span class="type-signature">(static) </span>sliceArray<span class="signature">(array, from<span class="signature-attributes">opt</span>, to<span class="signature-attributes">opt</span>, step<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Array.&lt;Object>}</span></h4>
<div class="description">
Slice an array.
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>array</code></td>
<td class="type">
<span class="param-type">Array.&lt;Object></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">the input array</td>
</tr>
<tr>
<td class="name"><code>from</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
NaN
</td>
<td class="description last">the start of the slice</td>
</tr>
<tr>
<td class="name"><code>to</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
NaN
</td>
<td class="description last">the end of the slice</td>
</tr>
<tr>
<td class="name"><code>step</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
NaN
</td>
<td class="description last">the step of the slice</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line635">line 635</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the array slice
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;Object></span>
</dd>
</dl>
<h4 class="name" id=".to_height"><span class="type-signature">(static) </span>to_height<span class="signature">(pos, posUnit, win)</span><span class="type-signature"> &rarr; {Array.&lt;number>}</span></h4>
<div class="description">
Convert the position to height units.
</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>pos</code></td>
<td class="type">
<span class="param-type">Array.&lt;number></span>
</td>
<td class="description last">the input position</td>
</tr>
<tr>
<td class="name"><code>posUnit</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the position units</td>
</tr>
<tr>
<td class="name"><code>win</code></td>
<td class="type">
<span class="param-type">Window</span>
</td>
<td class="description last">the associated Window</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line346">line 346</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the position in height units
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;number></span>
</dd>
</dl>
<h4 class="name" id=".to_norm"><span class="type-signature">(static) </span>to_norm<span class="signature">(pos, posUnit, win)</span><span class="type-signature"> &rarr; {Array.&lt;number>}</span></h4>
<div class="description">
Convert the position to norm units.
</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>pos</code></td>
<td class="type">
<span class="param-type">Array.&lt;number></span>
</td>
<td class="description last">the input position</td>
</tr>
<tr>
<td class="name"><code>posUnit</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the position units</td>
</tr>
<tr>
<td class="name"><code>win</code></td>
<td class="type">
<span class="param-type">Window</span>
</td>
<td class="description last">the associated Window</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line318">line 318</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the position in norm units
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;number></span>
</dd>
</dl>
<h4 class="name" id=".to_pixiPoint"><span class="type-signature">(static) </span>to_pixiPoint<span class="signature">(pos, posUnit, win)</span><span class="type-signature"> &rarr; {Array.&lt;number>}</span></h4>
<div class="description">
Convert a position to a PIXI Point.
</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>pos</code></td>
<td class="type">
<span class="param-type">Array.&lt;number></span>
</td>
<td class="description last">the input position</td>
</tr>
<tr>
<td class="name"><code>posUnit</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the position units</td>
</tr>
<tr>
<td class="name"><code>win</code></td>
<td class="type">
<span class="param-type">Window</span>
</td>
<td class="description last">the associated Window</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line437">line 437</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the position as a PIXI Point
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;number></span>
</dd>
</dl>
<h4 class="name" id=".to_px"><span class="type-signature">(static) </span>to_px<span class="signature">(pos, posUnit, win)</span><span class="type-signature"> &rarr; {Array.&lt;number>}</span></h4>
<div class="description">
Convert the position to pixel units.
</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>pos</code></td>
<td class="type">
<span class="param-type">Array.&lt;number></span>
</td>
<td class="description last">the input position</td>
</tr>
<tr>
<td class="name"><code>posUnit</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the position units</td>
</tr>
<tr>
<td class="name"><code>win</code></td>
<td class="type">
<span class="param-type">Window</span>
</td>
<td class="description last">the associated Window</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line290">line 290</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the position in pixel units
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;number></span>
</dd>
</dl>
<h4 class="name" id=".to_unit"><span class="type-signature">(static) </span>to_unit<span class="signature">(pos, posUnit, win, targetUnit)</span><span class="type-signature"> &rarr; {Array.&lt;number>}</span></h4>
<div class="description">
Convert the position to given units.
</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>pos</code></td>
<td class="type">
<span class="param-type">Array.&lt;number></span>
</td>
<td class="description last">the input position</td>
</tr>
<tr>
<td class="name"><code>posUnit</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the position units</td>
</tr>
<tr>
<td class="name"><code>win</code></td>
<td class="type">
<span class="param-type">Window</span>
</td>
<td class="description last">the associated Window</td>
</tr>
<tr>
<td class="name"><code>targetUnit</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the target units</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line406">line 406</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the position in target units
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;number></span>
</dd>
</dl>
<h4 class="name" id=".to_win"><span class="type-signature">(static) </span>to_win<span class="signature">(pos, posUnit, win)</span><span class="type-signature"> &rarr; {Array.&lt;number>}</span></h4>
<div class="description">
Convert the position to window units.
</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>pos</code></td>
<td class="type">
<span class="param-type">Array.&lt;number></span>
</td>
<td class="description last">the input position</td>
</tr>
<tr>
<td class="name"><code>posUnit</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="description last">the position units</td>
</tr>
<tr>
<td class="name"><code>win</code></td>
<td class="type">
<span class="param-type">Window</span>
</td>
<td class="description last">the associated Window</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line376">line 376</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the position in window units
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.&lt;number></span>
</dd>
</dl>
<h4 class="name" id=".toNumerical"><span class="type-signature">(static) </span>toNumerical<span class="signature">(obj)</span><span class="type-signature"> &rarr; {number|Array.&lt;number>}</span></h4>
<div class="description">
Convert obj to its numerical form.
<ul>
<li>number -> number, e.g. 2 -> 2</li>
<li>[number] -> [number], e.g. [1,2,3] -> [1,2,3]</li>
<li>numeral string -> number, e.g. "8" -> 8</li>
<li>[number | numeral string] -> [number], e.g. [1, 2, "3"] -> [1,2,3]</li>
</ul>
</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>obj</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">the input object</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line166">line 166</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
the numerical form of the input object
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
|
<span class="param-type">Array.&lt;number></span>
</dd>
</dl>
<h4 class="name" id=".toString"><span class="type-signature">(static) </span>toString<span class="signature">(object)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
Convert an object to its string representation, taking care of symbols.
<p>Note: if the object is not already a string, we JSON stringify it and detect circularity.</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>object</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">the input object</td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="util_Util.js.html">util/Util.js</a>, <a href="util_Util.js.html#line455">line 455</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
a string representation of the object or 'Object (circular)'
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">string</span>
</dd>
</dl>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-core.html">core</a></li><li><a href="module-data.html">data</a></li><li><a href="module-sound.html">sound</a></li><li><a href="module-util.html">util</a></li><li><a href="module-visual.html">visual</a></li></ul><h3>Classes</h3><ul><li><a href="module-core.BuilderKeyResponse.html">BuilderKeyResponse</a></li><li><a href="module-core.EventManager.html">EventManager</a></li><li><a href="module-core.GUI.html">GUI</a></li><li><a href="module-core.MinimalStim.html">MinimalStim</a></li><li><a href="module-core.Mouse.html">Mouse</a></li><li><a href="module-core.PsychoJS.html">PsychoJS</a></li><li><a href="module-core.ServerManager.html">ServerManager</a></li><li><a href="module-core.Window.html">Window</a></li><li><a href="module-data.ExperimentHandler.html">ExperimentHandler</a></li><li><a href="module-data.TrialHandler.html">TrialHandler</a></li><li><a href="module-sound.Sound.html">Sound</a></li><li><a href="module-sound.TonePlayer.html">TonePlayer</a></li><li><a href="module-sound.TrackPlayer.html">TrackPlayer</a></li><li><a href="module-util.Clock.html">Clock</a></li><li><a href="module-util.Color.html">Color</a></li><li><a href="module-util.CountdownTimer.html">CountdownTimer</a></li><li><a href="module-util.EventEmitter.html">EventEmitter</a></li><li><a href="module-util.Logger.html">Logger</a></li><li><a href="module-util.MixinBuilder.html">MixinBuilder</a></li><li><a href="module-util.MonotonicClock.html">MonotonicClock</a></li><li><a href="module-util.PsychObject.html">PsychObject</a></li><li><a href="module-util.Scheduler.html">Scheduler</a></li><li><a href="module-visual.ImageStim.html">ImageStim</a></li><li><a href="module-visual.MovieStim.html">MovieStim</a></li><li><a href="module-visual.Rect.html">Rect</a></li><li><a href="module-visual.ShapeStim.html">ShapeStim</a></li><li><a href="module-visual.Slider.html">Slider</a></li><li><a href="module-visual.TextStim.html">TextStim</a></li><li><a href="module-visual.VisualStim.html">VisualStim</a></li></ul><h3>Mixins</h3><ul><li><a href="module-core.WindowMixin.html">WindowMixin</a></li><li><a href="module-util.ColorMixin.html">ColorMixin</a></li></ul><h3>Interfaces</h3><ul><li><a href="module-sound.SoundPlayer.html">SoundPlayer</a></li></ul><h3>Global</h3><ul><li><a href="global.html#offerDataForDownload">offerDataForDownload</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Fri Apr 19 2019 09:44:48 GMT+0200 (CEST)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>