MCPcopy
hub / github.com/aframevr/aframe / setup

Function setup

src/core/scene/loadingScreen.js:13–70  ·  view source on GitHub ↗
(el, getCanvasSize)

Source from the content-addressed store, hash-verified

11var LOADER_TITLE_CLASS = 'a-loader-title';
12
13export function setup (el, getCanvasSize) {
14 sceneEl = el;
15 getSceneCanvasSize = getCanvasSize;
16 var loaderAttribute = sceneEl.hasAttribute(ATTR_NAME) ? styleParser.parse(sceneEl.getAttribute(ATTR_NAME)) : undefined;
17 var dotsColor = loaderAttribute && loaderAttribute.dotsColor || 'white';
18 var backgroundColor = loaderAttribute && loaderAttribute.backgroundColor || '#24CAFF';
19 var loaderEnabled = loaderAttribute === undefined || loaderAttribute.enabled === 'true' || loaderAttribute.enabled === undefined; // true default
20 var loaderScene;
21 var sphereGeometry;
22 var sphereMaterial;
23 var sphereMesh1;
24 var sphereMesh2;
25 var sphereMesh3;
26 var camera;
27 var timer;
28 var time;
29 var render;
30
31 if (!loaderEnabled) { return; }
32
33 // Setup Scene.
34 loaderScene = new THREE.Scene();
35 sphereGeometry = new THREE.SphereGeometry(0.20, 36, 18, 0, 2 * Math.PI, 0, Math.PI);
36 sphereMaterial = new THREE.MeshBasicMaterial({color: dotsColor});
37 sphereMesh1 = new THREE.Mesh(sphereGeometry, sphereMaterial);
38 sphereMesh2 = sphereMesh1.clone();
39 sphereMesh3 = sphereMesh1.clone();
40 camera = new THREE.PerspectiveCamera(80, window.innerWidth / window.innerHeight, 0.0005, 10000);
41 timer = new THREE.Timer();
42 time = 0;
43 render = function () {
44 sceneEl.renderer.render(loaderScene, camera);
45 timer.update();
46 time = timer.getElapsed() % 4;
47 sphereMesh1.visible = time >= 1;
48 sphereMesh2.visible = time >= 2;
49 sphereMesh3.visible = time >= 3;
50 };
51
52 loaderScene.background = new THREE.Color(backgroundColor);
53 loaderScene.add(camera);
54 sphereMesh1.position.set(-1, 0, -15);
55 sphereMesh2.position.set(0, 0, -15);
56 sphereMesh3.position.set(1, 0, -15);
57 camera.add(sphereMesh1);
58 camera.add(sphereMesh2);
59 camera.add(sphereMesh3);
60 setupTitle();
61
62 // Delay 200ms to avoid loader flashes.
63 setTimeout(function () {
64 if (sceneEl.hasLoaded) { return; }
65 resize(camera);
66 titleEl.style.display = 'block';
67 window.addEventListener('resize', function () { resize(camera); });
68 sceneEl.renderer.setAnimationLoop(render);
69 }, 200);
70}

Callers 15

__init.test.jsFile · 0.85
light.test.jsFile · 0.85
visible.test.jsFile · 0.85
text.test.jsFile · 0.85
position.test.jsFile · 0.85
link.test.jsFile · 0.85
rotation.test.jsFile · 0.85
material.test.jsFile · 0.85
raycaster.test.jsFile · 0.85

Calls 5

setupTitleFunction · 0.85
resizeFunction · 0.85
renderMethod · 0.80
addMethod · 0.80
getAttributeMethod · 0.45

Tested by

no test coverage detected