мж.задатьНейтральныйМатериал = 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];
};
