< 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    {
 6647        Vector3[] viewCorners = new Vector3[4];
 6648        viewport.GetWorldCorners(viewCorners);
 9
 66410        Vector2 size = new Vector2(viewport.rect.size.x * viewport.lossyScale.x, viewport.rect.size.y * viewport.lossySc
 66411        Rect screenBounds = new Rect(viewCorners[0], size); // Screen space bounds (assumes camera renders across the en
 12
 66413        Vector3[] objectCorners = new Vector3[4];
 66414        rectTransform.GetWorldCorners(objectCorners);
 15
 66416        int visibleCorners = 0;
 17
 664018        for (var i = 0; i < viewCorners.Length; i++)
 19        {
 265620            if (i != viewCorners.Length - 1)
 199221                Debug.DrawLine(viewCorners[i], viewCorners[i + 1], Color.blue, 1.0f);
 22        }
 23
 664024        for (var i = 0; i < objectCorners.Length; i++) // For each corner in rectTransform
 25        {
 265626            if (screenBounds.Contains(objectCorners[i])) // If the corner is inside the screen
 27            {
 198428                visibleCorners++;
 29            }
 30        }
 31
 664032        for (var i = 0; i < objectCorners.Length; i++) // For each corner in rectTransform
 33        {
 265634            if (i != objectCorners.Length - 1)
 199235                Debug.DrawLine(objectCorners[i], objectCorners[i + 1], visibleCorners > 0 ? Color.green : Color.red, 1.0
 36        }
 37
 66438        return visibleCorners;
 39    }
 40}