test rowGenerator
by Konstantin Cryman
HTML
<script src="https://threejs.org/build/three.min.js"></script>
JavaScript
let getGlobalConfig = function( options ){
let sectionWidth = options.rowWidth * options.rowNum;
let sectionZOffset = sectionWidth/2;
let sectionHeight = options.rowHeight * options.rowNum;
let sectionYOffset = -sectionWidth/2;
let chairsDifference = options.chairEnd - options.chairStart;
let sectionLng = {
min: options.chairSpace * options.chairStart,
max: options.chairSpace * options.chairEnd,
dif: options.chairSpace * options.chairEnd - options.chairSpace * options.chairStart
};
let rowsZMinMax = [];
let rowsYMinMax = [];
let rowsXMinMax = [];
let rowsChairsCount = [];
//computeZ
for( let i = 0; i < options.rowNum; i++ ){
rowsZMinMax[ i ] = {
min: sectionZOffset + ( i * options.rowWidth ),
max: sectionZOffset + ( i * options.rowWidth ) + options.rowWidth
};
}
//computeY
for( let i = 0; i < options.rowNum; i++ ){
rowsYMinMax[ i ] = {
min: sectionYOffset,
max: sectionYOffset + ( i * options.rowHeight ) + options.rowHeight
};
}
//computeX
for( let i = 0; i < options.rowNum; i++ ){
let rowAlpha = (i/options.rowNum);
rowsChairsCount[ i ] = options.chairStart + Math.ceil( chairsDifference * (i/(options.rowNum-1)) );
if( i === 0 ){
rowsXMinMax[ i ] = {
minA: -( ( sectionLng.min + ( sectionLng.dif * rowAlpha ) ) /2 ),
maxA: ( sectionLng.min + ( sectionLng.dif * rowAlpha ) ) /2,
minB: false,
maxB: false,
};
} else if ( i === options.rowNum-1 ){
...