MCPcopy Create free account
hub / github.com/awawa-dev/HyperHDR / createMatrixLayout

Function createMatrixLayout

www/js/light_source.js:486–555  ·  view source on GitHub ↗
(ledshoriz, ledsvert, cabling, start)

Source from the content-addressed store, hash-verified

484}
485
486function createMatrixLayout(ledshoriz, ledsvert, cabling, start)
487{
488 // Big thank you to RanzQ (Juha Rantanen) from Github for this script
489 // https://raw.githubusercontent.com/RanzQ/hyperion-audio-effects/master/matrix-config.js
490
491 var parallel = false
492 var leds = []
493 var hblock = 1.0 / ledshoriz
494 var vblock = 1.0 / ledsvert
495
496 if (cabling == "parallel")
497 {
498 parallel = true
499 }
500
501 /**
502 * Adds led to the hyperhdr config led array
503 * @param {Number} x Horizontal position in matrix
504 * @param {Number} y Vertical position in matrix
505 */
506 function addLed(x, y)
507 {
508 var hscanMin = x * hblock
509 var hscanMax = (x + 1) * hblock
510 var vscanMin = y * vblock
511 var vscanMax = (y + 1) * vblock
512
513 hscanMin = round(hscanMin);
514 hscanMax = round(hscanMax);
515 vscanMin = round(vscanMin);
516 vscanMax = round(vscanMax);
517
518 leds.push(
519 {
520 hmin: hscanMin,
521 hmax: hscanMax,
522 vmin: vscanMin,
523 vmax: vscanMax,
524 group: 0
525 })
526 }
527
528 var startYX = start.split('-')
529 var startX = startYX[1] === 'right' ? ledshoriz - 1 : 0
530 var startY = startYX[0] === 'bottom' ? ledsvert - 1 : 0
531 var endX = startX === 0 ? ledshoriz - 1 : 0
532 var endY = startY === 0 ? ledsvert - 1 : 0
533 var forward = startX < endX
534
535 var downward = startY < endY
536
537 var x, y
538
539 for (y = startY; downward && y <= endY || !downward && y >= endY; y += downward ? 1 : -1)
540 {
541 for (x = startX; forward && x <= endX || !forward && x >= endX; x += forward ? 1 : -1)
542 {
543 addLed(x, y)

Callers 1

createMatrixLedsFunction · 0.85

Calls 1

addLedFunction · 0.85

Tested by

no test coverage detected