UNPKG

wonder.js

Version:
48 lines (42 loc) 3.41 kB
'use strict'; var Caml_array = require("bs-platform/lib/js/caml_array.js"); var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var GetAllComponentService$Wonderjs = require("../../../../primitive/component/GetAllComponentService.js"); var LookAtTransfromMainService$Wonderjs = require("../../transform/LookAtTransfromMainService.js"); var RecordTransformMainService$Wonderjs = require("../../transform/RecordTransformMainService.js"); var ModelMatrixTransformService$Wonderjs = require("../../../../record/main/transform/ModelMatrixTransformService.js"); var GetComponentGameObjectService$Wonderjs = require("../../../../record/main/gameObject/GetComponentGameObjectService.js"); var OperateArcballCameraControllerService$Wonderjs = require("../../../../record/main/camera_controller/arcball/OperateArcballCameraControllerService.js"); var GameObjectArcballCameraControllerService$Wonderjs = require("../../../../record/main/camera_controller/arcball/GameObjectArcballCameraControllerService.js"); var TargetArcballCameraControllerMainService$Wonderjs = require("./TargetArcballCameraControllerMainService.js"); function _updateTransform(cameraController, state) { var gameObjectRecord = state[/* gameObjectRecord */10]; var arcballCameraControllerRecord = state[/* arcballCameraControllerRecord */25]; var transformRecord = RecordTransformMainService$Wonderjs.getRecord(state); var transform = GetComponentGameObjectService$Wonderjs.unsafeGetTransformComponent(GameObjectArcballCameraControllerService$Wonderjs.unsafeGetGameObject(cameraController, arcballCameraControllerRecord), gameObjectRecord); var distance = OperateArcballCameraControllerService$Wonderjs.unsafeGetDistance(cameraController, arcballCameraControllerRecord); var phi = OperateArcballCameraControllerService$Wonderjs.unsafeGetPhi(cameraController, arcballCameraControllerRecord); var theta = OperateArcballCameraControllerService$Wonderjs.unsafeGetTheta(cameraController, arcballCameraControllerRecord); var match = TargetArcballCameraControllerMainService$Wonderjs.setAndGetTranslationTarget(cameraController, state); var target = match[0]; var newrecord = Caml_array.caml_array_dup(match[1]); newrecord[/* transformRecord */11] = ModelMatrixTransformService$Wonderjs.setLocalPositionByTuple(transform, /* tuple */[ distance * Math.cos(phi) * Math.sin(theta) + target[0], distance * Math.cos(theta) + target[1], distance * Math.sin(phi) * Math.sin(theta) + target[2] ], transformRecord); return LookAtTransfromMainService$Wonderjs.lookAt(transform, target, newrecord, undefined, /* () */0); } function _getAllArcballCameraControllers(state) { var arcballCameraControllerRecord = state[/* arcballCameraControllerRecord */25]; return GetAllComponentService$Wonderjs.getAllComponents(arcballCameraControllerRecord[/* index */0], arcballCameraControllerRecord[/* disposedIndexArray */19]); } function update(state) { return ArrayService$WonderCommonlib.reduceOneParam((function (state, cameraController) { return _updateTransform(cameraController, state); }), state, _getAllArcballCameraControllers(state)); } exports._updateTransform = _updateTransform; exports._getAllArcballCameraControllers = _getAllArcballCameraControllers; exports.update = update; /* GetAllComponentService-Wonderjs Not a pure module */