UNPKG

wonder.js

Version:
121 lines (108 loc) 4.81 kB
'use strict'; var Caml_array = require("bs-platform/lib/js/caml_array.js"); var Log$WonderLog = require("wonder-log/lib/js/src/Log.js"); var ArrayService$Wonderjs = require("../../service/atom/ArrayService.js"); var ConvertCommon$Wonderjs = require("./ConvertCommon.js"); var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var _buildDefaultBasicMaterialName = ConvertCommon$Wonderjs.buildDefaultBasicMaterialName; function _convertColor(colorFactor) { if (colorFactor !== undefined) { var colorFactor$1 = colorFactor; return /* array */[ Caml_array.caml_array_get(colorFactor$1, 0), Caml_array.caml_array_get(colorFactor$1, 1), Caml_array.caml_array_get(colorFactor$1, 2) ]; } else { return /* array */[ 1, 1, 1 ]; } } function convertToBasicMaterials(param) { var extras = param[/* extras */15]; if (extras !== undefined) { var basicMaterials = extras[/* basicMaterials */3]; if (basicMaterials !== undefined) { return ArrayService$WonderCommonlib.reduceOneParami((function (arr, param, index) { var name = param[/* name */1]; return ArrayService$Wonderjs.push(/* record */[ /* color */_convertColor(param[/* colorFactor */0]), /* name */name !== undefined ? name : ConvertCommon$Wonderjs.buildDefaultBasicMaterialName(index) ], arr); }), /* array */[], basicMaterials); } else { return /* array */[]; } } else { return /* array */[]; } } var _buildDefaultLightMaterialName = ConvertCommon$Wonderjs.buildDefaultLightMaterialName; function _convertPBRData(name, diffuseColorFactor, arr, index) { return ArrayService$Wonderjs.push(/* record */[ /* diffuseColor */_convertColor(diffuseColorFactor), /* name */name !== undefined ? name : ConvertCommon$Wonderjs.buildDefaultLightMaterialName(index) ], arr); } function _convertMetallicRoughness(name, pbrMetallicRoughness, arr, index) { if (pbrMetallicRoughness !== undefined) { return _convertPBRData(name, pbrMetallicRoughness[/* baseColorFactor */0], arr, index); } else { return Log$WonderLog.fatal(Log$WonderLog.buildFatalMessage("_convertMetallicRoughness", "pbrMetallicRoughness shouldn\'t be None", "", "", "")); } } function convertToLightMaterials(param) { var materials = param[/* materials */12]; if (materials !== undefined) { return ArrayService$WonderCommonlib.reduceOneParami((function (arr, param, index) { var extensions = param[/* extensions */2]; var name = param[/* name */1]; var pbrMetallicRoughness = param[/* pbrMetallicRoughness */0]; if (extensions !== undefined) { var khr_materials_pbrSpecularGlossiness = extensions[/* khr_materials_pbrSpecularGlossiness */0]; if (khr_materials_pbrSpecularGlossiness !== undefined) { return _convertPBRData(name, khr_materials_pbrSpecularGlossiness[/* diffuseFactor */0], arr, index); } else { return _convertMetallicRoughness(name, pbrMetallicRoughness, arr, index); } } else { return _convertMetallicRoughness(name, pbrMetallicRoughness, arr, index); } }), /* array */[], materials); } else { return /* array */[]; } } function _getLightMaterialOfMesh(mesh, meshes) { if (mesh !== undefined) { var meshData = meshes[mesh]; return ConvertCommon$Wonderjs.getPrimitiveData(meshData[/* primitives */0])[/* material */2]; } } function getLightMaterialOfNode(param, meshes) { var extras = param[/* extras */8]; var mesh = param[/* mesh */2]; if (extras !== undefined) { var lightMaterial = extras[/* lightMaterial */3]; if (lightMaterial !== undefined) { return lightMaterial; } else { return _getLightMaterialOfMesh(mesh, meshes); } } else { return _getLightMaterialOfMesh(mesh, meshes); } } exports._buildDefaultBasicMaterialName = _buildDefaultBasicMaterialName; exports._convertColor = _convertColor; exports.convertToBasicMaterials = convertToBasicMaterials; exports._buildDefaultLightMaterialName = _buildDefaultLightMaterialName; exports._convertPBRData = _convertPBRData; exports._convertMetallicRoughness = _convertMetallicRoughness; exports.convertToLightMaterials = convertToLightMaterials; exports._getLightMaterialOfMesh = _getLightMaterialOfMesh; exports.getLightMaterialOfNode = getLightMaterialOfNode; /* Log-WonderLog Not a pure module */