UNPKG

wonder.js

Version:
250 lines (226 loc) 12.6 kB
'use strict'; 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 */