< Summary

Class:DCL.Builder.CameraController
Assembly:BuilderInWorld
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/Cameras/CameraController.cs
Covered lines:0
Uncovered lines:42
Coverable lines:42
Total lines:109
Line coverage:0% (0 of 42)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CameraController()0%2100%
Initialize(...)0%12300%
Dispose()0%2100%
TakeSceneScreenshot(...)0%2100%
TakeSceneScreenshot(...)0%2100%
TakeSceneAerialScreenshot(...)0%2100%
TakeSceneScreenshotFromResetPosition(...)0%2100%
ActivateCamera(...)0%20400%
DeactivateCamera()0%12300%
GetLastScreenshot()0%2100%
GetInitialCameraPosition(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLPlugins/BuilderInWorld/Scripts/Cameras/CameraController.cs

#LineLine coverage
 1using System.Collections;
 2using System.Collections.Generic;
 3using DCL.Builder;
 4using DCL.Camera;
 5using DCL.CameraTool;
 6using DCL.Configuration;
 7using DCL.Controllers;
 8using DCL.Helpers;
 9using UnityEngine;
 10
 11namespace DCL.Builder
 12{
 13    public class CameraController : ICameraController
 14    {
 015        private float initialEagleCameraHeight = 10f;
 016        private float initialEagleCameraDistance = 10f;
 17
 18        private CameraMode.ModeId avatarCameraModeBeforeEditing;
 19        private Camera.CameraController cameraController;
 20        internal IFreeCameraMovement freeCameraController;
 21        internal IScreenshotCameraController screenshotCameraController;
 22        internal IContext context;
 23        internal Texture2D lastScreenshot;
 24
 25        internal Vector3 initialCameraPosition;
 26        internal Vector3 initialPointToLookAt;
 27
 28        public void Initialize(IContext context)
 29        {
 030            this.context = context;
 031            if (context.sceneReferences.cameraController != null)
 32            {
 033                if (context.sceneReferences.cameraController.GetComponent<Camera.CameraController>().TryGetCameraStateBy
 034                    freeCameraController = (FreeCameraMovement) cameraState;
 35
 036                cameraController = context.sceneReferences.cameraController.GetComponent<Camera.CameraController>();
 37            }
 38
 039            initialEagleCameraHeight = context.editorContext.godModeDynamicVariablesAsset.initialEagleCameraHeight;
 040            initialEagleCameraDistance = context.editorContext.godModeDynamicVariablesAsset.initialEagleCameraDistance;
 41
 042            screenshotCameraController = new ScreenshotCameraController();
 043            screenshotCameraController.Init(context);
 044        }
 45
 46        public void Dispose()
 47        {
 048            DeactivateCamera();
 049            screenshotCameraController.Dispose();
 050        }
 51
 52        public void TakeSceneScreenshot(IScreenshotCameraController.OnSnapshotsReady onSuccess)
 53        {
 054           screenshotCameraController.TakeSceneScreenshot(onSuccess);
 055        }
 56
 57        public void TakeSceneScreenshot(Vector3 camPosition, Vector3 pointToLookAt, int width, int height, IScreenshotCa
 58        {
 059            screenshotCameraController.TakeSceneScreenshot(camPosition,pointToLookAt,width,height,onSuccess);
 060        }
 61
 62        public void TakeSceneAerialScreenshot(IParcelScene parcelScene, IScreenshotCameraController.OnSnapshotsReady onS
 63        {
 064           screenshotCameraController.TakeSceneAerialScreenshot(parcelScene,onSuccess);
 065        }
 66
 67        public void TakeSceneScreenshotFromResetPosition(IScreenshotCameraController.OnSnapshotsReady onSuccess)
 68        {
 069           screenshotCameraController.TakeSceneScreenshot(initialCameraPosition,initialPointToLookAt,onSuccess);
 070        }
 71
 72        public void ActivateCamera(IParcelScene parcelScene)
 73        {
 074            freeCameraController.gameObject.SetActive(true);
 075            Vector3 pointToLookAt = BIWUtils.CalculateUnityMiddlePoint(parcelScene);
 076            Vector3 cameraPosition = GetInitialCameraPosition(parcelScene);
 77
 078            initialPointToLookAt = pointToLookAt;
 079            initialCameraPosition = cameraPosition;
 80
 081            freeCameraController.SetPosition(cameraPosition);
 082            freeCameraController.LookAt(pointToLookAt);
 083            freeCameraController.SetResetConfiguration(cameraPosition, pointToLookAt);
 84
 085            if (cameraController != null && cameraController.currentCameraState.cameraModeId != CameraMode.ModeId.Buildi
 086                avatarCameraModeBeforeEditing = cameraController.currentCameraState.cameraModeId;
 87
 088            cameraController?.SetCameraMode(CameraMode.ModeId.BuildingToolGodMode);
 089        }
 90
 91        public void DeactivateCamera()
 92        {
 093            if (!DataStore.i.common.isApplicationQuitting.Get())
 094                cameraController?.SetCameraMode(avatarCameraModeBeforeEditing);
 095        }
 96
 097        public Texture2D GetLastScreenshot() { return lastScreenshot; }
 98
 99        internal Vector3 GetInitialCameraPosition(IParcelScene parcelScene)
 100        {
 0101            Vector3 middlePoint = BIWUtils.CalculateUnityMiddlePoint(parcelScene);
 0102            Vector3 direction = (parcelScene.GetSceneTransform().position - middlePoint).normalized;
 103
 0104            return parcelScene.GetSceneTransform().position
 105                   + direction * initialEagleCameraDistance
 106                   + Vector3.up * initialEagleCameraHeight;
 107        }
 108    }
 109}