wonder.js
Version:
75 lines (70 loc) • 3.95 kB
JavaScript
;
var Caml_array = require("bs-platform/lib/js/caml_array.js");
var TypeArrayService$Wonderjs = require("../../../primitive/buffer/TypeArrayService.js");
var RecordTransformMainService$Wonderjs = require("../transform/RecordTransformMainService.js");
function _restoreTypeArrays(currentTransformRecord, targetTransformRecord) {
var match = currentTransformRecord[/* localPositions */3] === targetTransformRecord[/* localPositions */3] && currentTransformRecord[/* localRotations */4] === targetTransformRecord[/* localRotations */4] && currentTransformRecord[/* localScales */5] === targetTransformRecord[/* localScales */5] && currentTransformRecord[/* localToWorldMatrices */2] === targetTransformRecord[/* localToWorldMatrices */2];
if (match) {
return /* tuple */[
currentTransformRecord,
targetTransformRecord
];
} else {
RecordTransformMainService$Wonderjs.setAllTypeArrDataToDefault(currentTransformRecord[/* index */0], /* tuple */[
currentTransformRecord[/* defaultLocalToWorldMatrix */11],
currentTransformRecord[/* defaultLocalPosition */12],
currentTransformRecord[/* defaultLocalRotation */13],
currentTransformRecord[/* defaultLocalScale */14]
], /* tuple */[
currentTransformRecord[/* localToWorldMatrices */2],
currentTransformRecord[/* localPositions */3],
currentTransformRecord[/* localRotations */4],
currentTransformRecord[/* localScales */5]
]);
TypeArrayService$Wonderjs.fillFloat32ArrayWithFloat32Array(/* tuple */[
currentTransformRecord[/* localPositions */3],
0
], /* tuple */[
targetTransformRecord[/* localPositions */3],
0
], targetTransformRecord[/* localPositions */3].length);
TypeArrayService$Wonderjs.fillFloat32ArrayWithFloat32Array(/* tuple */[
currentTransformRecord[/* localRotations */4],
0
], /* tuple */[
targetTransformRecord[/* localRotations */4],
0
], targetTransformRecord[/* localRotations */4].length);
TypeArrayService$Wonderjs.fillFloat32ArrayWithFloat32Array(/* tuple */[
currentTransformRecord[/* localScales */5],
0
], /* tuple */[
targetTransformRecord[/* localScales */5],
0
], targetTransformRecord[/* localScales */5].length);
TypeArrayService$Wonderjs.fillFloat32ArrayWithFloat32Array(/* tuple */[
currentTransformRecord[/* localToWorldMatrices */2],
0
], /* tuple */[
targetTransformRecord[/* localToWorldMatrices */2],
0
], targetTransformRecord[/* localToWorldMatrices */2].length);
return /* tuple */[
currentTransformRecord,
targetTransformRecord
];
}
}
function restore(currentState, targetState) {
var currentTransformRecord = RecordTransformMainService$Wonderjs.getRecord(currentState);
var targetTransformRecord = RecordTransformMainService$Wonderjs.getRecord(targetState);
var match = _restoreTypeArrays(currentTransformRecord, targetTransformRecord);
var currentTransformRecord$1 = match[0];
var newrecord = Caml_array.caml_array_dup(targetState);
var newrecord$1 = Caml_array.caml_array_dup(match[1]);
newrecord[/* transformRecord */11] = (newrecord$1[/* buffer */1] = currentTransformRecord$1[/* buffer */1], newrecord$1[/* localToWorldMatrices */2] = currentTransformRecord$1[/* localToWorldMatrices */2], newrecord$1[/* localPositions */3] = currentTransformRecord$1[/* localPositions */3], newrecord$1[/* localRotations */4] = currentTransformRecord$1[/* localRotations */4], newrecord$1[/* localScales */5] = currentTransformRecord$1[/* localScales */5], newrecord$1);
return newrecord;
}
exports._restoreTypeArrays = _restoreTypeArrays;
exports.restore = restore;
/* TypeArrayService-Wonderjs Not a pure module */