wonder.js
Version:
160 lines (147 loc) • 8.93 kB
JavaScript
;
var Js_option = require("bs-platform/lib/js/js_option.js");
var Caml_array = require("bs-platform/lib/js/caml_array.js");
var OptionService$Wonderjs = require("../../../../../atom/OptionService.js");
var GroupTextureMainService$Wonderjs = require("../../../texture/GroupTextureMainService.js");
var ManagerMapMaterialMainService$Wonderjs = require("../../mapManager/ManagerMapMaterialMainService.js");
var RecordLightMaterialMainService$Wonderjs = require("../RecordLightMaterialMainService.js");
var OperateTypeArrayAllLightMaterialService$Wonderjs = require("../../../../../record/all/material/light/OperateTypeArrayAllLightMaterialService.js");
function getDiffuseMap(material, state) {
var match = RecordLightMaterialMainService$Wonderjs.getRecord(state);
return ManagerMapMaterialMainService$Wonderjs.getMap(material, OperateTypeArrayAllLightMaterialService$Wonderjs.getTextureIndex, match[/* diffuseTextureIndices */6]);
}
function unsafeGetDiffuseMap(material, state) {
return OptionService$Wonderjs.unsafeGet(getDiffuseMap(material, state));
}
function setDiffuseMap(material, texture, state) {
var state$1 = GroupTextureMainService$Wonderjs.addMaterial(/* tuple */[
material,
/* LightMaterial */1
], texture, state);
var lightMaterialRecord = RecordLightMaterialMainService$Wonderjs.getRecord(state$1);
var diffuseTextureIndices = ManagerMapMaterialMainService$Wonderjs.setMap(material, texture, OperateTypeArrayAllLightMaterialService$Wonderjs.setTextureIndex, lightMaterialRecord[/* diffuseTextureIndices */6]);
var newrecord = Caml_array.caml_array_dup(state$1);
newrecord[/* lightMaterialRecord */16] = /* record */[
/* index */lightMaterialRecord[/* index */0],
/* buffer */lightMaterialRecord[/* buffer */1],
/* shaderIndices */lightMaterialRecord[/* shaderIndices */2],
/* diffuseColors */lightMaterialRecord[/* diffuseColors */3],
/* specularColors */lightMaterialRecord[/* specularColors */4],
/* shininess */lightMaterialRecord[/* shininess */5],
/* diffuseTextureIndices */diffuseTextureIndices,
/* specularTextureIndices */lightMaterialRecord[/* specularTextureIndices */7],
/* defaultDiffuseColor */lightMaterialRecord[/* defaultDiffuseColor */8],
/* defaultSpecularColor */lightMaterialRecord[/* defaultSpecularColor */9],
/* defaultShininess */lightMaterialRecord[/* defaultShininess */10],
/* gameObjectsMap */lightMaterialRecord[/* gameObjectsMap */11],
/* disposedIndexArray */lightMaterialRecord[/* disposedIndexArray */12],
/* nameMap */lightMaterialRecord[/* nameMap */13],
/* materialArrayForWorkerInit */lightMaterialRecord[/* materialArrayForWorkerInit */14]
];
return newrecord;
}
function hasDiffuseMap(material, state) {
return Js_option.isSome(getDiffuseMap(material, state));
}
function removeDiffuseMap(material, state) {
var state$1 = GroupTextureMainService$Wonderjs.removeMaterial(/* tuple */[
material,
/* LightMaterial */1
], OptionService$Wonderjs.unsafeGet(getDiffuseMap(material, state)), state);
var lightMaterialRecord = RecordLightMaterialMainService$Wonderjs.getRecord(state$1);
var diffuseTextureIndices = ManagerMapMaterialMainService$Wonderjs.removeMap(material, OperateTypeArrayAllLightMaterialService$Wonderjs.setTextureIndex, lightMaterialRecord[/* diffuseTextureIndices */6]);
var newrecord = Caml_array.caml_array_dup(state$1);
newrecord[/* lightMaterialRecord */16] = /* record */[
/* index */lightMaterialRecord[/* index */0],
/* buffer */lightMaterialRecord[/* buffer */1],
/* shaderIndices */lightMaterialRecord[/* shaderIndices */2],
/* diffuseColors */lightMaterialRecord[/* diffuseColors */3],
/* specularColors */lightMaterialRecord[/* specularColors */4],
/* shininess */lightMaterialRecord[/* shininess */5],
/* diffuseTextureIndices */diffuseTextureIndices,
/* specularTextureIndices */lightMaterialRecord[/* specularTextureIndices */7],
/* defaultDiffuseColor */lightMaterialRecord[/* defaultDiffuseColor */8],
/* defaultSpecularColor */lightMaterialRecord[/* defaultSpecularColor */9],
/* defaultShininess */lightMaterialRecord[/* defaultShininess */10],
/* gameObjectsMap */lightMaterialRecord[/* gameObjectsMap */11],
/* disposedIndexArray */lightMaterialRecord[/* disposedIndexArray */12],
/* nameMap */lightMaterialRecord[/* nameMap */13],
/* materialArrayForWorkerInit */lightMaterialRecord[/* materialArrayForWorkerInit */14]
];
return newrecord;
}
function getSpecularMap(material, state) {
var match = RecordLightMaterialMainService$Wonderjs.getRecord(state);
return ManagerMapMaterialMainService$Wonderjs.getMap(material, OperateTypeArrayAllLightMaterialService$Wonderjs.getTextureIndex, match[/* specularTextureIndices */7]);
}
function unsafeGetSpecularMap(material, state) {
return OptionService$Wonderjs.unsafeGet(getSpecularMap(material, state));
}
function setSpecularMap(material, texture, state) {
var state$1 = GroupTextureMainService$Wonderjs.addMaterial(/* tuple */[
material,
/* LightMaterial */1
], texture, state);
var lightMaterialRecord = RecordLightMaterialMainService$Wonderjs.getRecord(state$1);
var specularTextureIndices = ManagerMapMaterialMainService$Wonderjs.setMap(material, texture, OperateTypeArrayAllLightMaterialService$Wonderjs.setTextureIndex, lightMaterialRecord[/* specularTextureIndices */7]);
var newrecord = Caml_array.caml_array_dup(state$1);
newrecord[/* lightMaterialRecord */16] = /* record */[
/* index */lightMaterialRecord[/* index */0],
/* buffer */lightMaterialRecord[/* buffer */1],
/* shaderIndices */lightMaterialRecord[/* shaderIndices */2],
/* diffuseColors */lightMaterialRecord[/* diffuseColors */3],
/* specularColors */lightMaterialRecord[/* specularColors */4],
/* shininess */lightMaterialRecord[/* shininess */5],
/* diffuseTextureIndices */lightMaterialRecord[/* diffuseTextureIndices */6],
/* specularTextureIndices */specularTextureIndices,
/* defaultDiffuseColor */lightMaterialRecord[/* defaultDiffuseColor */8],
/* defaultSpecularColor */lightMaterialRecord[/* defaultSpecularColor */9],
/* defaultShininess */lightMaterialRecord[/* defaultShininess */10],
/* gameObjectsMap */lightMaterialRecord[/* gameObjectsMap */11],
/* disposedIndexArray */lightMaterialRecord[/* disposedIndexArray */12],
/* nameMap */lightMaterialRecord[/* nameMap */13],
/* materialArrayForWorkerInit */lightMaterialRecord[/* materialArrayForWorkerInit */14]
];
return newrecord;
}
function hasSpecularMap(material, state) {
return Js_option.isSome(getSpecularMap(material, state));
}
function removeSpecularMap(material, state) {
var state$1 = GroupTextureMainService$Wonderjs.removeMaterial(/* tuple */[
material,
/* LightMaterial */1
], OptionService$Wonderjs.unsafeGet(getSpecularMap(material, state)), state);
var lightMaterialRecord = RecordLightMaterialMainService$Wonderjs.getRecord(state$1);
var specularTextureIndices = ManagerMapMaterialMainService$Wonderjs.removeMap(material, OperateTypeArrayAllLightMaterialService$Wonderjs.setTextureIndex, lightMaterialRecord[/* specularTextureIndices */7]);
var newrecord = Caml_array.caml_array_dup(state$1);
newrecord[/* lightMaterialRecord */16] = /* record */[
/* index */lightMaterialRecord[/* index */0],
/* buffer */lightMaterialRecord[/* buffer */1],
/* shaderIndices */lightMaterialRecord[/* shaderIndices */2],
/* diffuseColors */lightMaterialRecord[/* diffuseColors */3],
/* specularColors */lightMaterialRecord[/* specularColors */4],
/* shininess */lightMaterialRecord[/* shininess */5],
/* diffuseTextureIndices */lightMaterialRecord[/* diffuseTextureIndices */6],
/* specularTextureIndices */specularTextureIndices,
/* defaultDiffuseColor */lightMaterialRecord[/* defaultDiffuseColor */8],
/* defaultSpecularColor */lightMaterialRecord[/* defaultSpecularColor */9],
/* defaultShininess */lightMaterialRecord[/* defaultShininess */10],
/* gameObjectsMap */lightMaterialRecord[/* gameObjectsMap */11],
/* disposedIndexArray */lightMaterialRecord[/* disposedIndexArray */12],
/* nameMap */lightMaterialRecord[/* nameMap */13],
/* materialArrayForWorkerInit */lightMaterialRecord[/* materialArrayForWorkerInit */14]
];
return newrecord;
}
exports.getDiffuseMap = getDiffuseMap;
exports.unsafeGetDiffuseMap = unsafeGetDiffuseMap;
exports.setDiffuseMap = setDiffuseMap;
exports.hasDiffuseMap = hasDiffuseMap;
exports.removeDiffuseMap = removeDiffuseMap;
exports.getSpecularMap = getSpecularMap;
exports.unsafeGetSpecularMap = unsafeGetSpecularMap;
exports.setSpecularMap = setSpecularMap;
exports.hasSpecularMap = hasSpecularMap;
exports.removeSpecularMap = removeSpecularMap;
/* OptionService-Wonderjs Not a pure module */