From 4d33d22e910ca7de4ef216881e8bc2af30d57453 Mon Sep 17 00:00:00 2001 From: Rob L Date: Tue, 12 Jul 2016 15:52:58 -0400 Subject: [PATCH] Menu enhancements and added find feature --- js/GUI.Utils.js | 52 ++++++++++++++++++-- js/mapviewgl.js | 37 +++++++++++++++ webviewgl.htm | 124 ++++++++++++++++++++++++++++++++++++++---------- 3 files changed, 184 insertions(+), 29 deletions(-) diff --git a/js/GUI.Utils.js b/js/GUI.Utils.js index c18c86d..deb0b78 100644 --- a/js/GUI.Utils.js +++ b/js/GUI.Utils.js @@ -1,14 +1,58 @@ +$(document).ready(function() { + // Controls menu hide/show + $('#hotdog').click(function(){ + $('#controls').toggleClass("active"); + }); + + // Reset view + $('.reset-container').click(function(){ reset_view(); }); + $('#submitfindbyname').click( function() { + var selected = $('#findbyselect option:selected').text(); + zoomfocus(selected); + }); + +}); + +function populateUserFields() { + //Populate find by select dropdown + var types = []; + var checkboxes = document.getElementsByName("objtype"); + for (var type in checkboxes) { + if(checkboxes[type].checked) { + types[type] = checkboxes[type].value; + } + + } + var option = ''; + for (var type in types){ + for ( var key in listobjects(types[type]) ){ + option += ''; + } + } + + $('#findbyselect').html(option); +} function openTab(evt,tabName) { var i, x, tablinks; - x = document.getElementsByClassName("tools"); + x = document.getElementsByClassName("wvg-tools"); for (i = 0; i < x.length; i++) { x[i].style.display = "none"; } - tablinks = document.getElementsByClassName("tablink"); + tablinks = document.getElementsByClassName("wvg-tablink"); for (i = 0; i < x.length; i++) { - tablinks[i].className = tablinks[i].className.replace(" tab-active", ""); + tablinks[i].className = tablinks[i].className.replace(" wvg-tab-active", ""); } document.getElementById(tabName).style.display = "block"; - evt.currentTarget.className += " tab-active"; + evt.currentTarget.className += " wvg-tab-active"; } + +function escapeHTML(text) + { + var chr = { '"': '"', '&': '&', '<': '[', '>': ']' }; + function abc(a) + { + return chr[a]; + } + return text.replace(/[\"&<>]/g, abc); + } diff --git a/js/mapviewgl.js b/js/mapviewgl.js index 1044507..697b46f 100644 --- a/js/mapviewgl.js +++ b/js/mapviewgl.js @@ -176,4 +176,41 @@ function render () { } +function listobjects(type) { + var objects = {}; + + for (var key in jsonEmpire) { + area=jsonEmpire[key]; + for (var key2 in area[type]) { + object = area[type][key2]; + objectname = object.name; + objects[object.name] = object; + + } + } + return objects; +} +function zoomfocus(name) { + + var types = ['planets','stations']; + for (var type in types){ + var objects = listobjects(types[type]); + for ( var key in objects ) { + if (escapeHTML(key) == name) { + var object = objects[key]; + controls.target.x = object.x; + controls.target.y = object.y; + controls.target.z = object.z; + var focus = new THREE.Vector3( object.x, object.y, object.z ); + var vantage = new THREE.Vector3( 5, 60 , 150 ); + focus.add(vantage); + camera.position.set(focus.x,focus.y,focus.z); + + } + + } + + } + +} diff --git a/webviewgl.htm b/webviewgl.htm index 7260724..6ba7257 100644 --- a/webviewgl.htm +++ b/webviewgl.htm @@ -1,43 +1,117 @@ + - - + +
- -
-