r3-legacy/src/game-lib-d3-shadow-directio...

90 lines
2.0 KiB
JavaScript
Raw Normal View History

2018-01-29 12:42:46 +01:00
/**
* 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,
this
2018-01-29 12:42:46 +01:00
);
};
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);
};