wonder.js
Version:
45 lines (39 loc) • 3.13 kB
JavaScript
'use strict';
var Caml_array = require("bs-platform/lib/js/caml_array.js");
var SceneAPI$Wonderjs = require("../../api/SceneAPI.js");
var OptionService$Wonderjs = require("../../service/atom/OptionService.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.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 RecordDirectionLightMainService$Wonderjs = require("../../service/state/main/light/direction/RecordDirectionLightMainService.js");
function batchSetDirectionLightData(param, directionLightArr, state) {
return ArrayService$WonderCommonlib.reduceOneParami((function (state, param, index) {
var index$1 = Caml_array.caml_array_get(directionLightArr, index);
var newrecord = Caml_array.caml_array_dup(state);
newrecord[/* directionLightRecord */21] = OperateDirectionLightService$Wonderjs.setIntensity(index$1, param[/* intensity */1], OperateDirectionLightService$Wonderjs.setColor(index$1, param[/* color */0], RecordDirectionLightMainService$Wonderjs.getRecord(state)));
return newrecord;
}), state, param[/* directionLights */11]);
}
function batchSetPointLightData(param, pointLightArr, state) {
return ArrayService$WonderCommonlib.reduceOneParami((function (state, param, index) {
var index$1 = Caml_array.caml_array_get(pointLightArr, index);
var newrecord = Caml_array.caml_array_dup(state);
newrecord[/* pointLightRecord */22] = OperatePointLightService$Wonderjs.setRange(index$1, param[/* range */5], OperatePointLightService$Wonderjs.setQuadratic(index$1, param[/* quadraticAttenuation */4], OperatePointLightService$Wonderjs.setLinear(index$1, param[/* linearAttenuation */3], OperatePointLightService$Wonderjs.setConstant(index$1, param[/* constantAttenuation */2], OperatePointLightService$Wonderjs.setIntensity(index$1, param[/* intensity */1], OperatePointLightService$Wonderjs.setColor(index$1, param[/* color */0], RecordPointLightMainService$Wonderjs.getRecord(state)))))));
return newrecord;
}), state, param[/* pointLights */12]);
}
function setAmbientLightData(param, state) {
var optionalAmbientLight = param[/* scene */1][/* ambientLight */1];
var match = OptionService$Wonderjs.isJsonSerializedValueNone(optionalAmbientLight);
if (match) {
return state;
} else {
var match$1 = OptionService$Wonderjs.unsafeGetJsonSerializedValue(optionalAmbientLight);
return SceneAPI$Wonderjs.setAmbientLightColor(match$1[/* color */0], state);
}
}
exports.batchSetDirectionLightData = batchSetDirectionLightData;
exports.batchSetPointLightData = batchSetPointLightData;
exports.setAmbientLightData = setAmbientLightData;
/* SceneAPI-Wonderjs Not a pure module */