wonder.js
Version:
55 lines (49 loc) • 3.95 kB
JavaScript
'use strict';
var Log$WonderLog = require("wonder-log/lib/js/src/Log.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 GenerateCommon$Wonderjs = require("./GenerateCommon.js");
var IsDebugMainService$Wonderjs = require("../../service/state/main/state/IsDebugMainService.js");
var ActiveBasicCameraViewService$Wonderjs = require("../../service/record/main/basic_camera_view/ActiveBasicCameraViewService.js");
var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js");
var FrustumPerspectiveCameraProjectionService$Wonderjs = require("../../service/record/main/perspective_camera_projection/FrustumPerspectiveCameraProjectionService.js");
function buildBasicCameraViewData(cameraDataMap, state) {
var basicCameraViewRecord = state[/* basicCameraViewRecord */13];
Contract$WonderLog.requireCheck((function (param) {
return GenerateCommon$Wonderjs.checkShouldHasNoSlot(cameraDataMap);
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData));
return Contract$WonderLog.ensureCheck((function (cameraDataArr) {
return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage("has at most one active", "not"), (function (param) {
return Contract$WonderLog.Operators[/* <= */11](cameraDataArr.filter((function (param) {
return param[/* isActive */0] === true;
})).length, 1);
}));
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData), MutableSparseMapService$WonderCommonlib.reduceValid((function (cameraDataArr, basicCameraView) {
return ArrayService$Wonderjs.push(/* record */[/* isActive */ActiveBasicCameraViewService$Wonderjs.isActive(basicCameraView, basicCameraViewRecord)], cameraDataArr);
}), /* array */[], cameraDataMap));
}
function _convertDegreeToRadians(angle) {
return angle * Math.PI / 180;
}
function buildCameraProjectionData(cameraDataMap, state) {
var perspectiveCameraProjectionRecord = state[/* perspectiveCameraProjectionRecord */14];
Contract$WonderLog.requireCheck((function (param) {
return GenerateCommon$Wonderjs.checkShouldHasNoSlot(cameraDataMap);
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData));
return MutableSparseMapService$WonderCommonlib.reduceValid((function (cameraDataArr, perspectiveCameraProjection) {
return ArrayService$Wonderjs.push(/* record */[
/* type_ */"perspective",
/* perspective : record */[
/* near */FrustumPerspectiveCameraProjectionService$Wonderjs.unsafeGetNear(perspectiveCameraProjection, perspectiveCameraProjectionRecord),
/* far */FrustumPerspectiveCameraProjectionService$Wonderjs.getFar(perspectiveCameraProjection, perspectiveCameraProjectionRecord),
/* fovy */_convertDegreeToRadians(FrustumPerspectiveCameraProjectionService$Wonderjs.unsafeGetFovy(perspectiveCameraProjection, perspectiveCameraProjectionRecord)),
/* aspect */FrustumPerspectiveCameraProjectionService$Wonderjs.getAspect(perspectiveCameraProjection, perspectiveCameraProjectionRecord)
]
], cameraDataArr);
}), /* array */[], cameraDataMap);
}
exports.buildBasicCameraViewData = buildBasicCameraViewData;
exports._convertDegreeToRadians = _convertDegreeToRadians;
exports.buildCameraProjectionData = buildCameraProjectionData;
/* Log-WonderLog Not a pure module */