// // SunLightExample.js // examples // Sam Gateau // Copyright 2015 High Fidelity, Inc. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // Script.include("cookies.js"); var panel = new Panel(10, 100); function CounterWidget(parentPanel, name, feedGetter, drawGetter, capSetter, capGetter) { this.subPanel = panel.newSubPanel(name); this.subPanel.newSlider("Num Feed", 0, 1, function(value) { }, feedGetter, function(value) { return (value); }); this.subPanel.newSlider("Num Drawn", 0, 1, function(value) { }, drawGetter, function(value) { return (value); }); this.subPanel.newSlider("Max Drawn", -1, 1, capSetter, capGetter, function(value) { return (value); }); this.update = function () { var numFeed = this.subPanel.get("Num Feed"); this.subPanel.set("Num Feed", numFeed); this.subPanel.set("Num Drawn", this.subPanel.get("Num Drawn")); var numMax = Math.max(numFeed, 1); this.subPanel.getWidget("Num Feed").setMaxValue(numMax); this.subPanel.getWidget("Num Drawn").setMaxValue(numMax); this.subPanel.getWidget("Max Drawn").setMaxValue(numMax); }; }; var opaquesCounter = new CounterWidget(panel, "Opaques", function () { return Scene.getEngineNumFeedOpaqueItems(); }, function () { return Scene.getEngineNumDrawnOpaqueItems(); }, function(value) { Scene.setEngineMaxDrawnOpaqueItems(value); }, function () { return Scene.getEngineMaxDrawnOpaqueItems(); } ); var transparentsCounter = new CounterWidget(panel, "Transparents", function () { return Scene.getEngineNumFeedTransparentItems(); }, function () { return Scene.getEngineNumDrawnTransparentItems(); }, function(value) { Scene.setEngineMaxDrawnTransparentItems(value); }, function () { return Scene.getEngineMaxDrawnTransparentItems(); } ); var overlaysCounter = new CounterWidget(panel, "Overlays", function () { return Scene.getEngineNumFeedOverlay3DItems(); }, function () { return Scene.getEngineNumDrawnOverlay3DItems(); }, function(value) { Scene.setEngineMaxDrawnOverlay3DItems(value); }, function () { return Scene.getEngineMaxDrawnOverlay3DItems(); } ); panel.newCheckbox("Display status", function(value) { Scene.setEngineDisplayItemStatus(value); }, function() { return Scene.doEngineDisplayItemStatus(); }, function(value) { return (value); } ); var tickTackPeriod = 500; function updateCounters() { opaquesCounter.update(); transparentsCounter.update(); overlaysCounter.update(); } Script.setInterval(updateCounters, tickTackPeriod); Controller.mouseMoveEvent.connect(function panelMouseMoveEvent(event) { return panel.mouseMoveEvent(event); }); Controller.mousePressEvent.connect( function panelMousePressEvent(event) { return panel.mousePressEvent(event); }); Controller.mouseReleaseEvent.connect(function(event) { return panel.mouseReleaseEvent(event); }); function scriptEnding() { panel.destroy(); } Script.scriptEnding.connect(scriptEnding);