diff --git a/src/game-lib-d3-api-z-object.js b/src/game-lib-d3-api-z-object.js index 16459dd..235e003 100644 --- a/src/game-lib-d3-api-z-object.js +++ b/src/game-lib-d3-api-z-object.js @@ -213,6 +213,10 @@ GameLib.D3.Object.prototype.updateInstance = function(property) { this.quaternion.instance.w = this.quaternion.w; } } + + if (GameLib.Utils.Defined(this.instance.updateProjectionMatrix)) { + this.instance.updateProjectionMatrix(); + } } if (property === 'position') { @@ -227,6 +231,10 @@ GameLib.D3.Object.prototype.updateInstance = function(property) { this.instance.position.y = this.position.y; this.instance.position.z = this.position.z; } + + if (GameLib.Utils.Defined(this.instance.updateProjectionMatrix)) { + this.instance.updateProjectionMatrix(); + } } if (property === 'scale') { diff --git a/src/game-lib-d3-mesh-0.js b/src/game-lib-d3-mesh-0.js index 4f4c88d..5fbabbf 100644 --- a/src/game-lib-d3-mesh-0.js +++ b/src/game-lib-d3-mesh-0.js @@ -39,7 +39,8 @@ GameLib.D3.Mesh = function ( if ( GameLib.Utils.Defined(this.geometry) && - GameLib.Utils.Defined(this.geometry.componentType) + GameLib.Utils.Defined(this.geometry.componentType) && + !(this.geometry instanceof GameLib.D3.Geometry) ) { this.geometry = GameLib.Component.ConstructFromObject(this.geometry); } @@ -47,7 +48,10 @@ GameLib.D3.Mesh = function ( this.materials = this.materials.map( function(material) { - if (GameLib.Utils.Defined(material.componentType)) { + if ( + GameLib.Utils.Defined(material.componentType) && + !(material instanceof GameLib.D3.Material) + ) { return GameLib.Component.ConstructFromObject(material); } else { return material; diff --git a/src/game-lib-system-input.js b/src/game-lib-system-input.js index bde98ab..cc6e2d8 100644 --- a/src/game-lib-system-input.js +++ b/src/game-lib-system-input.js @@ -1194,24 +1194,24 @@ GameLib.System.Input.prototype.onMouseMoveEdit = function(event) { } ); - this.editorControls.map( - function(editorControl) { - editorControl.camera.position.x = editorControl.camera.instance.position.x; - editorControl.camera.position.y = editorControl.camera.instance.position.y; - editorControl.camera.position.z = editorControl.camera.instance.position.z; - // - // editorControl.camera.quaternion.x = editorControl.camera.instance.quaternion.x; - // editorControl.camera.quaternion.y = editorControl.camera.instance.quaternion.y; - // editorControl.camera.quaternion.z = editorControl.camera.instance.quaternion.z; - // editorControl.camera.quaternion.w = editorControl.camera.instance.quaternion.w; + GameLib.EntityManager.Instance.queryComponentsByConstructor(GameLib.Controls.D3).map( + function(control) { - //TODO: do this below???!? - //editorControl.camera.lookAt.x = editorControl.instance.center.x; - //editorControl.camera.lookAt.y = editorControl.instance.center.y; - //editorControl.camera.lookAt.z = editorControl.instance.center.z; - //editorControl.camera.lookAt.instance.copy(editorControl.instance.center); + control.camera.position.x = control.camera.instance.position.x; + control.camera.position.y = control.camera.instance.position.y; + control.camera.position.z = control.camera.instance.position.z; + + control.camera.rotation.x = control.camera.instance.rotation.x; + control.camera.rotation.y = control.camera.instance.rotation.y; + control.camera.rotation.z = control.camera.instance.rotation.z; + + control.camera.quaternion.x = control.camera.instance.quaternion.x; + control.camera.quaternion.y = control.camera.instance.quaternion.y; + control.camera.quaternion.z = control.camera.instance.quaternion.z; + control.camera.quaternion.w = control.camera.instance.quaternion.w; } ); + }; /**