wonder.js
Version:
171 lines (160 loc) • 7.22 kB
JavaScript
;
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 OptionService$Wonderjs = require("../../service/atom/OptionService.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var TextureFormatService$Wonderjs = require("../../service/primitive/texture/TextureFormatService.js");
var BufferBasicSourceTextureService$Wonderjs = require("../../service/record/main/texture/source/basic_source/BufferBasicSourceTextureService.js");
var _buildBasicSourceTextureDefaultName = ConvertCommon$Wonderjs.buildDefaultBasicSourceTextureName;
var _buildCubemapTextureDefaultName = ConvertCommon$Wonderjs.buildDefaultCubemapTextureName;
function convertToBasicSourceTextures(gltf) {
var textures = gltf[/* textures */4];
if (textures !== undefined) {
var images = gltf[/* images */3];
return ArrayService$WonderCommonlib.reduceOneParami((function (arr, texture, index) {
var source = texture[/* source */1];
if (source !== undefined) {
var source$1 = source;
var extras = texture[/* extras */3];
var name = texture[/* name */2];
var match = ArrayService$Wonderjs.getNth(source$1, OptionService$Wonderjs.unsafeGet(images));
if (match !== undefined) {
var tmp;
if (extras !== undefined) {
tmp = extras[/* format */0];
} else {
var image = OptionService$Wonderjs.unsafeGet(images)[source$1];
tmp = TextureFormatService$Wonderjs.getFormatByMimeType(OptionService$Wonderjs.unsafeGet(image[/* mimeType */3]));
}
arr[index] = /* record */[
/* name */name !== undefined ? name : ConvertCommon$Wonderjs.buildDefaultBasicSourceTextureName(index),
/* format */tmp,
/* type_ */extras !== undefined ? extras[/* type_ */1] : BufferBasicSourceTextureService$Wonderjs.getDefaultType(/* () */0),
/* flipY */extras !== undefined ? extras[/* flipY */2] : false
];
return arr;
} else {
return arr;
}
} else {
return arr;
}
}), /* array */[], textures);
} else {
return /* array */[];
}
}
function convertToCubemapTextures(gltf) {
var extras = gltf[/* extras */15];
if (extras !== undefined) {
var cubemapTextures = extras[/* cubemapTextures */6];
if (cubemapTextures !== undefined) {
return ArrayService$WonderCommonlib.reduceOneParami((function (arr, texture, index) {
var name = texture[/* name */0];
return ArrayService$Wonderjs.push(/* record */[
/* name */name !== undefined ? name : ConvertCommon$Wonderjs.buildDefaultCubemapTextureName(index),
/* flipY */texture[/* flipY */2],
/* pxFormat */texture[/* pxFormat */9],
/* nxFormat */texture[/* nxFormat */10],
/* pyFormat */texture[/* pyFormat */11],
/* nyFormat */texture[/* nyFormat */12],
/* pzFormat */texture[/* pzFormat */13],
/* nzFormat */texture[/* nzFormat */14],
/* pxType */texture[/* pxType */15],
/* nxType */texture[/* nxType */16],
/* pyType */texture[/* pyType */17],
/* nyType */texture[/* nyType */18],
/* pzType */texture[/* pzType */19],
/* nzType */texture[/* nzType */20]
], arr);
}), /* array */[], cubemapTextures);
} else {
return /* array */[];
}
} else {
return /* array */[];
}
}
function _convertMagFilter(magFilter) {
if (magFilter !== undefined) {
var magFilter$1 = magFilter;
if (magFilter$1 !== 9728) {
if (magFilter$1 !== 9729) {
return Log$WonderLog.fatal(Log$WonderLog.buildFatalMessage("_convertMagFilter", "unknown magFilter: " + (String(magFilter$1) + ""), "", "", ""));
} else {
return /* Linear */1;
}
} else {
return /* Nearest */0;
}
} else {
return /* Linear */1;
}
}
function _convertMinFilter(minFilter) {
if (minFilter !== undefined) {
var minFilter$1 = minFilter;
var switcher = minFilter$1 - 9728 | 0;
if (switcher === 0 || switcher === 1) {
if (switcher !== 0) {
return /* Linear */1;
} else {
return /* Nearest */0;
}
} else {
var switcher$1 = switcher - 256 | 0;
if (switcher$1 > 3 || switcher$1 < 0) {
return Log$WonderLog.fatal(Log$WonderLog.buildFatalMessage("_convertMinFilter", "unknown minFilter: " + (String(minFilter$1) + ""), "", "", ""));
} else {
return switcher$1 + 2 | 0;
}
}
} else {
return /* Nearest */0;
}
}
function _convertWrap(wrap) {
if (wrap !== undefined) {
var wrap$1 = wrap;
if (wrap$1 !== 10497) {
if (wrap$1 !== 33071) {
if (wrap$1 !== 33648) {
return Log$WonderLog.fatal(Log$WonderLog.buildFatalMessage("_convertWrap", "unknown wrap: " + (String(wrap$1) + ""), "", "", ""));
} else {
return /* Mirrored_repeat */1;
}
} else {
return /* Clamp_to_edge */0;
}
} else {
return /* Repeat */2;
}
} else {
return /* Clamp_to_edge */0;
}
}
function convertToSamplers(param) {
var samplers = param[/* samplers */5];
if (samplers !== undefined) {
return ArrayService$WonderCommonlib.reduceOneParam((function (arr, param) {
return ArrayService$Wonderjs.push(/* record */[
/* magFilter */_convertMagFilter(param[/* magFilter */0]),
/* minFilter */_convertMinFilter(param[/* minFilter */1]),
/* wrapS */_convertWrap(param[/* wrapS */2]),
/* wrapT */_convertWrap(param[/* wrapT */3])
], arr);
}), /* array */[], samplers);
} else {
return /* array */[];
}
}
exports._buildBasicSourceTextureDefaultName = _buildBasicSourceTextureDefaultName;
exports._buildCubemapTextureDefaultName = _buildCubemapTextureDefaultName;
exports.convertToBasicSourceTextures = convertToBasicSourceTextures;
exports.convertToCubemapTextures = convertToCubemapTextures;
exports._convertMagFilter = _convertMagFilter;
exports._convertMinFilter = _convertMinFilter;
exports._convertWrap = _convertWrap;
exports.convertToSamplers = convertToSamplers;
/* Log-WonderLog Not a pure module */