wonder.js
Version:
74 lines (69 loc) • 4.61 kB
JavaScript
'use strict';
var SceneAPI$Wonderjs = require("../../api/SceneAPI.js");
var Contract$WonderLog = require("wonder-log/lib/js/src/Contract.js");
var ArrayService$Wonderjs = require("../../service/atom/ArrayService.js");
var StateDataMain$Wonderjs = require("../../service/state/main/data/StateDataMain.js");
var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js");
var GenerateCommon$Wonderjs = require("./GenerateCommon.js");
var IsDebugMainService$Wonderjs = require("../../service/state/main/state/IsDebugMainService.js");
var OperatePointLightService$Wonderjs = require("../../service/record/main/light/point/OperatePointLightService.js");
var RecordPointLightMainService$Wonderjs = require("../../service/state/main/light/point/RecordPointLightMainService.js");
var OperateDirectionLightService$Wonderjs = require("../../service/record/main/light/direction/OperateDirectionLightService.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
var RecordDirectionLightMainService$Wonderjs = require("../../service/state/main/light/direction/RecordDirectionLightMainService.js");
function getAmbientLightIndex(lightDataArr) {
return lightDataArr.length - 1 | 0;
}
function build(lightDataMap, state) {
Contract$WonderLog.requireCheck((function (param) {
return GenerateCommon$Wonderjs.checkShouldHasNoSlot(lightDataMap);
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData));
var directionLightRecord = RecordDirectionLightMainService$Wonderjs.getRecord(state);
var pointLightRecord = RecordPointLightMainService$Wonderjs.getRecord(state);
return ArrayService$Wonderjs.push(/* record */[
/* type_ */"ambient",
/* color */SceneAPI$Wonderjs.getAmbientLightColor(state),
/* intensity */undefined,
/* constantAttenuation */undefined,
/* linearAttenuation */undefined,
/* quadraticAttenuation */undefined,
/* range */undefined
], MutableSparseMapService$WonderCommonlib.reduceValid((function (lightDataArr, param) {
var light = param[1];
var type_ = param[0];
switch (type_) {
case "directional" :
return ArrayService$Wonderjs.push(/* record */[
/* type_ */type_,
/* color */OperateDirectionLightService$Wonderjs.getColor(light, directionLightRecord),
/* intensity */OperateDirectionLightService$Wonderjs.getIntensity(light, directionLightRecord),
/* constantAttenuation */undefined,
/* linearAttenuation */undefined,
/* quadraticAttenuation */undefined,
/* range */undefined
], lightDataArr);
case "point" :
return ArrayService$Wonderjs.push(/* record */[
/* type_ */type_,
/* color */OperatePointLightService$Wonderjs.getColor(light, pointLightRecord),
/* intensity */OperatePointLightService$Wonderjs.getIntensity(light, pointLightRecord),
/* constantAttenuation */OperatePointLightService$Wonderjs.getConstant(light, pointLightRecord),
/* linearAttenuation */OperatePointLightService$Wonderjs.getLinear(light, pointLightRecord),
/* quadraticAttenuation */OperatePointLightService$Wonderjs.getQuadratic(light, pointLightRecord),
/* range */OperatePointLightService$Wonderjs.getRange(light, pointLightRecord)
], lightDataArr);
default:
throw [
Caml_builtin_exceptions.match_failure,
/* tuple */[
"BuildLightDataSystem.re",
23,
9
]
];
}
}), /* array */[], lightDataMap));
}
exports.getAmbientLightIndex = getAmbientLightIndex;
exports.build = build;
/* SceneAPI-Wonderjs Not a pure module */