1- var registerSystem = require ( '../core/system' ) . registerSystem ;
21var constants = require ( '../constants/' ) ;
2+ var registerSystem = require ( '../core/system' ) . registerSystem ;
33
44var DEFAULT_CAMERA_ATTR = 'data-aframe-default-camera' ;
55var DEFAULT_USER_HEIGHT = 1.6 ;
@@ -29,11 +29,13 @@ module.exports.System = registerSystem('camera', {
2929 // Since entities wait for <a-assets> to load, any cameras attaching to the scene
3030 // will do so asynchronously.
3131 sceneEl . addEventListener ( 'loaded' , function checkForCamera ( ) {
32- var currentCamera = sceneEl . camera ;
33- if ( currentCamera ) {
34- sceneEl . emit ( 'camera-ready' , { cameraEl : currentCamera . el } ) ;
32+ // Camera already defined.
33+ if ( sceneEl . camera ) {
34+ sceneEl . emit ( 'camera-ready' , { cameraEl : sceneEl . camera . el } ) ;
3535 return ;
3636 }
37+
38+ // Set up default camera.
3739 defaultCameraEl = document . createElement ( 'a-entity' ) ;
3840 defaultCameraEl . setAttribute ( 'position' , '0 0 0' ) ;
3941 defaultCameraEl . setAttribute ( DEFAULT_CAMERA_ATTR , '' ) ;
@@ -69,16 +71,21 @@ module.exports.System = registerSystem('camera', {
6971 */
7072 setActiveCamera : function ( newCameraEl ) {
7173 var cameraEl ;
72- var cameraEls = this . sceneEl . querySelectorAll ( '[camera]' ) ;
74+ var cameraEls ;
7375 var i ;
74- var sceneEl = this . sceneEl ;
75- var newCamera = newCameraEl . getObject3D ( 'camera' ) ;
76+ var newCamera ;
7677 var previousCamera = this . activeCameraEl ;
78+ var sceneEl = this . sceneEl ;
79+
80+ // Same camera.
81+ newCamera = newCameraEl . getObject3D ( 'camera' ) ;
7782 if ( ! newCamera || newCameraEl === this . activeCameraEl ) { return ; }
83+
7884 // Grab the default camera.
7985 var defaultCameraWrapper = sceneEl . querySelector ( '[' + DEFAULT_CAMERA_ATTR + ']' ) ;
8086 var defaultCameraEl = defaultCameraWrapper &&
8187 defaultCameraWrapper . querySelector ( '[camera]' ) ;
88+
8289 // Remove default camera if new camera is not the default camera.
8390 if ( newCameraEl !== defaultCameraEl ) { removeDefaultCamera ( sceneEl ) ; }
8491
@@ -91,7 +98,9 @@ module.exports.System = registerSystem('camera', {
9198 if ( previousCamera ) {
9299 previousCamera . setAttribute ( 'camera' , 'active' , false ) ;
93100 }
101+
94102 // Disable other cameras in the scene
103+ cameraEls = sceneEl . querySelectorAll ( '[camera]' ) ;
95104 for ( i = 0 ; i < cameraEls . length ; i ++ ) {
96105 cameraEl = cameraEls [ i ] ;
97106 if ( newCameraEl === cameraEl ) { continue ; }
0 commit comments