r3-legacy/bak/r3-d3-api-editor.js

256 lines
6.2 KiB
JavaScript
Raw Permalink Normal View History

2017-01-10 17:04:30 +01:00
/**
* Raw Editor API object - should always correspond with the Editor Schema
* @param id
* @param name
2017-01-20 13:40:27 +01:00
* @param baseUrl
* @param path
2017-02-21 18:55:18 +01:00
* @param imageFactory
2018-04-09 10:05:13 +02:00
* @param games [R3.API.D3.Game]
2017-01-20 13:40:27 +01:00
* @param scenes
* @param cameras
* @param composers
* @param viewports
* @param renderers
* @param renderTargets
* @param systems
* @param entityManager
2017-01-10 17:04:30 +01:00
* @param allSelected
2017-01-11 16:09:06 +01:00
* @param selectedObjects
2017-01-10 17:04:30 +01:00
* @param parentEntity
* @constructor
*/
2018-04-09 10:05:13 +02:00
R3.D3.API.Editor = function(
2017-01-10 17:04:30 +01:00
id,
name,
2017-01-20 13:40:27 +01:00
baseUrl,
path,
2017-02-21 18:55:18 +01:00
imageFactory,
2017-01-20 13:40:27 +01:00
games,
scenes,
cameras,
composers,
viewports,
renderers,
renderTargets,
systems,
entityManager,
2017-01-10 17:04:30 +01:00
allSelected,
2017-01-11 16:09:06 +01:00
selectedObjects,
2017-01-10 17:04:30 +01:00
parentEntity
) {
2018-04-09 10:05:13 +02:00
R3.Component.call(
2017-01-10 17:04:30 +01:00
this,
2018-04-09 10:05:13 +02:00
R3.Component.COMPONENT_EDITOR,
2017-01-13 16:19:51 +01:00
{
2018-04-09 10:05:13 +02:00
'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
2017-01-13 16:19:51 +01:00
},
2017-01-10 17:04:30 +01:00
null,
parentEntity
);
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(id)) {
id = R3.Utils.RandomId();
2017-01-10 17:04:30 +01:00
}
this.id = id;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(name)) {
2017-01-10 17:04:30 +01:00
name = 'Editor (' + this.id + ')';
}
this.name = name;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(baseUrl)) {
2017-01-20 13:40:27 +01:00
baseUrl = '';
}
this.baseUrl = baseUrl;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(path)) {
2017-01-20 13:40:27 +01:00
path = '';
}
this.path = path;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(imageFactory)) {
2017-02-21 18:55:18 +01:00
imageFactory = null;
}
this.imageFactory = imageFactory;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(games)) {
2017-01-20 13:40:27 +01:00
games = [];
}
this.games = games;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(scenes)) {
2017-01-20 13:40:27 +01:00
scenes = [];
}
this.scenes = scenes;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(cameras)) {
2017-01-20 13:40:27 +01:00
cameras = [];
}
this.cameras = cameras;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(composers)) {
2017-01-20 13:40:27 +01:00
composers = [];
}
this.composers = composers;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(viewports)) {
2017-01-20 13:40:27 +01:00
viewports = [];
}
this.viewports = viewports;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(renderers)) {
2017-01-20 13:40:27 +01:00
renderers = [];
}
this.renderers = renderers;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(renderTargets)) {
2017-01-20 13:40:27 +01:00
renderTargets = [];
}
this.renderTargets = renderTargets;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(systems)) {
2017-01-20 13:40:27 +01:00
systems = [];
2017-01-10 17:04:30 +01:00
}
2017-01-20 13:40:27 +01:00
this.systems = systems;
2017-01-10 17:04:30 +01:00
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(entityManager)) {
entityManager = new R3.API.EntityManager();
2017-01-20 13:40:27 +01:00
}
this.entityManager = entityManager;
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(allSelected)) {
2017-01-10 17:04:30 +01:00
allSelected = false;
}
this.allSelected = allSelected;
2017-01-11 16:09:06 +01:00
2018-04-09 10:05:13 +02:00
if (R3.Utils.UndefinedOrNull(selectedObjects)) {
2017-01-11 16:09:06 +01:00
selectedObjects = [];
}
this.selectedObjects = selectedObjects;
2017-01-10 17:04:30 +01:00
};
2018-04-09 10:05:13 +02:00
R3.D3.API.Editor.prototype = Object.create(R3.Component.prototype);
R3.D3.API.Editor.prototype.constructor = R3.D3.API.Editor;
2017-01-10 17:04:30 +01:00
/**
* Creates an API Editor from an Object Editor
* @param objectEditor
* @constructor
*/
2018-04-09 10:05:13 +02:00
R3.D3.API.Editor.FromObjectEditor = function(objectEditor) {
2017-01-20 13:40:27 +01:00
2017-02-21 18:55:18 +01:00
var apiImageFactory = null;
2017-01-20 13:40:27 +01:00
var apiGames = [];
var apiScenes = [];
var apiCameras = [];
var apiComposers = [];
var apiViewports = [];
var apiRenderers = [];
var apiRenderTargets = [];
var apiSystems = [];
var apiEntityManager = null;
2017-02-21 18:55:18 +01:00
if (objectEditor.imageFactory) {
2018-04-09 10:05:13 +02:00
apiImageFactory = R3.D3.API.ImageFactory.FromObjectImageFactory(objectEditor.imageFactory);
2017-02-21 18:55:18 +01:00
}
2017-01-20 13:40:27 +01:00
if (objectEditor.games) {
apiGames = objectEditor.games.map(
function(objectGame){
2018-04-09 10:05:13 +02:00
return R3.D3.API.Game.FromObjectGame(objectGame);
2017-01-20 13:40:27 +01:00
}
);
}
if (objectEditor.scenes) {
apiScenes = objectEditor.scenes.map(
function(objectScene){
2018-04-09 10:05:13 +02:00
return R3.D3.API.Scene.FromObjectScene(objectScene);
2017-01-20 13:40:27 +01:00
}
);
}
if (objectEditor.cameras) {
apiCameras = objectEditor.cameras.map(
function(objectCamera){
2018-04-09 10:05:13 +02:00
return R3.D3.API.Camera.FromObjectCamera(objectCamera);
2017-01-20 13:40:27 +01:00
}
);
}
if (objectEditor.composers) {
apiComposers = objectEditor.composers.map(
function(objectComposer){
2018-04-09 10:05:13 +02:00
return R3.D3.API.Composer.FromObjectComponent(objectComposer);
2017-01-20 13:40:27 +01:00
}
);
}
if (objectEditor.viewports) {
apiViewports = objectEditor.viewports.map(
function(objectViewport){
2018-04-09 10:05:13 +02:00
return R3.D3.API.Viewport.FromObjectViewport(objectViewport);
2017-01-20 13:40:27 +01:00
}
);
}
if (objectEditor.renderers) {
apiRenderers = objectEditor.renderers.map(
function(objectRenderer){
2018-04-09 10:05:13 +02:00
return R3.D3.API.Renderer.FromObjectComponent(objectRenderer);
2017-01-20 13:40:27 +01:00
}
);
}
if (objectEditor.renderTargets) {
apiRenderTargets = objectEditor.renderTargets.map(
function(objectRenderTarget){
2018-04-09 10:05:13 +02:00
return R3.D3.API.RenderTarget.FromObjectComponent(objectRenderTarget);
2017-01-20 13:40:27 +01:00
}
);
}
if (objectEditor.systems) {
apiSystems = objectEditor.systems.map(
function(objectSystem){
2018-04-09 10:05:13 +02:00
return R3.API.System.FromObjectComponent(objectSystem);
2017-01-20 13:40:27 +01:00
}
);
}
if (objectEditor.entityManager) {
2018-04-09 10:05:13 +02:00
apiEntityManager = R3.API.EntityManager.FromObjectEntityManager(objectEditor.entityManager);
2017-01-20 13:40:27 +01:00
}
2018-04-09 10:05:13 +02:00
return new R3.D3.API.Editor(
2017-01-10 17:04:30 +01:00
objectEditor.id,
objectEditor.name,
2017-01-20 13:40:27 +01:00
objectEditor.baseUrl,
objectEditor.path,
2017-02-21 18:55:18 +01:00
apiImageFactory,
2017-01-20 13:40:27 +01:00
apiGames,
apiScenes,
apiCameras,
apiComposers,
apiViewports,
apiRenderers,
apiRenderTargets,
apiSystems,
apiEntityManager,
2017-01-10 17:04:30 +01:00
objectEditor.allSelected,
2017-01-11 16:09:06 +01:00
objectEditor.selectedObjects,
2017-01-20 13:40:27 +01:00
objectEditor.parentEntity
2017-01-10 17:04:30 +01:00
);
};