мж.задатьНейтральныйМатериал = function() { var мат = муром.материалы.создатьМатериал("N"); var изо = муром.ресурсы.ресурс("tex.stub"); мат.задатьТекстуру("image", изо); var вер = муром.ресурсы.ресурс("ver").содержимое; var фра = муром.ресурсы.ресурс("fra").содержимое; мат.задатьШейдеры(вер, фра); мж.сцена.задатьМатериал(мат); }; мж.разобратьРаскладку = function() { eval(муром.ресурсы.ресурс("Layout").содержимое); var содержимое = муром.ресурсы.ресурс("lay").содержимое; мж.раскладка = new Раскладка(); мж.раскладка.разобрать(содержимое); }; мж.фишки = []; мж.создатьФишки = function() { eval(муром.ресурсы.ресурс("Tile").содержимое); for (var номер in мж.раскладка.позиции) { var ф = new Фишка(); ф.позиция = мж.раскладка.позиции[номер]; мж.фишки.push(ф); } }; мж.размерФишки = { "ширина": 2.0, "высота": 3.0, "глубина": 1.0, }; мж.создатьУзлыФишек = function() { const шагФишки = 2.0; const коэффициенты = { "x": мж.размерФишки.ширина / шагФишки, "y": -мж.размерФишки.высота / шагФишки, "z": мж.размерФишки.глубина, }; var мод = муром.ресурсы.ресурс("mod"); for (var номер in мж.фишки) { var имя = номер.toString(); var узел = муром.узлы.создатьУзел(имя, мод); мж.сцена.добавитьДитя(узел); var ф = мж.фишки[номер]; var п = ф.позиция; узел.позиция = [ п[2] * коэффициенты.x, п[1] * коэффициенты.y, п[0] * коэффициенты.z, ]; ф.узел = узел; } }; мж.центрироватьСцену = function() { var границы = { "лево": 1000, "право": -1000, "верх": -1000, "низ": 1000, }; for (var номер in мж.фишки) { const ф = мж.фишки[номер]; const x = ф.узел.позиция[0]; const y = ф.узел.позиция[1]; if (x < границы.лево) { границы.лево = x; } if (x > границы.право) { границы.право = x; } if (y < границы.низ) { границы.низ = y; } if (y > границы.верх) { границы.верх = y; } } const ширина = границы.право - границы.лево + мж.размерФишки.ширина; const высота = границы.верх - границы.низ + мж.размерФишки.высота; мж.сцена.позиция = [-ширина / 2.0, 0, высота / 2.0]; };