{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/comments/205530066","pull_request_review_id":140816857,"id":205530066,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNTUzMDA2Ng==","diff_hunk":"@@ -0,0 +1,285 @@\n+﻿// Copyright (c) Microsoft Corporation. All rights reserved.\n+// Licensed under the MIT License. See LICENSE in the project root for license information.\n+\n+using Microsoft.MixedReality.Toolkit.Internal.Definitions.Utilities;\n+using Microsoft.MixedReality.Toolkit.Internal.EventDatum.Input;\n+using Microsoft.MixedReality.Toolkit.Internal.Extensions;\n+using Microsoft.MixedReality.Toolkit.Internal.Interfaces;\n+using Microsoft.MixedReality.Toolkit.Internal.Interfaces.InputSystem.Handlers;\n+using Microsoft.MixedReality.Toolkit.Internal.Managers;\n+using Microsoft.MixedReality.Toolkit.Internal.Utilities;\n+using Microsoft.MixedReality.Toolkit.SDK.Input;\n+using UnityEditor;\n+using UnityEngine;\n+\n+namespace Microsoft.MixedReality.Toolkit.SDK.UX.Controllers\n+{\n+    /// <summary>\n+    /// The Mixed Reality Visualization component is primarily responsible for rendering the users controllers in a scene.\n+    /// It will ensure whether you have a specific model configured against the controller definition and fall back to using the generic default models defined in the Controllers Profile.\n+    /// The visualizer can be enabled / disabled on demand (after startup) \n+    /// </summary>\n+    /// <example>\n+    /// To Start, ensure there is a \"Controllers Profile\" configured against the main Mixed Reality Configuration Profile and that Controller Rendering is enabled in that profile, as well as configuring at least one controller for each platform you intend to support.\n+    /// Once ready, then simply add this script to a GameObject in the scene, for example the Camera / head.\n+    /// </example>\n+    /// <remarks>\n+    /// For Alpha, this visualizer only does basic rendering and management of controllers.  In future versions, it will expose specific transforms on a controller model (if it has them) to be able to attach items to any part of the model\n+    /// It will also support animation of controller parts and possibly fading in and our of controllers.\n+    /// </remarks>\n+    /// <seealso cref=\"MixedRealityControllerMappingProfile\"/>\n+    public class MixedRealityControllerVisualizer : InputSystemGlobalListener, IMixedRealitySourcePoseHandler, IMixedRealityInputHandler\n+    {\n+\n+        #region Private Properties\n+\n+        private static GameObject leftControllerModel;\n+        private static IMixedRealityController leftController;\n+        private static MixedRealityPose leftControllerOffsetPose = MixedRealityPose.ZeroIdentity;\n+        private static GameObject rightControllerModel;\n+        private static IMixedRealityController rightController;\n+        private static MixedRealityPose rightControllerOffsetPose = MixedRealityPose.ZeroIdentity;\n+\n+        #endregion Private Properties\n+\n+        #region SourcePose Event Handlers\n+\n+        /// <summary>\n+        /// The selected controller is moving in the scene, update it's pose in relation to the users movements\n+        /// </summary>\n+        /// <param name=\"eventData\"></param>\n+        public void OnSourcePoseChanged(SourcePoseEventData eventData)\n+        {\n+            //Handles.PositionHandle(eventData.MixedRealityPose.Position, eventData.MixedRealityPose.Rotation);\n+\n+            // Update the respective controller if it has been initialized\n+            switch (eventData.Controller.ControllerHandedness)\n+            {\n+                case Handedness.Left:\n+                    if (leftControllerModel != null)\n+                    {\n+                        leftControllerModel.transform.localPosition = eventData.MixedRealityPose.Position + leftControllerOffsetPose.Position;\n+                        leftControllerModel.transform.localRotation = eventData.MixedRealityPose.Rotation * leftControllerOffsetPose.Rotation;\n+                    }\n+                    break;\n+                case Handedness.Right:\n+                    if (rightControllerModel != null)\n+                    {\n+                        rightControllerModel.transform.localPosition = eventData.MixedRealityPose.Position + rightControllerOffsetPose.Position;\n+                        rightControllerModel.transform.localRotation = eventData.MixedRealityPose.Rotation * rightControllerOffsetPose.Rotation;\n+                    }\n+                    break;\n+            }\n+        }\n+\n+        /// <summary>\n+        /// Controller found, create the configured model and position it in the scene\n+        /// </summary>\n+        /// <param name=\"eventData\"></param>\n+        public void OnSourceDetected(SourceStateEventData eventData)\n+        {\n+            // Capture the respective controller when it's detected.  However, It'll only be rendered if visualization is enabled.\n+            if (eventData.Controller != null )\n+            {\n+                if (eventData.Controller.ControllerHandedness == Handedness.Right)\n+                {\n+                    rightController = eventData.Controller;\n+                }\n+                else\n+                {\n+                    leftController = eventData.Controller;\n+                }\n+                CreateControllerInstance(eventData.Controller.ControllerHandedness);\n+            }\n+        }\n+\n+        /// <summary>\n+        /// Controller removed, remove it from the scene\n+        /// </summary>\n+        /// <param name=\"eventData\"></param>\n+        public void OnSourceLost(SourceStateEventData eventData)\n+        {\n+            // Clean up when a controller is disconnected\n+            if (eventData.Controller != null)\n+            {\n+                DestroyControllerInstance(eventData.Controller.ControllerHandedness);\n+            }\n+        }\n+\n+        #endregion SourcePose Event Handlers\n+\n+        #region Input Handlers\n+\n+        /// <summary>\n+        /// Visualize the pressed button in the controller model, if supported\n+        /// </summary>\n+        /// <remarks>\n+        /// Reserved for future implementation\n+        /// </remarks>\n+        /// <param name=\"eventData\"></param>\n+        public void OnInputDown(InputEventData eventData)\n+        {\n+            //Visualize button down\n+        }\n+\n+\n+        /// <summary>\n+        /// Visualize the released button in the controller model, if supported\n+        /// </summary>\n+        /// <remarks>\n+        /// Reserved for future implementation\n+        /// </remarks>\n+        /// <param name=\"eventData\"></param>\n+        public void OnInputUp(InputEventData eventData)\n+        {\n+            //Visualize button up\n+        }\n+\n+\n+        /// <summary>\n+        /// Visualize the held trigger in the controller model, if supported\n+        /// </summary>\n+        /// <remarks>\n+        /// Reserved for future implementation\n+        /// </remarks>\n+        /// <param name=\"eventData\"></param>\n+        public void OnInputPressed(InputEventData<float> eventData)\n+        {\n+            //Visualize single axis controls\n+        }\n+\n+\n+        /// <summary>\n+        /// Visualize the movement of a dual axis input in the controller model, if supported\n+        /// </summary>\n+        /// <remarks>\n+        /// Reserved for future implementation\n+        /// </remarks>\n+        /// <param name=\"eventData\"></param>\n+        public void OnPositionInputChanged(InputEventData<Vector2> eventData)\n+        {\n+            //Visualize dual axis controls\n+        }\n+\n+        #endregion Input Handlers\n+\n+        #region Enable / Disable\n+\n+        /// <summary>\n+        /// When the visualizer is enabled, create any attached controllers in the scene.\n+        /// </summary>\n+        /// <remarks>\n+        /// Visualizers must start enabled in the scene in order to capture the controllers from the platform.\n+        /// </remarks>\n+        protected override void OnEnable()\n+        {\n+            base.OnEnable();\n+\n+            if (MixedRealityManager.Instance.ActiveProfile.ControllersProfile != null && MixedRealityManager.Instance.ActiveProfile.ControllersProfile.RenderMotionControllers)\n+            {\n+                CreateControllerInstance(Handedness.Left);\n+                CreateControllerInstance(Handedness.Right);\n+            }\n+        }\n+\n+        /// <summary>\n+        /// If the visualizer is disabled, ensure all rendered controllers are cleaned up\n+        /// </summary>\n+        protected override void OnDisable()\n+        {\n+            DestroyControllerInstance(Handedness.Left);\n+            DestroyControllerInstance(Handedness.Right);\n+\n+            base.OnDisable();\n+        }\n+\n+        #endregion Enable / Disable\n+\n+        #region Controller Visualization Functions\n+\n+        /// <summary>\n+        /// Get the currently configured model for the controller\n+        /// </summary>\n+        /// <remarks>\n+        /// Controller is detected in the following order:\n+        /// 1: The controller model attached to the specific controller type's configuration profile\n+        /// 2: The generic controller model attached to the main controller configuration profile\n+        /// </remarks>\n+        /// <param name=\"sourceController\"></param>\n+        /// <param name=\"controllerModel\"></param>\n+        /// <returns>Returns true if a controller model is found and outputs the GameObject definition.  if no controller is found, the response is false</returns>\n+        public bool TryGetControllerModel(IMixedRealityController sourceController, out GameObject controllerModel, out MixedRealityPose poseOffset)\n+        {\n+            controllerModel = null;\n+            poseOffset = MixedRealityPose.ZeroIdentity;\n+\n+            //Try and get the controller model from the specific COntroller definition\n+            MixedRealityManager.Instance.ActiveProfile.ControllersProfile?.MixedRealityControllerMappingProfiles.GetControllerModelOverride(sourceController.GetType(), sourceController.ControllerHandedness, out controllerModel, out poseOffset);\n+            if (controllerModel != null)\n+            {\n+                return true;\n+            }\n+\n+            //If no specific controller model found for the device type, try and get the generic override models from the main Controllers profile\n+            if (sourceController.ControllerHandedness == Handedness.Left && MixedRealityManager.Instance.ActiveProfile.ControllersProfile?.GlobalLeftHandModel != null)\n+            {\n+                controllerModel = MixedRealityManager.Instance.ActiveProfile.ControllersProfile.GlobalLeftHandModel;\n+                poseOffset = MixedRealityManager.Instance.ActiveProfile.ControllersProfile.LeftHandModelPoseOffset;\n+                return true;\n+            }\n+\n+            if (sourceController.ControllerHandedness == Handedness.Right && MixedRealityManager.Instance.ActiveProfile.ControllersProfile?.GlobalRightHandModel != null)\n+            {\n+                controllerModel = MixedRealityManager.Instance.ActiveProfile.ControllersProfile.GlobalRightHandModel;\n+                poseOffset = MixedRealityManager.Instance.ActiveProfile.ControllersProfile.RightHandModelPoseOffset;\n+                return true;\n+            }\n+\n+            //No model found, give up, go home and bake cookies.  Nothing to see here.\n+            controllerModel = null;\n+            return false;\n+        }\n+\n+        private void CreateControllerInstance(Handedness controllingHand)\n+        {\n+            GameObject controllerModelGameObject = null;\n+            MixedRealityPose poseOffset = MixedRealityPose.ZeroIdentity;\n+\n+            switch (controllingHand)\n+            {\n+                case Handedness.Left:","path":"Assets/MixedRealityToolkit-SDK/Features/UX/Scripts/Controllers/MixedRealityControllerVisualizer.cs","position":250,"original_position":250,"commit_id":"a469d8db4c55879a1c8a2ddbfbe5513402b5e7e7","original_commit_id":"a469d8db4c55879a1c8a2ddbfbe5513402b5e7e7","user":{"login":"davidkline-ms","id":13281406,"node_id":"MDQ6VXNlcjEzMjgxNDA2","avatar_url":"https://avatars2.githubusercontent.com/u/13281406?v=4","gravatar_id":"","url":"https://api.github.com/users/davidkline-ms","html_url":"https://github.com/davidkline-ms","followers_url":"https://api.github.com/users/davidkline-ms/followers","following_url":"https://api.github.com/users/davidkline-ms/following{/other_user}","gists_url":"https://api.github.com/users/davidkline-ms/gists{/gist_id}","starred_url":"https://api.github.com/users/davidkline-ms/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidkline-ms/subscriptions","organizations_url":"https://api.github.com/users/davidkline-ms/orgs","repos_url":"https://api.github.com/users/davidkline-ms/repos","events_url":"https://api.github.com/users/davidkline-ms/events{/privacy}","received_events_url":"https://api.github.com/users/davidkline-ms/received_events","type":"User","site_admin":false},"body":"should have default block (unhanded, etc)","created_at":"2018-07-26T16:57:39Z","updated_at":"2018-07-26T17:01:37Z","html_url":"https://github.com/Microsoft/MixedRealityToolkit-Unity/pull/2492#discussion_r205530066","pull_request_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/2492","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/comments/205530066"},"html":{"href":"https://github.com/Microsoft/MixedRealityToolkit-Unity/pull/2492#discussion_r205530066"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/2492"}}},"pull_request":{"url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/2492","id":204174286,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA0MTc0Mjg2","html_url":"https://github.com/Microsoft/MixedRealityToolkit-Unity/pull/2492","diff_url":"https://github.com/Microsoft/MixedRealityToolkit-Unity/pull/2492.diff","patch_url":"https://github.com/Microsoft/MixedRealityToolkit-Unity/pull/2492.patch","issue_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/issues/2492","number":2492,"state":"open","locked":false,"title":"Initial Check in for the Controller Visualization functionality","user":{"login":"SimonDarksideJ","id":1793042,"node_id":"MDQ6VXNlcjE3OTMwNDI=","avatar_url":"https://avatars0.githubusercontent.com/u/1793042?v=4","gravatar_id":"","url":"https://api.github.com/users/SimonDarksideJ","html_url":"https://github.com/SimonDarksideJ","followers_url":"https://api.github.com/users/SimonDarksideJ/followers","following_url":"https://api.github.com/users/SimonDarksideJ/following{/other_user}","gists_url":"https://api.github.com/users/SimonDarksideJ/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonDarksideJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonDarksideJ/subscriptions","organizations_url":"https://api.github.com/users/SimonDarksideJ/orgs","repos_url":"https://api.github.com/users/SimonDarksideJ/repos","events_url":"https://api.github.com/users/SimonDarksideJ/events{/privacy}","received_events_url":"https://api.github.com/users/SimonDarksideJ/received_events","type":"User","site_admin":false},"body":"Overview\r\n---\r\nAdded basic controller visualization for the Mixed Reality Toolkit Alpha\r\nMore improvements needed in beta for:\r\n* Debug overlay\r\n* Animation support\r\n* Controller model node support\r\n\r\nImplements\r\n---\r\n* Basic controller visualization\r\n* Support for both Global and Specific controller Models\r\n* Offset support for controller rendering\r\n* Documentation","created_at":"2018-07-26T15:07:31Z","updated_at":"2018-07-26T17:01:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e967f2ccad72181bfce267219e56a0b5276e77dc","assignee":{"login":"SimonDarksideJ","id":1793042,"node_id":"MDQ6VXNlcjE3OTMwNDI=","avatar_url":"https://avatars0.githubusercontent.com/u/1793042?v=4","gravatar_id":"","url":"https://api.github.com/users/SimonDarksideJ","html_url":"https://github.com/SimonDarksideJ","followers_url":"https://api.github.com/users/SimonDarksideJ/followers","following_url":"https://api.github.com/users/SimonDarksideJ/following{/other_user}","gists_url":"https://api.github.com/users/SimonDarksideJ/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonDarksideJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonDarksideJ/subscriptions","organizations_url":"https://api.github.com/users/SimonDarksideJ/orgs","repos_url":"https://api.github.com/users/SimonDarksideJ/repos","events_url":"https://api.github.com/users/SimonDarksideJ/events{/privacy}","received_events_url":"https://api.github.com/users/SimonDarksideJ/received_events","type":"User","site_admin":false},"assignees":[{"login":"SimonDarksideJ","id":1793042,"node_id":"MDQ6VXNlcjE3OTMwNDI=","avatar_url":"https://avatars0.githubusercontent.com/u/1793042?v=4","gravatar_id":"","url":"https://api.github.com/users/SimonDarksideJ","html_url":"https://github.com/SimonDarksideJ","followers_url":"https://api.github.com/users/SimonDarksideJ/followers","following_url":"https://api.github.com/users/SimonDarksideJ/following{/other_user}","gists_url":"https://api.github.com/users/SimonDarksideJ/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonDarksideJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonDarksideJ/subscriptions","organizations_url":"https://api.github.com/users/SimonDarksideJ/orgs","repos_url":"https://api.github.com/users/SimonDarksideJ/repos","events_url":"https://api.github.com/users/SimonDarksideJ/events{/privacy}","received_events_url":"https://api.github.com/users/SimonDarksideJ/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"keveleigh","id":3580640,"node_id":"MDQ6VXNlcjM1ODA2NDA=","avatar_url":"https://avatars2.githubusercontent.com/u/3580640?v=4","gravatar_id":"","url":"https://api.github.com/users/keveleigh","html_url":"https://github.com/keveleigh","followers_url":"https://api.github.com/users/keveleigh/followers","following_url":"https://api.github.com/users/keveleigh/following{/other_user}","gists_url":"https://api.github.com/users/keveleigh/gists{/gist_id}","starred_url":"https://api.github.com/users/keveleigh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keveleigh/subscriptions","organizations_url":"https://api.github.com/users/keveleigh/orgs","repos_url":"https://api.github.com/users/keveleigh/repos","events_url":"https://api.github.com/users/keveleigh/events{/privacy}","received_events_url":"https://api.github.com/users/keveleigh/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":762685638,"node_id":"MDU6TGFiZWw3NjI2ODU2Mzg=","url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/labels/Documentation","name":"Documentation","color":"f9d0c4","default":false},{"id":936491559,"node_id":"MDU6TGFiZWw5MzY0OTE1NTk=","url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/labels/Input%20/%20Interactions","name":"Input / Interactions","color":"5ecae5","default":false},{"id":850652486,"node_id":"MDU6TGFiZWw4NTA2NTI0ODY=","url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/labels/MRTK%20vNEXT","name":"MRTK vNEXT","color":"0b4ce5","default":false},{"id":769313068,"node_id":"MDU6TGFiZWw3NjkzMTMwNjg=","url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/labels/Ready%20for%20Review","name":"Ready for Review","color":"88f91d","default":false}],"milestone":{"url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/milestones/1","html_url":"https://github.com/Microsoft/MixedRealityToolkit-Unity/milestone/1","labels_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/milestones/1/labels","id":3141032,"node_id":"MDk6TWlsZXN0b25lMzE0MTAzMg==","number":1,"title":"MRTK vNEXT","description":"","creator":{"login":"StephenHodgson","id":13334553,"node_id":"MDQ6VXNlcjEzMzM0NTUz","avatar_url":"https://avatars2.githubusercontent.com/u/13334553?v=4","gravatar_id":"","url":"https://api.github.com/users/StephenHodgson","html_url":"https://github.com/StephenHodgson","followers_url":"https://api.github.com/users/StephenHodgson/followers","following_url":"https://api.github.com/users/StephenHodgson/following{/other_user}","gists_url":"https://api.github.com/users/StephenHodgson/gists{/gist_id}","starred_url":"https://api.github.com/users/StephenHodgson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StephenHodgson/subscriptions","organizations_url":"https://api.github.com/users/StephenHodgson/orgs","repos_url":"https://api.github.com/users/StephenHodgson/repos","events_url":"https://api.github.com/users/StephenHodgson/events{/privacy}","received_events_url":"https://api.github.com/users/StephenHodgson/received_events","type":"User","site_admin":false},"open_issues":17,"closed_issues":73,"state":"open","created_at":"2018-02-24T21:08:44Z","updated_at":"2018-07-26T15:07:45Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/2492/commits","review_comments_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/2492/comments","review_comment_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/issues/2492/comments","statuses_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/statuses/a469d8db4c55879a1c8a2ddbfbe5513402b5e7e7","head":{"label":"SimonDarksideJ:mrtk_development_ControllerVizualization_rev2","ref":"mrtk_development_ControllerVizualization_rev2","sha":"a469d8db4c55879a1c8a2ddbfbe5513402b5e7e7","user":{"login":"SimonDarksideJ","id":1793042,"node_id":"MDQ6VXNlcjE3OTMwNDI=","avatar_url":"https://avatars0.githubusercontent.com/u/1793042?v=4","gravatar_id":"","url":"https://api.github.com/users/SimonDarksideJ","html_url":"https://github.com/SimonDarksideJ","followers_url":"https://api.github.com/users/SimonDarksideJ/followers","following_url":"https://api.github.com/users/SimonDarksideJ/following{/other_user}","gists_url":"https://api.github.com/users/SimonDarksideJ/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonDarksideJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonDarksideJ/subscriptions","organizations_url":"https://api.github.com/users/SimonDarksideJ/orgs","repos_url":"https://api.github.com/users/SimonDarksideJ/repos","events_url":"https://api.github.com/users/SimonDarksideJ/events{/privacy}","received_events_url":"https://api.github.com/users/SimonDarksideJ/received_events","type":"User","site_admin":false},"repo":{"id":104344456,"node_id":"MDEwOlJlcG9zaXRvcnkxMDQzNDQ0NTY=","name":"MixedRealityToolkit-Unity","full_name":"SimonDarksideJ/MixedRealityToolkit-Unity","owner":{"login":"SimonDarksideJ","id":1793042,"node_id":"MDQ6VXNlcjE3OTMwNDI=","avatar_url":"https://avatars0.githubusercontent.com/u/1793042?v=4","gravatar_id":"","url":"https://api.github.com/users/SimonDarksideJ","html_url":"https://github.com/SimonDarksideJ","followers_url":"https://api.github.com/users/SimonDarksideJ/followers","following_url":"https://api.github.com/users/SimonDarksideJ/following{/other_user}","gists_url":"https://api.github.com/users/SimonDarksideJ/gists{/gist_id}","starred_url":"https://api.github.com/users/SimonDarksideJ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SimonDarksideJ/subscriptions","organizations_url":"https://api.github.com/users/SimonDarksideJ/orgs","repos_url":"https://api.github.com/users/SimonDarksideJ/repos","events_url":"https://api.github.com/users/SimonDarksideJ/events{/privacy}","received_events_url":"https://api.github.com/users/SimonDarksideJ/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/SimonDarksideJ/MixedRealityToolkit-Unity","description":"MixedRealityToolkit-Unity uses code from the base MixedRealityToolkit repository and makes it easier to consume in Unity.","fork":true,"url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity","forks_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/forks","keys_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/teams","hooks_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/hooks","issue_events_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/issues/events{/number}","events_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/events","assignees_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/assignees{/user}","branches_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/branches{/branch}","tags_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/tags","blobs_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/git/refs{/sha}","trees_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/statuses/{sha}","languages_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/languages","stargazers_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/stargazers","contributors_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/contributors","subscribers_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/subscribers","subscription_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/subscription","commits_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/commits{/sha}","git_commits_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/git/commits{/sha}","comments_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/comments{/number}","issue_comment_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/issues/comments{/number}","contents_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/contents/{+path}","compare_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/merges","archive_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/downloads","issues_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/issues{/number}","pulls_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/pulls{/number}","milestones_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/milestones{/number}","notifications_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/labels{/name}","releases_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/releases{/id}","deployments_url":"https://api.github.com/repos/SimonDarksideJ/MixedRealityToolkit-Unity/deployments","created_at":"2017-09-21T12:19:58Z","updated_at":"2018-07-11T09:52:39Z","pushed_at":"2018-07-26T15:05:50Z","git_url":"git://github.com/SimonDarksideJ/MixedRealityToolkit-Unity.git","ssh_url":"git@github.com:SimonDarksideJ/MixedRealityToolkit-Unity.git","clone_url":"https://github.com/SimonDarksideJ/MixedRealityToolkit-Unity.git","svn_url":"https://github.com/SimonDarksideJ/MixedRealityToolkit-Unity","homepage":"","size":367179,"stargazers_count":2,"watchers_count":2,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":2,"default_branch":"mrtk_development"}},"base":{"label":"Microsoft:mrtk_development","ref":"mrtk_development","sha":"20ac203c5c1d157246f1c1348e3b09717a671acc","user":{"login":"Microsoft","id":6154722,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYxNTQ3MjI=","avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":50605426,"node_id":"MDEwOlJlcG9zaXRvcnk1MDYwNTQyNg==","name":"MixedRealityToolkit-Unity","full_name":"Microsoft/MixedRealityToolkit-Unity","owner":{"login":"Microsoft","id":6154722,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYxNTQ3MjI=","avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/MixedRealityToolkit-Unity","description":"MixedRealityToolkit-Unity uses code from the base MixedRealityToolkit repository and makes it easier to consume in Unity.","fork":false,"url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity","forks_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/forks","keys_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/teams","hooks_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/events","assignees_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/tags","blobs_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/languages","stargazers_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/subscription","commits_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/merges","archive_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/downloads","issues_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/deployments","created_at":"2016-01-28T18:54:58Z","updated_at":"2018-07-26T12:16:21Z","pushed_at":"2018-07-26T16:36:28Z","git_url":"git://github.com/Microsoft/MixedRealityToolkit-Unity.git","ssh_url":"git@github.com:Microsoft/MixedRealityToolkit-Unity.git","clone_url":"https://github.com/Microsoft/MixedRealityToolkit-Unity.git","svn_url":"https://github.com/Microsoft/MixedRealityToolkit-Unity","homepage":"","size":614049,"stargazers_count":1920,"watchers_count":1920,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":928,"mirror_url":null,"archived":false,"open_issues_count":364,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":928,"open_issues":364,"watchers":1920,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/2492"},"html":{"href":"https://github.com/Microsoft/MixedRealityToolkit-Unity/pull/2492"},"issue":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/issues/2492"},"comments":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/issues/2492/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/2492/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/pulls/2492/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/MixedRealityToolkit-Unity/statuses/a469d8db4c55879a1c8a2ddbfbe5513402b5e7e7"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"davidkline-ms"}}