< Summary

Class:DCLServices.MapRendererV2.MapLayers.PointsOfInterest.SceneOfInterestMarker
Assembly:MapRendererV2
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/MapLayers/PointsOfInterest/SceneOfInterestMarker.cs
Covered lines:0
Uncovered lines:29
Coverable lines:29
Total lines:75
Line coverage:0% (0 of 29)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:12
Method coverage:0% (0 of 12)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SceneOfInterestMarker(...)0%2100%
Dispose()0%2100%
SetData(...)0%12300%
OnBecameVisible()0%6200%
OnBecameInvisible()0%2100%
SetZoom(...)0%6200%
ResetScale(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/MapLayers/PointsOfInterest/SceneOfInterestMarker.cs

#LineLine coverage
 1using DCLServices.MapRendererV2.CommonBehavior;
 2using DCLServices.MapRendererV2.Culling;
 3using MainScripts.DCL.Helpers.Utils;
 4using System;
 5using UnityEngine;
 6
 7namespace DCLServices.MapRendererV2.MapLayers.PointsOfInterest
 8{
 9    internal class SceneOfInterestMarker : ISceneOfInterestMarker
 10    {
 11        internal const int MAX_TITLE_LENGTH = 29;
 12
 13        private readonly IMapCullingController cullingController;
 14
 15        private MapMarkerPoolableBehavior<SceneOfInterestMarkerObject> poolableBehavior;
 16        private float currentBaseScale;
 17        private float currentNewScale;
 18
 019        public Vector3 CurrentPosition => poolableBehavior.currentPosition;
 20
 021        public bool IsVisible => poolableBehavior.isVisible;
 22
 023        public Vector2 Pivot => poolableBehavior.objectsPool.Prefab.pivot;
 24
 025        internal string title { get; private set; }
 26
 027        public SceneOfInterestMarker(IUnityObjectPool<SceneOfInterestMarkerObject> objectsPool, IMapCullingController cu
 28        {
 029            poolableBehavior = new MapMarkerPoolableBehavior<SceneOfInterestMarkerObject>(objectsPool);
 030            this.cullingController = cullingController;
 031        }
 32
 33        public void Dispose()
 34        {
 035            OnBecameInvisible();
 036            cullingController.StopTracking(this);
 037        }
 38
 39        public void SetData(string title, Vector3 position)
 40        {
 041            poolableBehavior.SetCurrentPosition(position);
 042            this.title = title.Length > MAX_TITLE_LENGTH ? title.Substring(0, MAX_TITLE_LENGTH) : title;
 043        }
 44
 45        public void OnBecameVisible()
 46        {
 047            poolableBehavior.OnBecameVisible().title.text = title;
 48
 049            if(currentBaseScale != 0)
 050                poolableBehavior.instance.SetScale(currentBaseScale, currentNewScale);
 051        }
 52
 53        public void OnBecameInvisible()
 54        {
 055            poolableBehavior.OnBecameInvisible();
 056        }
 57
 58        public void SetZoom(float baseScale, float baseZoom, float zoom)
 59        {
 060            currentBaseScale = baseScale;
 061            currentNewScale = Math.Max(zoom / baseZoom * baseScale, baseScale);
 62
 063            if (poolableBehavior.instance != null)
 064                poolableBehavior.instance.SetScale(currentBaseScale, currentNewScale);
 065        }
 66
 67        public void ResetScale(float scale)
 68        {
 069            currentNewScale = scale;
 70
 071            if (poolableBehavior.instance != null)
 072                poolableBehavior.instance.SetScale(scale, scale);
 073        }
 74    }
 75}