< Summary

Class:Builder.DCLBuilderRaycast
Assembly:Builder
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Builder/Scripts/DCLBuilderRaycast.cs
Covered lines:7
Uncovered lines:26
Coverable lines:33
Total lines:96
Line coverage:21.2% (7 of 33)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%110100%
SetEntityHitPlane(...)0%2100%
Raycast(...)0%12300%
Raycast(...)0%6200%
GetMouseRay(...)0%110100%
RaycastToGizmos(...)0%110100%
RaycastToGizmos(...)0%110100%
RaycastToGround(...)0%2100%
RaycastToGround(...)0%6200%
RaycastToEntityHitPlane(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Builder/Scripts/DCLBuilderRaycast.cs

#LineLine coverage
 1using UnityEngine;
 2using DCL.Controllers;
 3using DCL.Components;
 4
 5namespace Builder
 6{
 7    public class DCLBuilderRaycast : MonoBehaviour
 8    {
 9        public const string LAYER_GIZMOS = "Gizmo";
 10        public const string LAYER_SELECTION = "Selection";
 11
 12        public Camera builderCamera;
 13
 14        private const float RAYCAST_MAX_DISTANCE = 10000f;
 15
 016        public LayerMask defaultMask { get; private set; }
 017        public LayerMask gizmoMask { get; private set; }
 18
 19        private Plane groundPlane;
 20        private Plane entityHitPlane;
 21
 22        private void Awake()
 23        {
 124            defaultMask = LayerMask.GetMask(DCLBuilderSelectionCollider.LAYER_BUILDER_POINTER_CLICK);
 125            gizmoMask = LayerMask.GetMask(LAYER_GIZMOS);
 26
 127            groundPlane = new Plane(Vector3.up, Vector3.zero);
 128        }
 29
 030        public void SetEntityHitPlane(float height) { entityHitPlane = new Plane(Vector3.up, new Vector3(0, height, 0));
 31
 32        public bool Raycast(Vector3 mousePosition, LayerMask mask, out RaycastHit hitInfo, bool checkGizmo = false)
 33        {
 034            if (checkGizmo)
 35            {
 036                if (Raycast(mousePosition, gizmoMask, out hitInfo))
 37                {
 038                    return true;
 39                }
 40            }
 41
 042            return Physics.Raycast(GetMouseRay(mousePosition), out hitInfo, RAYCAST_MAX_DISTANCE, mask);
 43        }
 44
 45        public bool Raycast(Vector3 mousePosition, LayerMask mask, out RaycastHit hitInfo, System.Func<RaycastHit[], Ray
 46        {
 47            RaycastHit[] hits;
 048            hits = Physics.RaycastAll(GetMouseRay(mousePosition), RAYCAST_MAX_DISTANCE, mask);
 049            if (hits.Length > 0)
 50            {
 051                hitInfo = hitComparer(hits);
 052                return true;
 53            }
 054            hitInfo = new RaycastHit();
 055            return false;
 56        }
 57
 1158        public Ray GetMouseRay(Vector3 mousePosition) { return builderCamera.ScreenPointToRay(mousePosition); }
 59
 1160        public bool RaycastToGizmos(Ray ray, out RaycastHit hitInfo) { return Physics.Raycast(ray, out hitInfo, RAYCAST_
 61
 1162        public bool RaycastToGizmos(Vector3 mousePosition, out RaycastHit hitInfo) { return RaycastToGizmos(GetMouseRay(
 63
 64        public bool RaycastToGround(Vector3 mousePosition, out Vector3 hitPosition)
 65        {
 066            Ray ray = GetMouseRay(mousePosition);
 067            return RaycastToGround(ray, out hitPosition);
 68        }
 69
 70        public bool RaycastToGround(Ray ray, out Vector3 hitPosition)
 71        {
 072            float raycastDistance = 0.0f;
 73
 074            if (groundPlane.Raycast(ray, out raycastDistance))
 75            {
 076                hitPosition = ray.GetPoint(raycastDistance);
 077                return true;
 78            }
 079            hitPosition = Vector3.zero;
 080            return false;
 81        }
 82
 83        public Vector3 RaycastToEntityHitPlane(Vector3 mousePosition)
 84        {
 085            Ray ray = GetMouseRay(mousePosition);
 086            float raycastDistance = 0.0f;
 87
 088            if (entityHitPlane.Raycast(ray, out raycastDistance))
 89            {
 090                return ray.GetPoint(raycastDistance);
 91            }
 92
 093            return Vector3.zero;
 94        }
 95    }
 96}