< Summary

Class:RectTransformExtensions
Assembly:Utils
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/Utils/RectTransformExtensions.cs
Covered lines:17
Uncovered lines:0
Coverable lines:17
Total lines:40
Line coverage:100% (17 of 17)
Covered branches:0
Total branches:0
Covered methods:1
Total methods:1
Method coverage:100% (1 of 1)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CountCornersVisibleFrom(...)0%880100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/Utils/RectTransformExtensions.cs

#LineLine coverage
 1using UnityEngine;
 2
 3public static class RectTransformExtensions
 4{
 5    public static int CountCornersVisibleFrom(this RectTransform rectTransform, RectTransform viewport)
 6    {
 197        Vector3[] viewCorners = new Vector3[4];
 198        viewport.GetWorldCorners(viewCorners);
 9
 1910        Vector2 size = new Vector2(viewport.rect.size.x * viewport.lossyScale.x, viewport.rect.size.y * viewport.lossySc
 1911        Rect screenBounds = new Rect(viewCorners[0], size); // Screen space bounds (assumes camera renders across the en
 12
 1913        Vector3[] objectCorners = new Vector3[4];
 1914        rectTransform.GetWorldCorners(objectCorners);
 15
 1916        int visibleCorners = 0;
 17
 19018        for (var i = 0; i < viewCorners.Length; i++)
 19        {
 7620            if (i != viewCorners.Length - 1)
 5721                Debug.DrawLine(viewCorners[i], viewCorners[i + 1], Color.blue, 1.0f);
 22        }
 23
 19024        for (var i = 0; i < objectCorners.Length; i++) // For each corner in rectTransform
 25        {
 7626            if (screenBounds.Contains(objectCorners[i])) // If the corner is inside the screen
 27            {
 2828                visibleCorners++;
 29            }
 30        }
 31
 19032        for (var i = 0; i < objectCorners.Length; i++) // For each corner in rectTransform
 33        {
 7634            if (i != objectCorners.Length - 1)
 5735                Debug.DrawLine(objectCorners[i], objectCorners[i + 1], visibleCorners > 0 ? Color.green : Color.red, 1.0
 36        }
 37
 1938        return visibleCorners;
 39    }
 40}