256 lines
6.2 KiB
JavaScript
256 lines
6.2 KiB
JavaScript
/**
|
|
* Raw Editor API object - should always correspond with the Editor Schema
|
|
* @param id
|
|
* @param name
|
|
* @param baseUrl
|
|
* @param path
|
|
* @param imageFactory
|
|
* @param games [R3.API.D3.Game]
|
|
* @param scenes
|
|
* @param cameras
|
|
* @param composers
|
|
* @param viewports
|
|
* @param renderers
|
|
* @param renderTargets
|
|
* @param systems
|
|
* @param entityManager
|
|
* @param allSelected
|
|
* @param selectedObjects
|
|
* @param parentEntity
|
|
* @constructor
|
|
*/
|
|
R3.D3.API.Editor = function(
|
|
id,
|
|
name,
|
|
baseUrl,
|
|
path,
|
|
imageFactory,
|
|
games,
|
|
scenes,
|
|
cameras,
|
|
composers,
|
|
viewports,
|
|
renderers,
|
|
renderTargets,
|
|
systems,
|
|
entityManager,
|
|
allSelected,
|
|
selectedObjects,
|
|
parentEntity
|
|
) {
|
|
R3.Component.call(
|
|
this,
|
|
R3.Component.COMPONENT_EDITOR,
|
|
{
|
|
'imageFactory' : R3.D3.ImageFactory,
|
|
'games' : [R3.D3.Game],
|
|
'scenes' : [R3.D3.Scene],
|
|
'cameras' : [R3.D3.Camera],
|
|
'composers' : [R3.D3.Composer],
|
|
'viewports' : [R3.D3.Viewport],
|
|
'renderers' : [R3.D3.Renderer],
|
|
'renderTargets' : [R3.D3.RenderTarget],
|
|
'systems' : [R3.System],
|
|
'entityManager' : R3.EntityManager
|
|
},
|
|
null,
|
|
parentEntity
|
|
);
|
|
|
|
if (R3.Utils.UndefinedOrNull(id)) {
|
|
id = R3.Utils.RandomId();
|
|
}
|
|
this.id = id;
|
|
|
|
if (R3.Utils.UndefinedOrNull(name)) {
|
|
name = 'Editor (' + this.id + ')';
|
|
}
|
|
this.name = name;
|
|
|
|
if (R3.Utils.UndefinedOrNull(baseUrl)) {
|
|
baseUrl = '';
|
|
}
|
|
this.baseUrl = baseUrl;
|
|
|
|
if (R3.Utils.UndefinedOrNull(path)) {
|
|
path = '';
|
|
}
|
|
this.path = path;
|
|
|
|
if (R3.Utils.UndefinedOrNull(imageFactory)) {
|
|
imageFactory = null;
|
|
}
|
|
this.imageFactory = imageFactory;
|
|
|
|
if (R3.Utils.UndefinedOrNull(games)) {
|
|
games = [];
|
|
}
|
|
this.games = games;
|
|
|
|
if (R3.Utils.UndefinedOrNull(scenes)) {
|
|
scenes = [];
|
|
}
|
|
this.scenes = scenes;
|
|
|
|
if (R3.Utils.UndefinedOrNull(cameras)) {
|
|
cameras = [];
|
|
}
|
|
this.cameras = cameras;
|
|
|
|
if (R3.Utils.UndefinedOrNull(composers)) {
|
|
composers = [];
|
|
}
|
|
this.composers = composers;
|
|
|
|
if (R3.Utils.UndefinedOrNull(viewports)) {
|
|
viewports = [];
|
|
}
|
|
this.viewports = viewports;
|
|
|
|
if (R3.Utils.UndefinedOrNull(renderers)) {
|
|
renderers = [];
|
|
}
|
|
this.renderers = renderers;
|
|
|
|
if (R3.Utils.UndefinedOrNull(renderTargets)) {
|
|
renderTargets = [];
|
|
}
|
|
this.renderTargets = renderTargets;
|
|
|
|
if (R3.Utils.UndefinedOrNull(systems)) {
|
|
systems = [];
|
|
}
|
|
this.systems = systems;
|
|
|
|
if (R3.Utils.UndefinedOrNull(entityManager)) {
|
|
entityManager = new R3.API.EntityManager();
|
|
}
|
|
this.entityManager = entityManager;
|
|
|
|
if (R3.Utils.UndefinedOrNull(allSelected)) {
|
|
allSelected = false;
|
|
}
|
|
this.allSelected = allSelected;
|
|
|
|
if (R3.Utils.UndefinedOrNull(selectedObjects)) {
|
|
selectedObjects = [];
|
|
}
|
|
this.selectedObjects = selectedObjects;
|
|
|
|
};
|
|
|
|
R3.D3.API.Editor.prototype = Object.create(R3.Component.prototype);
|
|
R3.D3.API.Editor.prototype.constructor = R3.D3.API.Editor;
|
|
|
|
/**
|
|
* Creates an API Editor from an Object Editor
|
|
* @param objectEditor
|
|
* @constructor
|
|
*/
|
|
R3.D3.API.Editor.FromObjectEditor = function(objectEditor) {
|
|
|
|
var apiImageFactory = null;
|
|
var apiGames = [];
|
|
var apiScenes = [];
|
|
var apiCameras = [];
|
|
var apiComposers = [];
|
|
var apiViewports = [];
|
|
var apiRenderers = [];
|
|
var apiRenderTargets = [];
|
|
var apiSystems = [];
|
|
var apiEntityManager = null;
|
|
|
|
if (objectEditor.imageFactory) {
|
|
apiImageFactory = R3.D3.API.ImageFactory.FromObjectImageFactory(objectEditor.imageFactory);
|
|
}
|
|
|
|
if (objectEditor.games) {
|
|
apiGames = objectEditor.games.map(
|
|
function(objectGame){
|
|
return R3.D3.API.Game.FromObjectGame(objectGame);
|
|
}
|
|
);
|
|
}
|
|
|
|
if (objectEditor.scenes) {
|
|
apiScenes = objectEditor.scenes.map(
|
|
function(objectScene){
|
|
return R3.D3.API.Scene.FromObjectScene(objectScene);
|
|
}
|
|
);
|
|
}
|
|
|
|
if (objectEditor.cameras) {
|
|
apiCameras = objectEditor.cameras.map(
|
|
function(objectCamera){
|
|
return R3.D3.API.Camera.FromObjectCamera(objectCamera);
|
|
}
|
|
);
|
|
}
|
|
|
|
if (objectEditor.composers) {
|
|
apiComposers = objectEditor.composers.map(
|
|
function(objectComposer){
|
|
return R3.D3.API.Composer.FromObjectComponent(objectComposer);
|
|
}
|
|
);
|
|
}
|
|
|
|
if (objectEditor.viewports) {
|
|
apiViewports = objectEditor.viewports.map(
|
|
function(objectViewport){
|
|
return R3.D3.API.Viewport.FromObjectViewport(objectViewport);
|
|
}
|
|
);
|
|
}
|
|
|
|
if (objectEditor.renderers) {
|
|
apiRenderers = objectEditor.renderers.map(
|
|
function(objectRenderer){
|
|
return R3.D3.API.Renderer.FromObjectComponent(objectRenderer);
|
|
}
|
|
);
|
|
}
|
|
|
|
if (objectEditor.renderTargets) {
|
|
apiRenderTargets = objectEditor.renderTargets.map(
|
|
function(objectRenderTarget){
|
|
return R3.D3.API.RenderTarget.FromObjectComponent(objectRenderTarget);
|
|
}
|
|
);
|
|
}
|
|
|
|
if (objectEditor.systems) {
|
|
apiSystems = objectEditor.systems.map(
|
|
function(objectSystem){
|
|
return R3.API.System.FromObjectComponent(objectSystem);
|
|
}
|
|
);
|
|
}
|
|
|
|
if (objectEditor.entityManager) {
|
|
apiEntityManager = R3.API.EntityManager.FromObjectEntityManager(objectEditor.entityManager);
|
|
}
|
|
|
|
return new R3.D3.API.Editor(
|
|
objectEditor.id,
|
|
objectEditor.name,
|
|
objectEditor.baseUrl,
|
|
objectEditor.path,
|
|
apiImageFactory,
|
|
apiGames,
|
|
apiScenes,
|
|
apiCameras,
|
|
apiComposers,
|
|
apiViewports,
|
|
apiRenderers,
|
|
apiRenderTargets,
|
|
apiSystems,
|
|
apiEntityManager,
|
|
objectEditor.allSelected,
|
|
objectEditor.selectedObjects,
|
|
objectEditor.parentEntity
|
|
);
|
|
};
|
|
|