📄 utils.js
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 11 |
📊 Variables & Constants | 7 |
⚡ Async/Await Patterns | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 src/utils.js
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
min |
any |
let/var | array[ 0 ] |
✗ |
max |
any |
let/var | array[ 0 ] |
✗ |
TYPED_ARRAYS |
{ Int8Array: Int8ArrayConstructor; Ui... |
let/var | { Int8Array: Int8Array, Uint8Array: Uint8Array, Uint8ClampedArray: Uint8Clamp... |
✗ |
_cache |
{} |
let/var | {} |
✗ |
m |
any |
let/var | projectionMatrix.elements |
✗ |
m |
any |
let/var | projectionMatrix.elements |
✗ |
isPerspectiveMatrix |
boolean |
let/var | m[ 11 ] === - 1 |
✗ |
Async/Await Patterns¶
Type | Function | Await Expressions | Promise Chains |
---|---|---|---|
promise-chain | probeAsync |
none | new Promise(...) |
Functions¶
arrayMin(array: any): any
¶
Parameters:
array
any
Returns: any
Code
arrayMax(array: any): any
¶
Parameters:
array
any
Returns: any
Code
arrayNeedsUint32(array: any): boolean
¶
Parameters:
array
any
Returns: boolean
Internal Comments:
Code
getTypedArray(type: any, buffer: any): any
¶
Parameters:
type
any
buffer
any
Returns: any
createElementNS(name: any): HTMLElement
¶
Parameters:
name
any
Returns: HTMLElement
Calls:
document.createElementNS
Code
createCanvasElement(): HTMLElement
¶
Returns: HTMLElement
Calls:
createElementNS
Code
warnOnce(message: any): void
¶
Parameters:
message
any
Returns: void
Calls:
console.warn
Code
probeAsync(gl: any, sync: any, interval: any): Promise<any>
¶
Parameters:
gl
any
sync
any
interval
any
Returns: Promise<any>
Calls:
gl.clientWaitSync
reject
setTimeout
resolve
Code
function probeAsync( gl, sync, interval ) {
return new Promise( function ( resolve, reject ) {
function probe() {
switch ( gl.clientWaitSync( sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0 ) ) {
case gl.WAIT_FAILED:
reject();
break;
case gl.TIMEOUT_EXPIRED:
setTimeout( probe, interval );
break;
default:
resolve();
}
}
setTimeout( probe, interval );
} );
}
probe(): void
¶
Returns: void
Calls:
gl.clientWaitSync
reject
setTimeout
resolve
Code
toNormalizedProjectionMatrix(projectionMatrix: any): void
¶
Parameters:
projectionMatrix
any
Returns: void
Internal Comments:
Code
function toNormalizedProjectionMatrix( projectionMatrix ) {
const m = projectionMatrix.elements;
// Convert [-1, 1] to [0, 1] projection matrix
m[ 2 ] = 0.5 * m[ 2 ] + 0.5 * m[ 3 ];
m[ 6 ] = 0.5 * m[ 6 ] + 0.5 * m[ 7 ];
m[ 10 ] = 0.5 * m[ 10 ] + 0.5 * m[ 11 ];
m[ 14 ] = 0.5 * m[ 14 ] + 0.5 * m[ 15 ];
}
toReversedProjectionMatrix(projectionMatrix: any): void
¶
Parameters:
projectionMatrix
any
Returns: void
Internal Comments:
Code
function toReversedProjectionMatrix( projectionMatrix ) {
const m = projectionMatrix.elements;
const isPerspectiveMatrix = m[ 11 ] === - 1;
// Reverse [0, 1] projection matrix
if ( isPerspectiveMatrix ) {
m[ 10 ] = - m[ 10 ] - 1;
m[ 14 ] = - m[ 14 ];
} else {
m[ 10 ] = - m[ 10 ];
m[ 14 ] = - m[ 14 ] + 1;
}
}