"use strict"; var id_but = "S1000D_root"; var old_id_but = "S1000D_root"; var m_app = null; var m_anim = null; var m_cfg = null; var m_cont = null; var m_ctl = null; var m_data = null; var m_main = null; var m_scs = null; var m_version = null; var m_nla = null; var m_obj = null; var m_log_nodes = null; var DEBUG = null; var id_button = id_but; var CANVAS_CONTAINER_ID = 'main_canvas_container'; var CANVAS_REPLACMENT = 'no_webgl_logo'; var ENGINE_PAUSE_TIMEOUT = 10000000; var _canvas_elem = null; var _engine_pause_func = null; var _is_init = null; b4w.register('3d_catalogue', function(exports, require) { m_app = require('app'); m_anim = require('animation'); m_cfg = require('config'); m_cont = require('container'); m_ctl = require('controls'); m_data = require('data'); m_main = require('main'); m_scs = require('scenes'); m_version = require('version'); m_nla = require('nla'); m_obj = require('objects'); m_log_nodes = require("logic_nodes"); DEBUG = (m_version.type() === 'DEBUG'); id_button = id_but; CANVAS_CONTAINER_ID = 'main_canvas_container'; CANVAS_REPLACMENT = 'no_webgl_logo'; ENGINE_PAUSE_TIMEOUT = 10000000; _canvas_elem = null; _engine_pause_func = null; _is_init = false; /*exports.init = function() { onresize(); console.log('3Dloaded'); }*/ }); window.addEventListener('load', function() { b4w.require('3d_catalogue', 'LOGO_NS').init; }, false); function registerAll3d() { console.log('register3D engine'); } function outline(e) { if (id_but != e) { old_id_but = id_but; id_but = e; } else id_but = e; } var json = null; function loadJson(e) { console.log('load3D'); var folder = ''; var full = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : ''); var stLink = jQuery(".container_text").attr('link'); var urnP = e; if ((urnP != '') && (urnP != null) && (urnP != undefined)) { console.log("e = " + e); $.ajax({ type: "POST", url: full + "/Resolver/resolver.php", data: { url: stLink, function: 'urlFolder' }, success: function(data) { folder = data; regex = /^[.]?[\/]?(.*)/g; mat = regex.exec(folder); console.log("folder = " + folder); $.ajax({ type: "POST", url: full + "/Resolver/resolver.php", data: { url: folder, function: 'getFyletype', urn: urnP, type: '.json' }, //$urn='', $url='', $type='' success: function(data) { console.log("url = " + full + '/' + folder + '/' + data); /*folder = data; regex = /^[.]?[\/]?(.*)/g; mat = regex.exec(folder); //console.log(mat); getUrlpartURN(urn, mat[1], obj, objText);*/ json = full + '/' + folder + '/' + data; registerAll3d(); onresize(); } }); } }); console.log(json); } //json = e; } function onresize() { if (!_is_init && window.innerWidth >= 200) { init_engine(); return; } if (!_is_init && window.innerWidth < 200) { window.addEventListener("resize", onresize); return; } if (_is_init && window.innerWidth >= 200) { var cont = m_cont.get_container(); cont.style.display = "block"; return; } if (_is_init && window.innerWidth < 200) { var cont = m_cont.get_container(); cont.style.display = "none"; if (!m_main.is_paused()) m_main.pause(); } } function init_engine() { _is_init = true m_app.init({ canvas_container_id: CANVAS_CONTAINER_ID, callback: init_cb, gl_debug: false, physics_enabled: false, quality: m_cfg.P_HIGH, report_init_failure: false, alpha: true, assets_dds_available: !DEBUG, assets_min50_available: !DEBUG, force_container_ratio: 800 / 450, autoresize: true }) /*var cont = m_cont.get_container(); cont.style.display = "block";*/ } function init_cb(canvas_elem, success) { if (!success) { return; } _canvas_elem = canvas_elem; load_stuff(); } function load_stuff() { m_data.load(json, loaded_callback, false, true) } function check_user_agent(str) { var user_agent = navigator.userAgent if (user_agent.indexOf(str) > -1) { return true; } else { return false; } } function loaded_callback(data_id) { var canv_repl = document.getElementById(CANVAS_REPLACMENT) var cont = m_cont.get_container() if (canv_repl) { canv_repl.style.display = "none"; } if (cont) { cont.style.display = "block"; } _canvas_elem.oncontextmenu = function(e) { e.preventDefault() e.stopPropagation() return false; } _canvas_elem.style.display = 'block'; m_app.enable_camera_controls(false, true, false, _canvas_elem, true) var cam = m_scs.get_active_camera() m_ctl.remove_sensor_manifold(cam, 'ROT_UP') m_ctl.remove_sensor_manifold(cam, 'ROT_DOWN') m_ctl.remove_sensor_manifold(cam, 'ROT_LEFT') m_ctl.remove_sensor_manifold(cam, 'ROT_RIGHT') enable_timeout() window.addEventListener('beforeunload', function() { _canvas_elem.style.display = 'none'; if (canv_repl) { canv_repl.style.display = "block"; } }) _canvas_elem.addEventListener('mousedown', resume_engine, false) _canvas_elem.addEventListener('mousewheel', resume_engine, false) _canvas_elem.addEventListener('mousemove', resume_engine, false) _canvas_elem.addEventListener('DOMMouseScroll', resume_engine, false) _canvas_elem.addEventListener('touchstart', resume_engine, false) _canvas_elem.addEventListener('touchmove', resume_engine, false) window.removeEventListener('resize', onresize) window.addEventListener('resize', onresize) } function resume_engine() { clearTimeout(_engine_pause_func) m_main.resume() enable_timeout() } function enable_timeout() { _engine_pause_func = setTimeout(pause_engine, ENGINE_PAUSE_TIMEOUT) } $(document).ready(function() { $('body').on('click','.b4webJsonMenuButton',function(event){ resume_engine(); var doThat = $(this).attr('val'); m_log_nodes.run_entrypoint("Scene", doThat); }); $('body').on('click','.S1000DIntRefParam',function (event) { event.preventDefault(); event.stopPropagation(); console.log($(this).attr('val')); resume_engine(); var doThat = $(this).attr('val'); if (id_but != doThat) { old_id_but = id_but; id_but = doThat; console.log(id_but); var detal = m_scs.get_object_by_name(id_but); var detal_tag = m_scs.get_object_by_name(id_but); if(old_id_but !== 'S1000D_root'){ var detal_old = m_scs.get_object_by_name(old_id_but); m_scs.clear_outline_anim(detal_old); } else{ m_scs.clear_outline_anim(detal); } m_scs.apply_outline_anim_def(detal); var meta_tag = m_obj.get_meta_tags(detal_tag); console.log("метатег "+detal_tag); var category = meta_tag.category; console.log(category); var all_obj = m_scs.get_all_objects("MESH"); for (var key in all_obj) { var current_det = all_obj[key]; var current_meta_tag = m_obj.get_meta_tags(current_det); var current_cat = current_meta_tag.category; if (current_cat == category) { m_scs.apply_outline_anim_def(current_det); } else { m_scs.clear_outline_anim(current_det); } } } else id_but = doThat; }); $('body').on('click','a[val='+id_but+'].S1000DIntRefParam',function(event){ console.log($('a[val='+id_but+'].S1000DIntRefParam')); var detal = m_scs.get_object_by_name(id_but); var detal_old = m_scs.get_object_by_name(old_id_but); m_scs.clear_outline_anim(detal_old); m_scs.apply_outline_anim_def(detal); var meta_tag = m_obj.get_meta_tags(detal); var category = meta_tag.category; var all_obj = m_scs.get_all_objects("MESH"); for (var key in all_obj) { var current_det = all_obj[key]; var current_meta_tag = m_obj.get_meta_tags(current_det); var current_cat = current_meta_tag.category; if (current_cat == category) { m_scs.apply_outline_anim_def(current_det); } else { m_scs.clear_outline_anim(current_det); } } } ); $('body').on('click','a[val='+id_but+'].S1000DIntRefParam',function(event){ console.log($('a[val='+id_but+'].S1000DIntRefParam')); var detal = m_scs.get_object_by_name(id_but); var detal_old = m_scs.get_object_by_name(old_id_but); m_scs.clear_outline_anim(detal_old); m_scs.apply_outline_anim_def(detal); var meta_tag = m_obj.get_meta_tags(detal); var category = meta_tag.category; var all_obj = m_scs.get_all_objects("MESH"); for (var key in all_obj) { var current_det = all_obj[key]; var current_meta_tag = m_obj.get_meta_tags(current_det); var current_cat = current_meta_tag.category; if (current_cat == category) { m_scs.apply_outline_anim_def(current_det); } else { m_scs.clear_outline_anim(current_det); } } } ); //Скрыть якоря $('body').on('click','.b4webJsonMenuButton',function(event){ resume_engine(); var doThat = $(this).attr('val'); if (doThat == "hide_anchors") { m_log_nodes.run_entrypoint("Scene", doThat); var all_anchors = m_scs.get_all_objects("EMPTY"); for (var key in all_anchors) { var current_anchor = all_anchors[key]; m_scs.hide_object(current_anchor); } } }); // Показать якоря $('body').on('click','.b4webJsonMenuButton',function(event){ resume_engine(); var doThat = $(this).attr('val'); if (doThat == "show_anchors") { m_log_nodes.run_entrypoint("Scene", doThat); var all_anchors = m_scs.get_all_objects("EMPTY"); for (var key in all_anchors) { var current_anchor = all_anchors[key]; m_scs.show_object(current_anchor); } } }); }); function pause_engine() { m_main.pause() }