Пример #1
0
        void InitProcessor()
        {
            userIssues = new Dictionary <int, UserIssues>();
            for (int i = 0; i < checkedUserIds.Length; i++)
            {
                UserIssues tmpIssue = new UserIssues();
                tmpIssue.isOccluded    = false;
                tmpIssue.onBorderLeft  = false;
                tmpIssue.onBorderRight = false;
                tmpIssue.onBorderTop   = false;
                userIssues.Add(checkedUserIds[i], tmpIssue);
            }

            FrameBorderIssue issue    = new FrameBorderIssue(true, true, true); // just to get fov values
            const float      maxDepth = 10f;

            Vector3 topLeft     = new Vector3(-maxDepth * Mathf.Tan(0.5f * issue.hFov), maxDepth * Mathf.Tan(0.5f * issue.vFov), maxDepth);
            Vector3 topRight    = new Vector3(maxDepth * Mathf.Tan(0.5f * issue.hFov), maxDepth * Mathf.Tan(0.5f * issue.vFov), maxDepth);
            Vector3 bottomLeft  = new Vector3(-maxDepth * Mathf.Tan(0.5f * issue.hFov), -maxDepth * Mathf.Tan(0.5f * issue.vFov), maxDepth);
            Vector3 bottomRight = new Vector3(maxDepth * Mathf.Tan(0.5f * issue.hFov), -maxDepth * Mathf.Tan(0.5f * issue.vFov), maxDepth);

            borders = new GameObject[3];

            for (int i = 0; i < 3; i++)
            {
                borders[i] = new GameObject();
                borders[i].transform.position = Vector3.zero;
                borders[i].transform.rotation = Quaternion.identity;
                MeshFilter   meshFilter   = borders[i].AddComponent <MeshFilter>();
                MeshRenderer meshRenderer = borders[i].AddComponent <MeshRenderer>();
                meshRenderer.material = bordersMaterial;

                Mesh mesh = new Mesh();

                borders[i].name = (i == 0) ? "LeftBorder" : (i == 1) ? "RightBorder" : "TopBorder";
                mesh.name       = borders[i].name;

                List <Vector3> verts = new List <Vector3>();
                verts.Add(Vector3.zero);
                verts.Add((i == 0) ? topLeft : (i == 1) ? bottomRight : topRight);
                verts.Add((i == 0) ? bottomLeft : (i == 1) ? topRight : topLeft);

                List <int> tris = new List <int>();
                tris.Add(0);
                tris.Add(1);
                tris.Add(2);

                mesh.SetVertices(verts);
                mesh.SetTriangles(tris, 0);
                mesh.RecalculateNormals();
                mesh.RecalculateBounds();

                meshFilter.mesh = mesh;

                borders[i].SetActive(false);
            }

            nuitrack.Nuitrack.onIssueUpdateEvent += OnIssuesUpdate;
        }
Пример #2
0
        public async Task <UserIssues> GetIssuesAsync(string assigneeId, string status)
        {
            var client    = httpClientFactory.CreateClient(Startup.JiraClientName);
            var usersData = await client.GetAsync(
                new Uri($"/rest/api/3/search?jql=assignee={assigneeId} and status in (\"{status}\")", UriKind.Relative))
                            .ConfigureAwait(false);

            UserIssues result = new UserIssues();

            if (usersData.IsSuccessStatusCode)
            {
                result = JsonConvert.DeserializeObject <UserIssues>(await usersData.Content.ReadAsStringAsync().ConfigureAwait(false));
            }

            return(result);
        }