< Summary

Class:AvatarAnchorPoints
Assembly:AvatarAnchorPoints
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/AvatarAnchorPoints/Implementation/AvatarAnchorPoints.cs
Covered lines:2
Uncovered lines:17
Coverable lines:19
Total lines:74
Line coverage:10.5% (2 of 19)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:4
Method coverage:50% (2 of 4)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
AvatarAnchorPoints()0%110100%
AvatarAnchorPoints()0%110100%
Prepare(...)0%30500%
GetTransform(...)0%56700%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/AvatarAnchorPoints/Implementation/AvatarAnchorPoints.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using UnityEngine;
 3
 4public class AvatarAnchorPoints : IAvatarAnchorPoints
 5{
 16    private static readonly Dictionary<AvatarAnchorPointIds, string> boneMapping = new ()
 7    {
 8        { AvatarAnchorPointIds.LeftHand, "Avatar_LeftHand" },
 9        { AvatarAnchorPointIds.RightHand, "Avatar_RightHand" },
 10        { AvatarAnchorPointIds.Head, "Avatar_Head" },
 11        { AvatarAnchorPointIds.Neck, "Avatar_Neck" },
 12        { AvatarAnchorPointIds.Spine, "Avatar_Spine" },
 13        { AvatarAnchorPointIds.Spine1, "Avatar_Spine1" },
 14        { AvatarAnchorPointIds.Spine2, "Avatar_Spine2" },
 15        { AvatarAnchorPointIds.Hip, "Avatar_Hip" },
 16        { AvatarAnchorPointIds.LeftShoulder, "Avatar_LeftShoulder" },
 17        { AvatarAnchorPointIds.LeftArm, "Avatar_LeftArm" },
 18        { AvatarAnchorPointIds.LeftForearm, "Avatar_LeftForearm" },
 19        { AvatarAnchorPointIds.LeftHandIndex, "Avatar_LeftHandIndex" },
 20        { AvatarAnchorPointIds.RightShoulder, "Avatar_RightShoulder" },
 21        { AvatarAnchorPointIds.RightArm, "Avatar_RightArm" },
 22        { AvatarAnchorPointIds.RightForearm, "Avatar_RightForearm" },
 23        { AvatarAnchorPointIds.RightHandIndex, "Avatar_RightHandIndex" },
 24        { AvatarAnchorPointIds.LeftUpLeg, "Avatar_LeftUpLeg" },
 25        { AvatarAnchorPointIds.LeftLeg, "Avatar_LeftLeg" },
 26        { AvatarAnchorPointIds.LeftFoot, "Avatar_LeftFoot" },
 27        { AvatarAnchorPointIds.LeftToeBase, "Avatar_LeftToeBase" },
 28        { AvatarAnchorPointIds.RightUpLeg, "Avatar_RightUpLeg" },
 29        { AvatarAnchorPointIds.RightLeg, "Avatar_RightLeg" },
 30        { AvatarAnchorPointIds.RightFoot, "Avatar_RightFoot" },
 31        { AvatarAnchorPointIds.RightToeBase, "Avatar_RightToeBase" },
 32    };
 33
 31434    private readonly Dictionary<AvatarAnchorPointIds, Transform> boneTransformMapping = new ();
 35
 36    private Transform avatarTransform;
 37    private float nameTagY;
 38
 39    void IAvatarAnchorPoints.Prepare(Transform avatarTransform, (string AnchorName, Transform Bone)[] anchors, float nam
 40    {
 041        this.avatarTransform = avatarTransform;
 042        this.nameTagY = nameTagY;
 43
 044        if (anchors == null)
 045            return;
 46
 047        foreach ((string AnchorName, Transform Bone) anchor in anchors)
 048        foreach (KeyValuePair<AvatarAnchorPointIds, string> boneMap in boneMapping)
 049            if (anchor.AnchorName == boneMap.Value)
 050                boneTransformMapping[boneMap.Key] = anchor.Bone;
 051    }
 52
 53    (Vector3 position, Quaternion rotation, Vector3 scale) IAvatarAnchorPoints.GetTransform(AvatarAnchorPointIds anchorP
 54    {
 055        if (anchorPointId == AvatarAnchorPointIds.Position && avatarTransform != null)
 56        {
 057            return (avatarTransform.position, avatarTransform.rotation, Vector3.one);
 58        }
 59
 060        if (anchorPointId == AvatarAnchorPointIds.NameTag && avatarTransform != null)
 61        {
 062            return (avatarTransform.position + Vector3.up * nameTagY, avatarTransform.rotation, Vector3.one);
 63        }
 64
 065        if (boneTransformMapping.TryGetValue(anchorPointId, out Transform bone))
 66        {
 067            if (bone != null)
 68            {
 069                return (bone.position, bone.rotation, bone.lossyScale);
 70            }
 71        }
 072        return (Vector3.zero, Quaternion.identity, Vector3.one);
 73    }
 74}