wonder.js
Version:
250 lines (226 loc) • 12.6 kB
JavaScript
;
var Curry = require("bs-platform/lib/js/curry.js");
var Caml_array = require("bs-platform/lib/js/caml_array.js");
var ArrayService$Wonderjs = require("../../service/atom/ArrayService.js");
var BufferService$Wonderjs = require("../../service/primitive/buffer/BufferService.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var CreateScriptMainService$Wonderjs = require("../../service/state/main/script/CreateScriptMainService.js");
var CreateGeometryMainService$Wonderjs = require("../../service/state/main/geometry/CreateGeometryMainService.js");
var CreateTransformMainService$Wonderjs = require("../../service/state/main/transform/CreateTransformMainService.js");
var CreatePointLightMainService$Wonderjs = require("../../service/state/main/light/point/CreatePointLightMainService.js");
var CreateMeshRendererMainService$Wonderjs = require("../../service/state/main/meshRenderer/CreateMeshRendererMainService.js");
var CreateBasicMaterialMainService$Wonderjs = require("../../service/state/main/material/basic/CreateBasicMaterialMainService.js");
var CreateLightMaterialMainService$Wonderjs = require("../../service/state/main/material/light/CreateLightMaterialMainService.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
var CreateCubemapTextureMainService$Wonderjs = require("../../service/state/main/texture/cubemap/CreateCubemapTextureMainService.js");
var CreateDirectionLightMainService$Wonderjs = require("../../service/state/main/light/direction/CreateDirectionLightMainService.js");
var RecordCubemapTextureMainService$Wonderjs = require("../../service/state/main/texture/cubemap/RecordCubemapTextureMainService.js");
var CreateBasicCameraViewMainService$Wonderjs = require("../../service/state/main/basic_camera_view/CreateBasicCameraViewMainService.js");
var CreateGameObjectGameObjectService$Wonderjs = require("../../service/record/main/gameObject/CreateGameObjectGameObjectService.js");
var CreateBasicSourceTextureMainService$Wonderjs = require("../../service/state/main/texture/source/basic_source/CreateBasicSourceTextureMainService.js");
var RecordBasicSourceTextureMainService$Wonderjs = require("../../service/state/main/texture/source/basic_source/RecordBasicSourceTextureMainService.js");
var CreateFlyCameraControllerMainService$Wonderjs = require("../../service/state/main/camera_controller/fly/CreateFlyCameraControllerMainService.js");
var CreateArcballCameraControllerMainService$Wonderjs = require("../../service/state/main/camera_controller/arcball/CreateArcballCameraControllerMainService.js");
var CreatePerspectiveCameraProjectionMainService$Wonderjs = require("../../service/state/main/perspective_camera_projection/CreatePerspectiveCameraProjectionMainService.js");
function _checkNotExceedMaxCountByIndex(maxCount, indexArr) {
BufferService$Wonderjs.checkNotExceedMaxCountByIndex(maxCount, indexArr[indexArr.length - 1 | 0]);
return indexArr;
}
function _batchCreateGameObject(param, state) {
return ArrayService$WonderCommonlib.reduceOneParam((function (param, param$1) {
var state = param[0];
var match = CreateGameObjectGameObjectService$Wonderjs.create(state[/* gameObjectRecord */10]);
state[/* gameObjectRecord */10] = match[0];
return /* tuple */[
state,
ArrayService$Wonderjs.push(match[1], param[1])
];
}), /* tuple */[
state,
/* array */[]
], ArrayService$Wonderjs.range(0, param[/* gameObjects */3][/* count */0] - 1 | 0));
}
function _setDefaultChildren(indexArr, childMap) {
return ArrayService$WonderCommonlib.reduceOneParam((function (childMap, index) {
return MutableSparseMapService$WonderCommonlib.set(index, ArrayService$WonderCommonlib.createEmpty(/* () */0), childMap);
}), childMap, indexArr);
}
function _initTransformDataWhenCreate(indexArr, transformRecord) {
var childMap = transformRecord[/* childMap */16];
var newrecord = Caml_array.caml_array_dup(transformRecord);
newrecord[/* childMap */16] = _setDefaultChildren(indexArr, childMap);
return newrecord;
}
function _batchCreateComponent(components, createFunc, state) {
return ArrayService$WonderCommonlib.reduceOneParam((function (param, param$1) {
var match = createFunc(param[0]);
return /* tuple */[
match[0],
ArrayService$Wonderjs.push(match[1], param[1])
];
}), /* tuple */[
state,
/* array */[]
], ArrayService$Wonderjs.range(0, components.length - 1 | 0));
}
function _batchCreateTransform(param, state) {
return _batchCreateComponent(param[/* transforms */17], CreateTransformMainService$Wonderjs.create, state);
}
function _batchCreateGeometry(param, state) {
return ArrayService$WonderCommonlib.reduceOneParami((function (param, geometry, index) {
var indexArr = param[1];
var state = param[0];
if (geometry == null) {
return /* tuple */[
state,
ArrayService$Wonderjs.push(-1, indexArr)
];
} else {
var match = CreateGeometryMainService$Wonderjs.create(state);
return /* tuple */[
match[0],
ArrayService$Wonderjs.push(match[1], indexArr)
];
}
}), /* tuple */[
state,
/* array */[]
], param[/* geometrys */18]);
}
function _batchCreateMeshRenderer(param, state) {
return _batchCreateComponent(param[/* meshRenderers */19], CreateMeshRendererMainService$Wonderjs.create, state);
}
function _batchCreateBasicCameraView(param, state) {
return _batchCreateComponent(param[/* basicCameraViews */13], CreateBasicCameraViewMainService$Wonderjs.create, state);
}
function _batchCreatePerspectiveCameraProjection(param, state) {
return _batchCreateComponent(param[/* perspectiveCameraProjections */14], CreatePerspectiveCameraProjectionMainService$Wonderjs.create, state);
}
function _createFlyCameraControllerOneByOne(param, state) {
return _batchCreateComponent(param[/* flyCameraControllers */15], CreateFlyCameraControllerMainService$Wonderjs.create, state);
}
function _createArcballCameraControllerOneByOne(param, state) {
return _batchCreateComponent(param[/* arcballCameraControllers */16], CreateArcballCameraControllerMainService$Wonderjs.create, state);
}
function _batchCreateScript(param, state) {
return _batchCreateComponent(param[/* scripts */22], CreateScriptMainService$Wonderjs.create, state);
}
function _batchCreateBasicMaterial(param, state) {
return _batchCreateComponent(param[/* basicMaterials */20], CreateBasicMaterialMainService$Wonderjs.create, state);
}
function _batchCreateLightMaterial(param, state) {
return _batchCreateComponent(param[/* lightMaterials */21], CreateLightMaterialMainService$Wonderjs.create, state);
}
function _batchCreateBasicSourceTexture(param, state) {
RecordBasicSourceTextureMainService$Wonderjs.getRecord(state);
return ArrayService$Wonderjs.reduceOneParamValidi((function (param, param$1, basicSourceTextureIndex) {
var indexArr = param[1];
var match = CreateBasicSourceTextureMainService$Wonderjs.create(param[0]);
indexArr[basicSourceTextureIndex] = match[1];
return /* tuple */[
match[0],
indexArr
];
}), /* tuple */[
state,
/* array */[]
], param[/* basicSourceTextures */5]);
}
function _batchCreateCubemapTexture(param, state) {
RecordCubemapTextureMainService$Wonderjs.getRecord(state);
return ArrayService$Wonderjs.reduceOneParamValidi((function (param, param$1, cubemapTextureIndex) {
var indexArr = param[1];
var match = CreateCubemapTextureMainService$Wonderjs.create(param[0]);
indexArr[cubemapTextureIndex] = match[1];
return /* tuple */[
match[0],
indexArr
];
}), /* tuple */[
state,
/* array */[]
], param[/* cubemapTextures */6]);
}
function _batchCreateLightComponent(components, createFunc, state) {
return ArrayService$WonderCommonlib.reduceOneParam((function (param, param$1) {
var match = Curry._1(createFunc, param[0]);
return /* tuple */[
match[0],
ArrayService$Wonderjs.push(match[1], param[1])
];
}), /* tuple */[
state,
/* array */[]
], ArrayService$Wonderjs.range(0, components.length - 1 | 0));
}
function _batchCreateDirectionLight(isRenderLight, param, state) {
return _batchCreateLightComponent(param[/* directionLights */11], (function (param) {
return CreateDirectionLightMainService$Wonderjs.create(isRenderLight, param);
}), state);
}
function _batchCreatePointLight(isRenderLight, param, state) {
return _batchCreateLightComponent(param[/* pointLights */12], (function (param) {
return CreatePointLightMainService$Wonderjs.create(isRenderLight, param);
}), state);
}
function batchCreate(isRenderLight, wd, state) {
var match = _batchCreateGameObject(wd, state);
var match$1 = _batchCreateTransform(wd, match[0]);
var match$2 = _batchCreateGeometry(wd, match$1[0]);
var match$3 = _batchCreateMeshRenderer(wd, match$2[0]);
var match$4 = _batchCreateBasicCameraView(wd, match$3[0]);
var match$5 = _batchCreatePerspectiveCameraProjection(wd, match$4[0]);
var match$6 = _createFlyCameraControllerOneByOne(wd, match$5[0]);
var match$7 = _createArcballCameraControllerOneByOne(wd, match$6[0]);
var match$8 = _batchCreateBasicMaterial(wd, match$7[0]);
var match$9 = _batchCreateLightMaterial(wd, match$8[0]);
var match$10 = _batchCreateBasicSourceTexture(wd, match$9[0]);
var match$11 = _batchCreateCubemapTexture(wd, match$10[0]);
var match$12 = _batchCreateDirectionLight(isRenderLight, wd, match$11[0]);
var match$13 = _batchCreatePointLight(isRenderLight, wd, match$12[0]);
var match$14 = _batchCreateScript(wd, match$13[0]);
return /* tuple */[
match$14[0],
match[1],
/* tuple */[
match$1[1],
match$2[1],
match$3[1],
match$4[1],
match$5[1],
match$6[1],
match$7[1],
match$8[1],
match$9[1],
match$12[1],
match$13[1],
match$14[1]
],
/* tuple */[
match$10[1],
match$11[1]
]
];
}
exports._checkNotExceedMaxCountByIndex = _checkNotExceedMaxCountByIndex;
exports._batchCreateGameObject = _batchCreateGameObject;
exports._setDefaultChildren = _setDefaultChildren;
exports._initTransformDataWhenCreate = _initTransformDataWhenCreate;
exports._batchCreateComponent = _batchCreateComponent;
exports._batchCreateTransform = _batchCreateTransform;
exports._batchCreateGeometry = _batchCreateGeometry;
exports._batchCreateMeshRenderer = _batchCreateMeshRenderer;
exports._batchCreateBasicCameraView = _batchCreateBasicCameraView;
exports._batchCreatePerspectiveCameraProjection = _batchCreatePerspectiveCameraProjection;
exports._createFlyCameraControllerOneByOne = _createFlyCameraControllerOneByOne;
exports._createArcballCameraControllerOneByOne = _createArcballCameraControllerOneByOne;
exports._batchCreateScript = _batchCreateScript;
exports._batchCreateBasicMaterial = _batchCreateBasicMaterial;
exports._batchCreateLightMaterial = _batchCreateLightMaterial;
exports._batchCreateBasicSourceTexture = _batchCreateBasicSourceTexture;
exports._batchCreateCubemapTexture = _batchCreateCubemapTexture;
exports._batchCreateLightComponent = _batchCreateLightComponent;
exports._batchCreateDirectionLight = _batchCreateDirectionLight;
exports._batchCreatePointLight = _batchCreatePointLight;
exports.batchCreate = batchCreate;
/* ArrayService-Wonderjs Not a pure module */