< 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

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    {
 69687        Vector3[] viewCorners = new Vector3[4];
 69688        viewport.GetWorldCorners(viewCorners);
 9
 696810        Vector2 size = new Vector2(viewport.rect.size.x * viewport.lossyScale.x, viewport.rect.size.y * viewport.lossySc
 696811        Rect screenBounds = new Rect(viewCorners[0], size); // Screen space bounds (assumes camera renders across the en
 12
 696813        Vector3[] objectCorners = new Vector3[4];
 696814        rectTransform.GetWorldCorners(objectCorners);
 15
 696816        int visibleCorners = 0;
 17
 6968018        for (var i = 0; i < viewCorners.Length; i++)
 19        {
 2787220            if (i != viewCorners.Length - 1)
 2090421                Debug.DrawLine(viewCorners[i], viewCorners[i + 1], Color.blue, 1.0f);
 22        }
 23
 6968024        for (var i = 0; i < objectCorners.Length; i++) // For each corner in rectTransform
 25        {
 2787226            if (screenBounds.Contains(objectCorners[i])) // If the corner is inside the screen
 27            {
 2053428                visibleCorners++;
 29            }
 30        }
 31
 6968032        for (var i = 0; i < objectCorners.Length; i++) // For each corner in rectTransform
 33        {
 2787234            if (i != objectCorners.Length - 1)
 2090435                Debug.DrawLine(objectCorners[i], objectCorners[i + 1], visibleCorners > 0 ? Color.green : Color.red, 1.0
 36        }
 37
 696838        return visibleCorners;
 39    }
 40}