WebWorldWind/examples/StarField.js
Zach Glueckert 61a4e88374 Utilize time property of layer to determine sun location on Atmosphere Layer (#282)
* Add automatic light location determination on layer time property
- See #100

* Remove lightLocation property

* Remove additional references to the lightLocation property

* Fix comment and falsy value test

* Fix comment
2017-11-08 11:59:40 -08:00

63 lines
1.9 KiB
JavaScript

/*
* Copyright (C) 2014 United States Government as represented by the Administrator of the
* National Aeronautics and Space Administration. All Rights Reserved.
*/
requirejs([
'./WorldWindShim',
'./LayerManager'
],
function (WorldWind,
LayerManager) {
'use strict';
WorldWind.Logger.setLoggingLevel(WorldWind.Logger.LEVEL_WARNING);
var wwd = new WorldWind.WorldWindow('canvasOne');
var BMNGLayer = new WorldWind.BMNGLayer();
var starFieldLayer = new WorldWind.StarFieldLayer();
var atmosphereLayer = new WorldWind.AtmosphereLayer();
wwd.addLayer(BMNGLayer);
//IMPORTANT: add the starFieldLayer before the atmosphereLayer
wwd.addLayer(starFieldLayer);
wwd.addLayer(atmosphereLayer);
var date = new Date();
starFieldLayer.time = date;
atmosphereLayer.time = date;
var layerManger = new LayerManager(wwd);
wwd.redraw();
wwd.redrawCallbacks.push(runSunSimulation);
var sunSimulationCheckBox = document.getElementById('stars-simulation');
var doRunSimulation = false;
var timeStamp = Date.now();
var factor = 1;
sunSimulationCheckBox.addEventListener('change', onSunCheckBoxClick, false);
function onSunCheckBoxClick() {
doRunSimulation = this.checked;
if (!doRunSimulation) {
var date = new Date();
starFieldLayer.time = date;
atmosphereLayer.time = date;
}
wwd.redraw();
}
function runSunSimulation(wwd, stage) {
if (stage === WorldWind.AFTER_REDRAW && doRunSimulation) {
timeStamp += (factor * 60 * 1000);
var date = new Date(timeStamp);
starFieldLayer.time = date;
atmosphereLayer.time = date;
wwd.redraw();
}
}
});