/** * This component renders a scene * @param id String * @param name String * @param helperType * @param object * @param parentEntity * @constructor */ R3.D3.API.Helper = function ( id, name, helperType, object, parentEntity ) { R3.Component.call( this, R3.Component.COMPONENT_HELPER, null, null, parentEntity ); if (R3.Utils.UndefinedOrNull(id)) { id = R3.Utils.RandomId(); } this.id = id; if (R3.Utils.UndefinedOrNull(name)) { name = 'Helper (' + id + ')'; } this.name = name; if (R3.Utils.UndefinedOrNull(object)) { console.warn('Cannot create a helper for an Object which does not exist'); throw new Error('Cannot create a helper for an Object which does not exist'); } if (R3.Utils.UndefinedOrNull(helperType)) { if ( object instanceof R3.D3.Mesh && object.meshType != R3.D3.Mesh.TYPE_CURVE ) { helperType = R3.D3.Helper.HELPER_TYPE_WIREFRAME; } if (object instanceof R3.D3.Light) { if (object.lightType == R3.D3.Light.LIGHT_TYPE_DIRECTIONAL) { helperType = R3.D3.Helper.HELPER_TYPE_DIRECTIONAL_LIGHT; } if (object.lightType == R3.D3.Light.LIGHT_TYPE_POINT) { helperType = R3.D3.Helper.HELPER_TYPE_POINT_LIGHT; } if (object.lightType == R3.D3.Light.LIGHT_TYPE_SPOT) { helperType = R3.D3.Helper.HELPER_TYPE_SPOT_LIGHT; } } if (object instanceof R3.D3.Skeleton) { helperType = R3.D3.Helper.HELPER_TYPE_SKELETON; } } this.helperType = helperType; }; R3.D3.API.Helper.prototype = Object.create(R3.Component.prototype); R3.D3.API.Helper.prototype.constructor = R3.D3.API.Helper; /** * Object to R3.D3.API.Helper * @param objectComponent * @constructor */ R3.D3.API.Helper.FromObjectComponent = function(objectComponent) { return new R3.D3.API.Helper( objectComponent.id, objectComponent.name, objectComponent.helperType, objectComponent.object, objectComponent.parentEntity ); };