/** * GameLib.D3.Shadow.Directional * @param graphics GameLib.GraphicsRuntime * @param apiDirectionalShadow * @constructor */ GameLib.D3.Shadow.Directional = function( graphics, apiDirectionalShadow ) { this.graphics = graphics; this.graphics.isNotThreeThrow(); if (GameLib.Utils.UndefinedOrNull(apiDirectionalShadow)) { apiDirectionalShadow = { shadowType : GameLib.D3.API.Shadow.SHADOW_TYPE_DIRECTIONAL }; } GameLib.D3.API.Shadow.Directional.call( this, apiDirectionalShadow ); if (this.camera instanceof GameLib.D3.API.Camera.Orthographic) { this.camera = new GameLib.D3.Camera.Orthographic( this.graphics, this.camera ) } GameLib.D3.Shadow.call( this, this.graphics, apiDirectionalShadow ); }; GameLib.D3.Shadow.Directional.prototype = Object.create(GameLib.D3.Shadow.prototype); GameLib.D3.Shadow.Directional.prototype.constructor = GameLib.D3.Shadow.Directional; /** * Creates a shadow instance * @returns {*} */ GameLib.D3.Shadow.Directional.prototype.createInstance = function() { this.instance = {}; GameLib.D3.Shadow.prototype.createInstance.call(this); }; /** * Updates the instance with the current state */ GameLib.D3.Shadow.Directional.prototype.updateInstance = function(property) { if (property === 'camera') { console.warn('todo: updateInstance for directional shadow camera instance'); return; } GameLib.D3.Shadow.prototype.updateInstance.call(this, property); }; /** * Converts a GameLib.D3.Shadow to a GameLib.D3.API.Shadow * @returns {GameLib.D3.API.Shadow} */ GameLib.D3.Shadow.Directional.prototype.toApiObject = function() { var apiShadow = GameLib.D3.Shadow.prototype.toApiObject.call(this); var apiDirectionalShadow = new GameLib.D3.API.Shadow.Directional( apiShadow ); return apiDirectionalShadow; }; GameLib.D3.Shadow.Directional.prototype.updateFromInstance = function() { GameLib.D3.Shadow.prototype.updateFromInstance.call(this); };