'use strict'; import { Globe } from '../../src/og/Globe.js'; import { GlobusTerrain } from '../../src/og/terrain/GlobusTerrain.js'; import { MapboxTerrain } from '../../src/og/terrain/MapboxTerrain.js'; import { XYZ } from '../../src/og/layer/XYZ.js'; import { CanvasTiles } from '../../src/og/layer/CanvasTiles.js'; import { Vector } from '../../src/og/layer/Vector.js'; import { Entity } from '../../src/og/entity/Entity.js'; import { DebugInfo } from '../../src/og/control/DebugInfo.js'; import { ToggleWireframe } from '../../src/og/control/ToggleWireframe.js'; import * as math from '../../src/og/math.js'; document.getElementById("ambient-r").addEventListener("input", function (e) { osm.ambient.x = this.value; document.querySelector(".value.ambient-r").innerHTML = this.value; }); document.getElementById("ambient-g").addEventListener("input", function (e) { osm.ambient.y = this.value; document.querySelector(".value.ambient-g").innerHTML = this.value; }); document.getElementById("ambient-b").addEventListener("input", function (e) { osm.ambient.z = this.value; document.querySelector(".value.ambient-b").innerHTML = this.value; }); document.getElementById("diffuse-r").addEventListener("input", function (e) { osm.diffuse.x = this.value; document.querySelector(".value.diffuse-r").innerHTML = this.value; }); document.getElementById("diffuse-g").addEventListener("input", function (e) { osm.diffuse.y = this.value; document.querySelector(".value.diffuse-g").innerHTML = this.value; }); document.getElementById("diffuse-b").addEventListener("input", function (e) { osm.diffuse.z = this.value; document.querySelector(".value.diffuse-b").innerHTML = this.value; }); document.getElementById("specular-r").addEventListener("input", function (e) { osm.specular.x = this.value; document.querySelector(".value.specular-r").innerHTML = this.value; }); document.getElementById("specular-g").addEventListener("input", function (e) { osm.specular.y = this.value; document.querySelector(".value.specular-g").innerHTML = this.value; }); document.getElementById("specular-b").addEventListener("input", function (e) { osm.specular.z = this.value; document.querySelector(".value.specular-b").innerHTML = this.value; }); document.getElementById("shininess").addEventListener("input", function (e) { osm.shininess = this.value; document.querySelector(".value.shininess").innerHTML = this.value; }); let cnv = document.createElement("canvas"); let ctx = cnv.getContext("2d"); cnv.width = 256; cnv.height = 256; const tg = new CanvasTiles("Tile grid", { visibility: true, isBaseLayer: false, drawTile: function (material, applyCanvas) { //Clear canvas ctx.clearRect(0, 0, cnv.width, cnv.height); //Draw border ctx.beginPath(); ctx.rect(0, 0, cnv.width, cnv.height); ctx.lineWidth = 2; ctx.strokeStyle = 'black'; ctx.stroke(); let size; //Draw text if (material.segment.tileZoom > 14) { size = "26"; } else { size = "32"; } ctx.fillStyle = 'black'; ctx.font = 'normal ' + size + 'px Verdana'; ctx.textAlign = 'center'; ctx.fillText(material.segment.tileX + "," + material.segment.tileY + "," + material.segment.tileZoom, cnv.width / 2, cnv.height / 2); //Draw canvas tile applyCanvas(cnv); } }); let osm = new XYZ("OSM", { 'specular': [0.0003, 0.00012, 0.00001], 'shininess': 20, 'diffuse': [0.89, 0.9, 0.83], 'isBaseLayer': true, 'url': "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", 'visibility': true, 'attribution': 'Data @ OpenStreetMap contributors, ODbL' }); window.globe = new Globe({ 'name': "Earth", 'target': "earth", 'terrain': new GlobusTerrain(),//new MapboxTerrain(), 'layers': [osm] }); globe.planet.addControl(new DebugInfo()); globe.planet.addControl(new ToggleWireframe()); //let townLabels = new Vector("town labels", { // 'nodeCapacity': 5000000, // 'visibility': true //}); //function randomCoordinateJitter(degree, margin) { // return degree + margin * (Math.random() - 0.5) / 0.5; //} //var nCats = 15, // labels = []; //for (var i = 0; i <= nCats; i++) { // labels.push(new Entity({ // 'lonlat': [randomCoordinateJitter(-77.009003, .5), randomCoordinateJitter(38.889931, .5)], // 'label': { // 'text': 'CUTE #' + i, // 'size': 26, // 'outline': 0, // 'face': "Lucida Console", // 'weight': "bold", // 'color': "black", // }, // 'billboard': { // 'size': [36, 24], // 'src': 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRhFpaxDXCS5O9hx90F3ufJI2VnC_wW0lPnrr6BIb18P4V5JXxBCg' // } // })); //} //townLabels.setEntities(labels); //var _inc = 0; //var List = function (next, data) { // this.data = _inc++; // this.next = next || null; //}; //var head = new List(new List(new List(new List()))); //function nthToLast(head, k) { // if (head == null) { // return 0; // } // var i = nthToLast(head.next, k) + 1; // if (i == k) { // console.log(head.data); // } // return i; //} //nthToLast(head, 2);