UNPKG

wonder.js

Version:
306 lines (278 loc) 17.1 kB
'use strict'; var Most = require("most"); var Curry = require("bs-platform/lib/js/curry.js"); var Caml_obj = require("bs-platform/lib/js/caml_obj.js"); var Caml_option = require("bs-platform/lib/js/caml_option.js"); var GLBTool$Wonderjs = require("./GLBTool.js"); var BufferUtils$Wonderjs = require("../../../../../src/asset/utils/BufferUtils.js"); var GeometryAPI$Wonderjs = require("../../../../../src/api/geometry/GeometryAPI.js"); var GeometryTool$Wonderjs = require("../../../../tool/service/geometry/GeometryTool.js"); var GameObjectAPI$Wonderjs = require("../../../../../src/api/GameObjectAPI.js"); var PointLightAPI$Wonderjs = require("../../../../../src/api/light/PointLightAPI.js"); var ConvertGLBTool$Wonderjs = require("./ConvertGLBTool.js"); var ConvertGLBSystem$Wonderjs = require("../../../../../src/asset/converter/ConvertGLBSystem.js"); var LightMaterialAPI$Wonderjs = require("../../../../../src/api/material/LightMaterialAPI.js"); var BatchCreateSystem$Wonderjs = require("../../../../../src/asset/assemble/BatchCreateSystem.js"); var DirectionLightAPI$Wonderjs = require("../../../../../src/api/light/DirectionLightAPI.js"); var AssembleWholeWDBSystem$Wonderjs = require("../../../../../src/asset/assemble/AssembleWholeWDBSystem.js"); var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js"); function buildGLTFJsonOfMultiSceneGameObjects(param) { return ConvertGLBTool$Wonderjs.buildGLTFJson(undefined, undefined, undefined, undefined, "\n [\n {\n \"nodes\": [0,1]\n }\n ]\n ", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, "\n[\n {\n \"matrix\": [\n 1.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n 0.0,\n 10.0,\n 20.0,\n 30.0,\n 1.0\n ],\n \"mesh\": 0\n },\n {\n \"mesh\": 0\n }\n ]\n\n ", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0); } function testGLTF(sandbox, embeddedGLTFJsonStr, testFunc, state, $staropt$star, $staropt$star$1, $staropt$star$2, $staropt$star$3, $staropt$star$4, $staropt$star$5, param) { var binBuffer = $staropt$star !== undefined ? Caml_option.valFromOption($staropt$star) : GLBTool$Wonderjs.buildBinBuffer(/* () */0); var isHandleIMGUI = $staropt$star$1 !== undefined ? $staropt$star$1 : true; var isBindEvent = $staropt$star$2 !== undefined ? $staropt$star$2 : true; var isActiveCamera = $staropt$star$3 !== undefined ? $staropt$star$3 : true; var isRenderLight = $staropt$star$4 !== undefined ? $staropt$star$4 : true; var isLoadImage = $staropt$star$5 !== undefined ? $staropt$star$5 : true; var result = /* record */[/* contents */1]; GLBTool$Wonderjs.prepare(sandbox); return Most.forEach((function (data) { result[0] = data; return /* () */0; }), AssembleWholeWDBSystem$Wonderjs.assemble(ConvertGLBSystem$Wonderjs.convertGLBData(JSON.parse(embeddedGLTFJsonStr), binBuffer), /* tuple */[ isHandleIMGUI, isBindEvent, isActiveCamera, isRenderLight, isLoadImage ], state[0])).then((function (param) { return Promise.resolve(Curry._1(testFunc, result[0])); })); } function testGLBWithConfig(sandbox, glbFilePath, testFunc, state, $staropt$star, $staropt$star$1, $staropt$star$2, $staropt$star$3, $staropt$star$4, param) { var isHandleIMGUI = $staropt$star !== undefined ? $staropt$star : true; var isBindEvent = $staropt$star$1 !== undefined ? $staropt$star$1 : true; var isActiveCamera = $staropt$star$2 !== undefined ? $staropt$star$2 : true; var isRenderLight = $staropt$star$3 !== undefined ? $staropt$star$3 : true; var isLoadImage = $staropt$star$4 !== undefined ? $staropt$star$4 : true; var result = /* record */[/* contents */1]; return ConvertGLBTool$Wonderjs.testResult(sandbox, glbFilePath, (function (param) { return Most.forEach((function (data) { result[0] = data; return /* () */0; }), AssembleWholeWDBSystem$Wonderjs.assembleWDBData(param[0], param[1], /* tuple */[ isHandleIMGUI, isBindEvent, isActiveCamera, isRenderLight, isLoadImage ], state)).then((function (param) { return Promise.resolve(Curry._1(testFunc, result[0])); })); })); } function testWDB(sandbox, wdbArrayBuffer, testFunc, state, $staropt$star, $staropt$star$1, $staropt$star$2, $staropt$star$3, $staropt$star$4, param) { var isHandleIMGUI = $staropt$star !== undefined ? $staropt$star : true; var isBindEvent = $staropt$star$1 !== undefined ? $staropt$star$1 : true; var isActiveCamera = $staropt$star$2 !== undefined ? $staropt$star$2 : true; var isRenderLight = $staropt$star$3 !== undefined ? $staropt$star$3 : true; var isLoadImage = $staropt$star$4 !== undefined ? $staropt$star$4 : true; var result = /* record */[/* contents */1]; GLBTool$Wonderjs.prepare(sandbox); var match = BufferUtils$Wonderjs.decodeWDB(wdbArrayBuffer, AssembleWholeWDBSystem$Wonderjs.checkWDB); return Most.forEach((function (data) { result[0] = data; return /* () */0; }), AssembleWholeWDBSystem$Wonderjs.assembleWDBData(JSON.parse(match[0]), match[2], /* tuple */[ isHandleIMGUI, isBindEvent, isActiveCamera, isRenderLight, isLoadImage ], state)).then((function (param) { return Promise.resolve(Curry._1(testFunc, result[0])); })); } function testGLB(sandbox, glbFilePath, testFunc, state) { return testGLBWithConfig(sandbox, glbFilePath, testFunc, state, undefined, undefined, undefined, undefined, undefined, /* () */0); } var getAllChildrenTransform = GameObjectAPI$Wonderjs.getAllChildrenTransform; function getAllSortedTransforms(rootGameObject, state) { var allTransformChildren = GameObjectAPI$Wonderjs.getAllChildrenTransform(rootGameObject, state); var allTransformChildren$1 = allTransformChildren.sort(); return /* array */[GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(rootGameObject, state)].concat(allTransformChildren$1); } var getAllGameObjects = GameObjectAPI$Wonderjs.getAllGameObjects; function getAllChildrenData(allGameObjectData) { return allGameObjectData.slice(1); } function getAllGameObjectsIsActive(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectIsActive(gameObject, state); })); } function getAllGameObjectsIsRoot(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectIsRoot(gameObject, state); })); } function getAllMeshRenderers(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).filter((function (gameObject) { return GameObjectAPI$Wonderjs.hasGameObjectMeshRendererComponent(gameObject, state); })).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectMeshRendererComponent(gameObject, state); })); } function getAllDirectionLights(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).filter((function (gameObject) { return GameObjectAPI$Wonderjs.hasGameObjectDirectionLightComponent(gameObject, state); })).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectDirectionLightComponent(gameObject, state); })); } function getAllDirectionLightData(rootGameObject, state) { return getAllDirectionLights(rootGameObject, state).map((function (light) { return /* tuple */[ DirectionLightAPI$Wonderjs.getDirectionLightColor(light, state), DirectionLightAPI$Wonderjs.getDirectionLightIntensity(light, state) ]; })); } function getAllPointLights(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).filter((function (gameObject) { return GameObjectAPI$Wonderjs.hasGameObjectPointLightComponent(gameObject, state); })).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectPointLightComponent(gameObject, state); })); } function getAllPointLightData(rootGameObject, state) { return getAllPointLights(rootGameObject, state).map((function (light) { return /* tuple */[ PointLightAPI$Wonderjs.getPointLightColor(light, state), PointLightAPI$Wonderjs.getPointLightIntensity(light, state), PointLightAPI$Wonderjs.getPointLightConstant(light, state), PointLightAPI$Wonderjs.getPointLightLinear(light, state), PointLightAPI$Wonderjs.getPointLightQuadratic(light, state), PointLightAPI$Wonderjs.getPointLightRange(light, state) ]; })); } function getAllGeometrys(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).filter((function (gameObject) { return GameObjectAPI$Wonderjs.hasGameObjectGeometryComponent(gameObject, state); })).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectGeometryComponent(gameObject, state); })); } function getAllGeometryData(rootGameObject, state) { return getAllGeometrys(rootGameObject, state).map((function (geometry) { return /* tuple */[ GeometryAPI$Wonderjs.unsafeGetGeometryName(geometry, state), /* tuple */[ GeometryTool$Wonderjs.getMainVertices(geometry, state), GeometryTool$Wonderjs.getMainNormals(geometry, state), GeometryTool$Wonderjs.getMainTexCoords(geometry, state), GeometryTool$Wonderjs.getMainIndices16(geometry, state), GeometryTool$Wonderjs.getMainIndices32(geometry, state) ] ]; })); } function getAllScripts(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).filter((function (gameObject) { return GameObjectAPI$Wonderjs.hasGameObjectScriptComponent(gameObject, state); })).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectScriptComponent(gameObject, state); })); } function getAllBasicMaterials(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).filter((function (gameObject) { return GameObjectAPI$Wonderjs.hasGameObjectBasicMaterialComponent(gameObject, state); })).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectBasicMaterialComponent(gameObject, state); })); } function getAllLightMaterials(rootGameObject, state) { return GameObjectAPI$Wonderjs.getAllGameObjects(rootGameObject, state).filter((function (gameObject) { return GameObjectAPI$Wonderjs.hasGameObjectLightMaterialComponent(gameObject, state); })).map((function (gameObject) { return GameObjectAPI$Wonderjs.unsafeGetGameObjectLightMaterialComponent(gameObject, state); })); } function getAllDiffuseMaps(rootGameObject, state) { return getAllLightMaterials(rootGameObject, state).filter((function (lightMaterial) { return LightMaterialAPI$Wonderjs.hasLightMaterialDiffuseMap(lightMaterial, state); })).map((function (lightMaterial) { return LightMaterialAPI$Wonderjs.unsafeGetLightMaterialDiffuseMap(lightMaterial, state); })); } function isImageUint8ArrayMapEqual(sourceImageUint8ArrayMap, targetImageUint8ArrayMap) { return Caml_obj.caml_equal(MutableSparseMapService$WonderCommonlib.mapValid((function (param) { return /* tuple */[ param[0], param[1].byteLength ]; }), sourceImageUint8ArrayMap), MutableSparseMapService$WonderCommonlib.mapValid((function (param) { return /* tuple */[ param[0], param[1] ]; }), targetImageUint8ArrayMap)); } function isCubemapTextureImageUint8ArrayMapEqual(sourceImageUint8ArrayMap, targetImageUint8ArrayMap) { return Caml_obj.caml_equal(MutableSparseMapService$WonderCommonlib.mapValid((function (param) { var match = param[/* nzImageUint8ArrayData */5]; var match$1 = param[/* pzImageUint8ArrayData */4]; var match$2 = param[/* nyImageUint8ArrayData */3]; var match$3 = param[/* pyImageUint8ArrayData */2]; var match$4 = param[/* nxImageUint8ArrayData */1]; var match$5 = param[/* pxImageUint8ArrayData */0]; return /* record */[ /* pxImageUint8ArrayData : tuple */[ match$5[0], match$5[1].byteLength ], /* nxImageUint8ArrayData : tuple */[ match$4[0], match$4[1].byteLength ], /* pyImageUint8ArrayData : tuple */[ match$3[0], match$3[1].byteLength ], /* nyImageUint8ArrayData : tuple */[ match$2[0], match$2[1].byteLength ], /* pzImageUint8ArrayData : tuple */[ match$1[0], match$1[1].byteLength ], /* nzImageUint8ArrayData : tuple */[ match[0], match[1].byteLength ] ]; }), sourceImageUint8ArrayMap), MutableSparseMapService$WonderCommonlib.mapValid((function (data) { return data; }), targetImageUint8ArrayMap)); } var batchCreate = BatchCreateSystem$Wonderjs.batchCreate; exports.buildGLTFJsonOfMultiSceneGameObjects = buildGLTFJsonOfMultiSceneGameObjects; exports.testGLTF = testGLTF; exports.testGLBWithConfig = testGLBWithConfig; exports.testWDB = testWDB; exports.testGLB = testGLB; exports.getAllChildrenTransform = getAllChildrenTransform; exports.getAllSortedTransforms = getAllSortedTransforms; exports.getAllGameObjects = getAllGameObjects; exports.getAllChildrenData = getAllChildrenData; exports.getAllGameObjectsIsActive = getAllGameObjectsIsActive; exports.getAllGameObjectsIsRoot = getAllGameObjectsIsRoot; exports.getAllMeshRenderers = getAllMeshRenderers; exports.getAllDirectionLights = getAllDirectionLights; exports.getAllDirectionLightData = getAllDirectionLightData; exports.getAllPointLights = getAllPointLights; exports.getAllPointLightData = getAllPointLightData; exports.getAllGeometrys = getAllGeometrys; exports.getAllGeometryData = getAllGeometryData; exports.getAllScripts = getAllScripts; exports.batchCreate = batchCreate; exports.getAllBasicMaterials = getAllBasicMaterials; exports.getAllLightMaterials = getAllLightMaterials; exports.getAllDiffuseMaps = getAllDiffuseMaps; exports.isImageUint8ArrayMapEqual = isImageUint8ArrayMapEqual; exports.isCubemapTextureImageUint8ArrayMapEqual = isCubemapTextureImageUint8ArrayMapEqual; /* most Not a pure module */