コード例 #1
0
        protected void WriteTrackingId(OperationResultWithTrackingId response)
        {
            WriteVerboseWithTimestamp("Please use the following tracking id with Get-AzureRemoteAppOperationResult cmdlet:");
            TrackingResult trackingId = new TrackingResult(response);

            WriteObject(trackingId);
        }
コード例 #2
0
    void Update()
    {
        if (Input.GetKey(KeyCode.Escape))
        {
            SceneStackManager.Instance.LoadPrevious();
        }

        StartCamera();

        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_OBJECT);
            startTrackerDone = true;
        }

        DisableAllTrackables();

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);

            if (!objectTrackablesMap.ContainsKey(trackable.GetName()))
            {
                return;
            }

            objectTrackablesMap[trackable.GetName()].OnTrackSuccess(trackable.GetId(), trackable.GetName(),
                                                                    trackable.GetPose());
        }
    }
コード例 #3
0
    void Update()
    {
        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);

        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() > 0)
        {
            for (int i = 0; i < trackingResult.GetCount(); i++)
            {
                Trackable trackable = trackingResult.GetTrackable(i);

                Matrix4x4 poseMatrix = trackable.GetPose();

                float width  = trackable.GetWidth();
                float height = trackable.GetHeight();

                trackingObject.transform.position   = MatrixUtils.PositionFromMatrix(poseMatrix);
                trackingObject.transform.rotation   = MatrixUtils.QuaternionFromMatrix(poseMatrix);
                trackingObject.transform.localScale = new Vector3(width, height, height);
            }
        }
        else
        {
            trackingObject.transform.localScale = new Vector3(0.0f, 0.0f, 0.0f);
        }
    }
コード例 #4
0
    void Update()
    {
        if (instantTrackable == null)
        {
            return;
        }

        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);

        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() == 0)
        {
            instantTrackable.OnTrackFail();
            return;
        }

        if (Input.touchCount > 0)
        {
            UpdateTouchDelta(Input.GetTouch(0).position);
        }

        Trackable trackable  = trackingResult.GetTrackable(0);
        Matrix4x4 poseMatrix = trackable.GetPose() * Matrix4x4.Translate(touchSumPosition);

        instantTrackable.OnTrackSuccess(trackable.GetId(), trackable.GetName(), poseMatrix);
    }
コード例 #5
0
    void Update()
    {
        DisableAllTrackables();

        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);
        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() > 0)
        {
            Debug.Log("test");
            for (int i = 0; i < trackingResult.GetCount(); i++)
            {
                Trackable trackable = trackingResult.GetTrackable(i);
                scane.gameObject.SetActive(false);

                if (!objectTrackablesMap.ContainsKey(trackable.GetName()))
                {
                    return;
                }

                objectTrackablesMap[trackable.GetName()].OnTrackSuccess(trackable.GetId(), trackable.GetName(),
                                                                        trackable.GetPose());
            }
        }
        else
        {
            scane.gameObject.SetActive(true);
            PanelA.gameObject.SetActive(false);
            PanelB.gameObject.SetActive(false);
            audioSourceA.Stop();
            audioSourceB.Stop();
        }
    }
コード例 #6
0
    void Update()
    {
        DisableAllTrackables();

        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        if (state == null)
        {
            return;
        }

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);
        TrackingResult trackingResult = state.GetTrackingResult();

        GuideInfo guideInfo = TrackerManager.GetInstance().GetGuideInfo();

        TagAnchor[] anchors = guideInfo.GetTagAnchors();

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);

            if (!objectTrackablesMap.ContainsKey(trackable.GetName()))
            {
                return;
            }

            objectTrackablesMap[trackable.GetName()].OnTrackSuccess(trackable.GetId(), trackable.GetName(),
                                                                    trackable.GetPose());
        }
    }
コード例 #7
0
    void Update()
    {
        DisableAllTrackables();

        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        if (state == null)
        {
            return;
        }

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);
        TrackingResult trackingResult = state.GetTrackingResult();

        string recognizedID = null;

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            int       markerId  = -1;
            if (int.TryParse(trackable.GetName(), out markerId))
            {
                if (markerTrackableMap.ContainsKey(markerId))
                {
                    markerTrackableMap[markerId].OnTrackSuccess(
                        trackable.GetId(), trackable.GetName(), trackable.GetPose());

                    recognizedID += trackable.GetId().ToString() + ", ";
                }
            }
        }

        Debug.Log("Recognized Marker id : " + recognizedID);
    }
コード例 #8
0
        public override void ExecuteCmdlet()
        {
            NetworkCredential             creds    = null;
            CollectionCreationDetails     details  = null;
            OperationResultWithTrackingId response = null;
            Collection collection = null;

            collection = FindCollection(CollectionName);
            if (collection == null)
            {
                return;
            }

            details = new CollectionCreationDetails()
            {
                Name              = CollectionName,
                BillingPlanName   = String.IsNullOrWhiteSpace(Plan) ? collection.BillingPlanName : Plan,
                Description       = String.IsNullOrWhiteSpace(Description) ? collection.Description : Description,
                CustomRdpProperty = String.IsNullOrWhiteSpace(CustomRdpProperty) ? collection.CustomRdpProperty : CustomRdpProperty,
                TemplateImageName = collection.TemplateImageName
            };

            switch (ParameterSetName)
            {
            case DomainJoined:
            {
                if (collection.AdInfo == null)
                {
                    ErrorRecord er = RemoteAppCollectionErrorState.CreateErrorRecordFromString(
                        Commands_RemoteApp.AadInfoCanNotBeAddedToCloudOnlyCollectionMessage,
                        String.Empty,
                        Client.Collections,
                        ErrorCategory.InvalidArgument);
                    ThrowTerminatingError(er);
                }

                details.AdInfo                    = new ActiveDirectoryConfig();
                details.VnetName                  = collection.VnetName;
                details.AdInfo.DomainName         = collection.AdInfo.DomainName;
                details.AdInfo.OrganizationalUnit = collection.AdInfo.OrganizationalUnit;

                if (Credential != null)
                {
                    creds = Credential.GetNetworkCredential();
                    details.AdInfo.UserName = creds.UserName;
                    details.AdInfo.Password = creds.Password;
                }
                break;
            }
            }

            response = CallClient(() => Client.Collections.Set(CollectionName, false, false, details), Client.Collections);
            if (response != null)
            {
                TrackingResult trackingId = new TrackingResult(response);
                WriteObject(trackingId);
            }
        }
コード例 #9
0
        public static string GetEmoji(this TrackingResult result)
        {
            if (result.Average < 0)
            {
                return(Emoji.CHART_WITH_DOWNWARDS_TREND.Unicode);
            }

            return(result.Average > 0 ? Emoji.CHART_WITH_UPWARDS_TREND.Unicode : string.Empty);
        }
コード例 #10
0
    void Update()
    {
        if (Input.GetKey(KeyCode.Escape))
        {
            SceneStackManager.Instance.LoadPrevious();
        }

        StartCamera();

        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_INSTANT);
            SensorDevice.GetInstance().Start();
            startTrackerDone = true;
        }

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() == 0)
        {
            instantTrackable.OnTrackFail();
            return;
        }

        Trackable track = trackingResult.GetTrackable(0);

        instantTrackable.OnTrackSuccess(track.GetId(), track.GetName(), track.GetPose());

                #if UNITY_EDITOR
        if (Input.GetMouseButtonDown(0))
        {
            if (linePointCount < 100)
            {
                linePoint [linePointCount++] = TrackerManager.GetInstance().GetWorldPositionFromScreenCoordinate(Input.mousePosition);
                lineRenderer.positionCount   = linePointCount;
                lineRenderer.SetPositions(linePoint);
            }
        }
                #else
        if (Input.touchCount > 0)
        {
            if (linePointCount < 100)
            {
                linePoint [linePointCount++] = TrackerManager.GetInstance().GetWorldPositionFromScreenCoordinate(Input.GetTouch(0).position);
                lineRenderer.positionCount   = linePointCount;
                lineRenderer.SetPositions(linePoint);
            }
        }

        if (Input.GetTouch(0).phase == TouchPhase.Ended)
        {
            linePointCount = 0;
        }
                #endif
    }
コード例 #11
0
    /// <summary>
    /// Update target's transform. This should be called in every frame.
    /// </summary>
    public virtual void UpdateTransform(float factor = 1.0f)
    {
        if (m_ControllerInput == null)
        {
            return;
        }
        if (m_ControllerInput.connectionState != DeviceConnectionState.Connected)
        {
            target.localRotation = Quaternion.identity;
            return;
        }
        //
        Vector3    position = Vector3.zero;
        Quaternion rotation = Quaternion.identity;

        GetTransform(ref position, ref rotation);
        //
        if (trackPosition)
        {
            if ((m_ControllerInput.trackingResult & TrackingResult.PositionTracked) == 0)
            {
            }
            else if ((target.localPosition - position).sqrMagnitude == 0.0f)
            {
                //Ximmerse.Log.i("TrackedObject","target.localPosition==position");
            }
            else
            {
                if (factor == 1.0f             //||
                    // Abort lerp if lost position tracking at previous frame.
                    //(m_PrevTrackingResult&TrackingResult.PositionTracked)==0
                    )
                {
                    target.localPosition = position;
                }
                else
                {
                    target.localPosition = Vector3.Lerp(target.localPosition, position, factor);
                }
            }
        }
        if (trackRotation)
        {
            if (factor == 1.0f)
            {
                target.localRotation = rotation;
            }
            else
            {
                target.localRotation = Quaternion.Slerp(target.localRotation, rotation, factor);
            }
        }
        // Cache trackingResult at this frame.
        m_PrevTrackingResult = m_ControllerInput.trackingResult;
    }
        public void ValidateHitShouldPass()
        {
            IEventTracker            realEventTracker = new EventTracker();
            IUniversalAnalyticsEvent analyticsEvent   = new UniversalAnalyticsEventFactory().MakeUniversalAnalyticsEvent("DummyClientId", "Dummy Category", "Dummy Action", "DummyLabel");

            TrackingResult res = realEventTracker.ValidateHit(analyticsEvent);

            Assert.IsTrue(!res.Failed, "Test analytics event object (_analyticsEvent) must be valid for this test method to work");

            Assert.IsTrue(res.ValidationStatus, "Analytics event validation has failed. Need to reconfigure test analytics event");
        }
コード例 #13
0
 public TrackingFaceResult(int pos_x = 0, int pos_y = 0, int size = 0, int conf = 0, int detection_id = 0, int tracking_id = 0)
     : base(pos_x, pos_y, size, conf, detection_id, tracking_id)
 {
     this.trackingresult = new TrackingResult(pos_x, pos_y, size, conf, detection_id, tracking_id);
     this.direction      = null;
     this.age            = null;
     this.gender         = null;
     this.gaze           = null;
     this.blink          = null;
     this.expression     = null;
     this.recognition    = null;
 }
コード例 #14
0
    void Update()
    {
        DisableAllTrackables();

        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        if (state == null)
        {
            return;
        }

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);

        TrackingResult trackingResult = state.GetTrackingResult();

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            //Debug.Log("Trackable add: " + trackable.GetName());

            bool isNotFound = true;

            foreach (var key in QrCodeTrackablesMap.Keys)
            {
                if (key.Length < 1)
                {
                    continue;
                }

                if (trackable.GetName().Contains(key))
                {
                    foreach (var qrCodeTrackable in QrCodeTrackablesMap[key])
                    {
                        qrCodeTrackable.OnTrackSuccess(
                            "", trackable.GetName(), trackable.GetPose());
                    }

                    isNotFound = false;
                    break;
                }
            }

            if (isNotFound && QrCodeTrackablesMap.ContainsKey(defaultSearchingWords))
            {
                foreach (var qrCodeTrackable in QrCodeTrackablesMap[defaultSearchingWords])
                {
                    qrCodeTrackable.OnTrackSuccess(
                        "", trackable.GetName(), trackable.GetPose());
                }
            }
        }
    }
コード例 #15
0
    void Update()
    {
        DisableAllTrackables();

        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        if (state == null)
        {
            return;
        }

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);

        TrackingResult trackingResult = state.GetTrackingResult();

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            imageTrackablesMap[trackable.GetName()].OnTrackSuccess(
                trackable.GetId(), trackable.GetName(), trackable.GetPose());
            SetCanvas(trackable.GetName());
        }


        if (trackingResult.GetCount() == 0)

        {
            canvasObj.SetActive(false);
            canvasObj1.SetActive(false);
            canvasObj2.SetActive(false);
            canvasObj3.SetActive(false);
            canvasObj4.SetActive(false);
            canvasObj5.SetActive(false);
            canvasObj6.SetActive(false);
            canvasObj7.SetActive(false);
            canvasObj8.SetActive(false);
            canvasObj9.SetActive(false);
            pannel.SetActive(false);
            pannel1.SetActive(false);
            pannel2.SetActive(false);
            pannel3.SetActive(false);
            pannel4.SetActive(false);
            pannel5.SetActive(false);
            pannel6.SetActive(false);
            pannel7.SetActive(false);
            pannel8.SetActive(false);
            pannel9.SetActive(false);

            //UITextaaa.SetActive(false);
            //OffDisplay();
        }
    }
コード例 #16
0
        public override void ExecuteCmdlet()
        {
            RemoteAppVm vm = GetVm(CollectionName, UserUpn);
            RestartVmCommandParameter     restartDetails = null;
            OperationResultWithTrackingId result         = null;

            if (vm == null)
            {
                WriteWarning(string.Format(Commands_RemoteApp.NoVmInCollectionForUser, UserUpn, CollectionName));

                return;
            }

            if (vm.LoggedOnUserUpns.Count > 1)
            {
                string otherLoggedInUsers = null;
                string warningCaption     = null;
                string warningMessage     = null;

                foreach (string user in vm.LoggedOnUserUpns)
                {
                    if (string.Compare(user, UserUpn, true) != 0)
                    {
                        otherLoggedInUsers += "\n" + user;
                    }
                }

                warningMessage = string.Format(Commands_RemoteApp.RestartVmWarningMessage, UserUpn, vm.VirtualMachineName, otherLoggedInUsers);
                warningCaption = string.Format(Commands_RemoteApp.RestartVmWarningCaption, vm.VirtualMachineName);

                WriteWarning(warningMessage);

                if (!ShouldProcess(null, Commands_RemoteApp.GenericAreYouSureQuestion, warningCaption))
                {
                    return;
                }
            }

            restartDetails = new RestartVmCommandParameter(vm.VirtualMachineName);
            restartDetails.LogoffWaitTimeInSeconds = LogoffWaitSeconds <= 0 ? 60 : LogoffWaitSeconds;
            restartDetails.LogoffMessage           = string.IsNullOrEmpty(LogoffMessage) ? string.Format(Commands_RemoteApp.DefaultLogoffMessage, restartDetails.LogoffWaitTimeInSeconds) : LogoffMessage;

            result = CallClient(() => Client.Collections.RestartVm(CollectionName, restartDetails), Client.Collections);

            if (result != null)
            {
                TrackingResult trackingId = new TrackingResult(result);
                WriteObject(trackingId);
            }
        }
コード例 #17
0
    void Update()
    {
        if (Input.GetKey(KeyCode.Escape))
        {
            SceneStackManager.Instance.LoadPrevious();
        }

        StartCamera();

        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_SLAM);
            startTrackerDone = true;
        }

        EnableChildrenRenderer(false);

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() == 0)
        {
            return;
        }

                #if UNITY_EDITOR
        if (Input.GetMouseButtonDown(0))
        {
            if (linePointCount < 100)
            {
                linePoint [linePointCount++] = anchor.transform.position;
                lineRenderer.positionCount   = linePointCount;
                lineRenderer.SetPositions(linePoint);
            }
        }
                #else
        if (Input.touchCount > 0)
        {
            if (linePointCount < 100)
            {
                linePoint [linePointCount++] = anchor.transform.position;
                lineRenderer.positionCount   = linePointCount;
                lineRenderer.SetPositions(linePoint);
            }
        }
                #endif


        EnableChildrenRenderer(true);
    }
コード例 #18
0
    void Update()
    {
        DisableAllTrackables();

        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        if (state == null)
        {
            return;
        }

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);

        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() == 0)
        {
            if (GuideStep.Recognizing != CurrentStep)
            {
                SetGuidePopup(GuideStep.Recognizing);
            }
        }
        else
        {
            if (GuideStep.ContentAugment != CurrentStep)
            {
                SetGuidePopup(GuideStep.ContentAugment);
            }
        }

        if (goResultGuideImage.activeSelf)
        {
            if (isGuideResultPlayerEnded == false)
            {
                return;
            }
            else
            {
                goResultGuideImage.SetActive(false);
            }
        }

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            imageTrackablesMap[trackable.GetName()].OnTrackSuccess(
                trackable.GetId(), trackable.GetName(), trackable.GetPose());
        }
    }
コード例 #19
0
    void Update()
    {
        DisableAllTrackables();

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            imageTrackablesMap[trackable.GetName()].OnTrackSuccess(
                trackable.GetId(), trackable.GetName(), trackable.GetPose());
        }
    }
コード例 #20
0
        protected BeaconEntity ExecuteTrackingRequest(string requestInfo, Func <TrackingResult> implementation)
        {
            BeaconEntity result;

            try
            {
                string text;
                if (!this.TryGetSessionId(out text))
                {
                    throw HttpExceptionHelper.BadRequest("Bad Request", "Session could not be initialized with the details provided.");
                }
                TrackingResult trackingResult = implementation();
                if (trackingResult == null)
                {
                    throw HttpExceptionHelper.InternetServerError("Unexpected server error", "Tracking result could not be determined.");
                }
                if (trackingResult.ResultCode != TrackingResultCode.Success)
                {
                    this.logger.Debug(string.Format("[FXM Tracking] [Failed] : Session = {0} : Code : {1} : Message : {2} : {3}", new object[]
                    {
                        text,
                        trackingResult.ResultCode,
                        trackingResult.Message,
                        requestInfo
                    }), null);
                    throw HttpExceptionHelper.BadRequest(trackingResult.ResultCode.ToString(), trackingResult.Message);
                }
                this.logger.Debug((!trackingResult.DoNotTrack) ? string.Format("[FXM Tracking] : Session = {0} : {1}", text, requestInfo) : string.Format("[FXM Tracking] [DoNotTrack] : Session = {0} : {1}", text, requestInfo), null);
                BeaconEntity beaconEntity = (BeaconEntity)trackingResult;
                beaconEntity.SessionId = text;
                result = beaconEntity;
            }
            catch (HttpResponseException exception)
            {
                this.logger.Error(string.Format("[FXM Tracking] [Error] : {0}", requestInfo), exception, typeof(BeaconController));
                throw;
            }
            catch (Exception ex)
            {
                this.logger.Error(string.Format("[FXM Tracking] [Error] : {0}", requestInfo), ex, typeof(BeaconController));
                throw HttpExceptionHelper.InternetServerError("Unexpected server error", ex.Message);
            }
            return(result);
        }
コード例 #21
0
    void Update()
    {
        if (Input.GetKey(KeyCode.Escape))
        {
            SceneStackManager.Instance.LoadPrevious();
        }

        StartCamera();

        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_IMAGE);
            startTrackerDone = true;
        }

        DisableAllTrackables();

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            imageTrackablesMap[trackable.GetName()].OnTrackSuccess(
                trackable.GetId(), trackable.GetName(), trackable.GetPose());
        }

        if (Application.platform != RuntimePlatform.WindowsEditor &&
            Application.platform != RuntimePlatform.OSXEditor)
        {
            if (nonARObject != null)
            {
                if (Screen.orientation == ScreenOrientation.Portrait)
                {
                    nonARObject.transform.rotation = Quaternion.Euler(new Vector3(0, -90.0f, 0));
                }
                else
                {
                    nonARObject.transform.rotation = Quaternion.identity;
                }
            }
        }
    }
コード例 #22
0
    void Update()
    {
        if (instantTrackable == null)
        {
            return;
        }

        StartCamera();

        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_INSTANT);
            SensorDevice.GetInstance().Start();
            startTrackerDone = true;
        }

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);

        if (trackingResult.GetCount() == 0)
        {
            instantTrackable.OnTrackFail();
            instantPlaneGrid.EnableDrawing(false);
            return;
        }

        instantPlaneGrid.EnableDrawing(true);

        Trackable trackable = trackingResult.GetTrackable(0);

        planMatrix = trackable.GetPose();
        Matrix4x4 poseMatrix = trackable.GetPose() * Matrix4x4.Translate(touchSumPosition);

        instantTrackable.OnTrackSuccess(trackable.GetId(), trackable.GetName(), poseMatrix);

        if (Input.touchCount > 0 && !rotationController.getRotationState() && !zoomInOut.getScaleState())
        {
            UpdateTouchDelta(Input.GetTouch(0).position);
        }
    }
コード例 #23
0
        private TrackingResult[] GetSingle(string keyword, string type, int[] selectedSteps)
        {
            var tracker = tracking.Resolve(keyword, type);

            TrackingResult[] results = new TrackingResult[selectedSteps.Length];
            for (int i = 0; i < selectedSteps.Length; i++)
            {
                var step   = selectedSteps[i];
                var result = new TrackingResult
                {
                    Average       = tracker.CalculateAverageRating(step),
                    TotalMessages = tracker.Count(lastHours: step),
                    Hours         = step
                };

                results[i] = result;
            }

            return(results.ToArray());
        }
コード例 #24
0
    void Update()
    {
        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_IMAGE);
            startTrackerDone = true;
        }

        DisableAllTrackables();

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            imageTrackablesMap[trackable.GetName()].OnTrackSuccess(
                trackable.GetId(), trackable.GetName(), trackable.GetPose());
        }
    }
コード例 #25
0
        /// <summary>
        ///
        /// </summary>
        public virtual void DispatchEvent(int eventID)
        {
            #region Dispatch Event

            switch (eventID)
            {
            case EVENT_UPDATE_POSITION:
                trackingResult |= TrackingResult.PositionFound;
                if (onUpdate != null)
                {
                    onUpdate(this);
                }
                break;

            case EVENT_MISS_POSITION:
                trackingResult &= ~(TrackingResult.PositionFound);
                if (onMiss != null)
                {
                    onMiss(this);
                }
                break;

            case EVENT_UPDATE_ROTATION:
                trackingResult |= TrackingResult.RotationFound;
                if (onUpdate != null)
                {
                    onUpdate(this);
                }
                break;

            case EVENT_MISS_ROTATION:
                trackingResult &= ~(TrackingResult.RotationFound);
                if (onMiss != null)
                {
                    onMiss(this);
                }
                break;
            }

            #endregion Dispatch Event
        }
コード例 #26
0
    void Update()
    {
        if (Input.GetKey(KeyCode.Escape))
        {
            SceneStackManager.Instance.LoadPrevious();
        }

        if (instantTrackable == null)
        {
            return;
        }

        StartCamera();

        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_INSTANT);
            SensorDevice.GetInstance().Start();
            startTrackerDone = true;
        }

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() == 0)
        {
            instantTrackable.OnTrackFail();
            return;
        }

        if (Input.touchCount > 0)
        {
            UpdateTouchDelta(Input.GetTouch(0).position);
        }

        Trackable trackable  = trackingResult.GetTrackable(0);
        Matrix4x4 poseMatrix = trackable.GetPose() * Matrix4x4.Translate(touchSumPosition);

        instantTrackable.OnTrackSuccess(trackable.GetId(), trackable.GetName(), poseMatrix);
    }
コード例 #27
0
    void Update()
    {
        if (Input.GetKey(KeyCode.Escape))
        {
            SceneStackManager.Instance.LoadPrevious();
        }

        StartCamera();

        if (!startTrackerDone)
        {
            TrackerManager.GetInstance().StartTracker(TrackerManager.TRACKER_TYPE_MARKER);
            startTrackerDone = true;
        }

        DisableAllTrackables();

        TrackingState  state          = TrackerManager.GetInstance().UpdateTrackingState();
        TrackingResult trackingResult = state.GetTrackingResult();

        string recognizedID = null;

        for (int i = 0; i < trackingResult.GetCount(); i++)
        {
            Trackable trackable = trackingResult.GetTrackable(i);
            int       markerId  = -1;
            if (int.TryParse(trackable.GetName(), out markerId))
            {
                if (markerTrackableMap.ContainsKey(markerId))
                {
                    markerTrackableMap[markerId].OnTrackSuccess(
                        trackable.GetId(), trackable.GetName(), trackable.GetPose());

                    recognizedID += trackable.GetId().ToString() + ", ";
                }
            }
        }

        Debug.Log("Recognized Marker id : " + recognizedID);
    }
コード例 #28
0
        public virtual void TransformState(ref XDevicePlugin.ControllerState state)
        {
            //
            state.buttons = GetButtons();
            //
            int i = 0;

            state.axes[i++] = Input.GetAxis(LeftTrigger.name);
            state.axes[i++] = Input.GetAxis(RightTrigger.name);
            state.axes[i++] = Input.GetAxis(LeftThumbstickX.name);
            state.axes[i++] = Input.GetAxis(LeftThumbstickY.name);
            state.axes[i++] = Input.GetAxis(RightThumbstickX.name);
            state.axes[i++] = Input.GetAxis(RightThumbstickY.name);
            //
            Vector3    pos = InputTracking.GetLocalPosition(node);
            Quaternion rot = InputTracking.GetLocalRotation(node);
            //
            TrackingResult trackingResult = TrackingResult.NotTracked;

            if (pos != Vector3.zero)
            {
                trackingResult |= TrackingResult.PositionTracked;
            }
            if (rot != Quaternion.identity)
            {
                trackingResult |= TrackingResult.RotationTracked;
            }
            XDevicePlugin.SetInt(state.handle, XDevicePlugin.kField_TrackingResult, (int)trackingResult);
            //
            i = 0;
            state.position[i] = pos[i]; ++i;
            state.position[i] = pos[i]; ++i;
            state.position[i] = -pos[i]; ++i;
            i = 0;
            state.rotation[i] = -rot[i]; ++i;
            state.rotation[i] = -rot[i]; ++i;
            state.rotation[i] = rot[i]; ++i;
            state.rotation[i] = rot[i]; ++i;
        }
コード例 #29
0
    void Update()
    {
        DisableAllTrackables();

        TrackingState state = TrackerManager.GetInstance().UpdateTrackingState();

        if (state == null)
        {
            return;
        }

        TrackedImage image = state.GetImage();

        cameraBackgroundBehaviour.UpdateCameraBackgroundImage(state);

        TrackingResult trackingResult = state.GetTrackingResult();

        if (trackingResult.GetCount() > 0)
        {
            Trackable trackable = trackingResult.GetTrackable(0);
            if (cloudTrackablesMap.ContainsKey(trackable.GetCloudName()))
            {
                foreach (var cloudTrackable in cloudTrackablesMap[trackable.GetCloudName()])
                {
                    cloudTrackable.OnTrackSuccess(trackable.GetId(), trackable.GetName(), trackable.GetPose());
                }
            }
            else
            {
                if (cloudTrackablesMap.ContainsKey("_MaxstCloud_"))
                {
                    foreach (var cloudTrackable in cloudTrackablesMap["_MaxstCloud_"])
                    {
                        cloudTrackable.OnTrackSuccess(trackable.GetId(), trackable.GetName(), trackable.GetPose());
                    }
                }
            }
        }
    }
コード例 #30
0
        void FixedUpdate()
        {
            TrackingState trackingState = TrackerManager.GetInstance().UpdateTrackingState();

            if (trackingState == null)
            {
                return;
            }
            cameraBackgroundBehaviour.UpdateCameraBackgroundImage(trackingState);

            TrackingResult trackingResult = trackingState.GetTrackingResult();

            // state flag
            bool arCodeTracked = trackingResult.GetCount() > 0;

            // events flags (state changing)
            bool arCodeFound = arCode == null && arCodeTracked;
            bool arCodeLost = arCode != null && !arCodeTracked;
            // Debug.Log("tracked + " + arCodeFound);

            // update
            if (arCodeTracked)
            {
                arCode = trackingResult.GetTrackable(0);
                arCodeUpdate.Invoke(arCode.GetPose());
            }

            // call events handlers
            if (arCodeFound)
            {
                this.arCodeFound.Invoke();
            }
            else if (arCodeLost)
            {
                Debug.Log("LOST");
                arCode = null;
                this.arCodeLost.Invoke();
            }
        }
コード例 #31
0
        public override void ExecuteCmdlet()
        {
            // register the subscription for this service if it has not been before
            // sebsequent call to register is redundent
            RegisterSubscriptionWithRdfeForRemoteApp();

            NetworkCredential creds = null;
            CollectionCreationDetails details = new CollectionCreationDetails()
            {
                Name = CollectionName,
                TemplateImageName = ImageName,
                Region = Location,
                PlanName = Plan,
                Description = Description,
                CustomRdpProperty = CustomRdpProperty,
                Mode = (ResourceType == null || ResourceType == CollectionMode.Unassigned) ? CollectionMode.Apps : ResourceType.Value
            };
            OperationResultWithTrackingId response = null;


            if (ParameterSetName == "AzureVNet")
            {
                details.VNetName = VNetName;
                details.SubnetName = SubnetName;
                ValidateCustomerVNetParams(details.VNetName, details.SubnetName);

                if (DnsServers != null)
                {
                    details.DnsServers = DnsServers.Split(new char[] { ',' });
                }

                if (!String.IsNullOrWhiteSpace(Domain) || Credential != null)
                {
                    if (String.IsNullOrWhiteSpace(Domain) || Credential == null)
                    {
                        // you supplied either a domain or a cred, but not both.
                        ErrorRecord er = RemoteAppCollectionErrorState.CreateErrorRecordFromString(
                                                Commands_RemoteApp.InvalidADArguments,
                                                String.Empty,
                                                Client.Collections,
                                                ErrorCategory.InvalidArgument
                                                );

                        ThrowTerminatingError(er);
                    }

                    creds = Credential.GetNetworkCredential();
                    details.AdInfo = new ActiveDirectoryConfig()
                    {
                        DomainName = Domain,
                        OrganizationalUnit = OrganizationalUnit,
                        UserName = creds.UserName,
                        Password = creds.Password,
                    };
                }
            }
            else
            {
                if (String.IsNullOrEmpty(details.Region))
                {
                    ErrorRecord er = RemoteAppCollectionErrorState.CreateErrorRecordFromString(
                                            Commands_RemoteApp.InvalidLocationArgument,
                                            String.Empty,
                                            Client.Collections,
                                            ErrorCategory.InvalidArgument
                                            );

                    ThrowTerminatingError(er);
                }
            }

            response = CallClient(() => Client.Collections.Create(false, details), Client.Collections);

            if (response != null)
            {
                TrackingResult trackingId = new TrackingResult(response);
                WriteObject(trackingId);
            }
        }
コード例 #32
0
        public override void ExecuteCmdlet()
        {
            // register the subscription for this service if it has not been before
            // sebsequent call to register is redundent
            RegisterSubscriptionWithRdfeForRemoteApp();

            NetworkCredential creds = null;
            CollectionCreationDetails details = new CollectionCreationDetails()
            {
                Name = CollectionName,
                TemplateImageName = ImageName,
                Region = Location,
                PlanName = Plan,
                Description = Description,
                CustomRdpProperty = CustomRdpProperty,
                Mode = (ResourceType == null || ResourceType == CollectionMode.Unassigned) ? CollectionMode.Apps : ResourceType.Value
            };
            OperationResultWithTrackingId response = null;


            switch (ParameterSetName)
            {
                case DomainJoined:
                case AzureVNet:
                {
                    creds = Credential.GetNetworkCredential();
                    details.VNetName = VNetName;

                    if (SubnetName != null)
                    {
                        if (!IsFeatureEnabled(EnabledFeatures.azureVNet))
                        {
                            ErrorRecord er = RemoteAppCollectionErrorState.CreateErrorRecordFromString(
                                     string.Format(Commands_RemoteApp.LinkAzureVNetFeatureNotEnabledMessage),
                                     String.Empty,
                                     Client.Account,
                                     ErrorCategory.InvalidOperation
                                     );

                            ThrowTerminatingError(er);
                        }

                        details.SubnetName = SubnetName;
                        ValidateCustomerVNetParams(details.VNetName, details.SubnetName);

                        if (DnsServers != null)
                        {
                            details.DnsServers = DnsServers.Split(new char[] { ',' });
                        }

                        details.Region = Location;
                    }

                    details.AdInfo = new ActiveDirectoryConfig()
                    {
                        DomainName = Domain,
                        OrganizationalUnit = OrganizationalUnit,
                        UserName = creds.UserName,
                        Password = creds.Password,
                    };
                    break;
                }
                case NoDomain:
                default:
                {
                    details.Region = Location;
                    break;
                }
            }

            response = CallClient(() => Client.Collections.Create(false, details), Client.Collections);

            if (response != null)
            {
                TrackingResult trackingId = new TrackingResult(response);
                WriteObject(trackingId);
            }
        }
コード例 #33
0
        public override void ExecuteCmdlet()
        {
            RemoteAppVm vm = GetVm(CollectionName, UserUpn);
            RestartVmCommandParameter restartDetails = null;
            OperationResultWithTrackingId result = null;

            if (vm == null)
            {
                WriteWarning(string.Format(Commands_RemoteApp.NoVmInCollectionForUser, UserUpn, CollectionName));
                
                return;
            }

            if (vm.LoggedOnUserUpns.Count > 1)
            {
                string otherLoggedInUsers = null;
                string warningCaption = null;
                string warningMessage = null;

                foreach (string user in vm.LoggedOnUserUpns)
                {
                    if (string.Compare(user, UserUpn, true) != 0)
                    {
                        otherLoggedInUsers += "\n" + user;
                    }
                }

                warningMessage = string.Format(Commands_RemoteApp.RestartVmWarningMessage, UserUpn, vm.VirtualMachineName, otherLoggedInUsers);
                warningCaption = string.Format(Commands_RemoteApp.RestartVmWarningCaption, vm.VirtualMachineName);

                WriteWarning(warningMessage);

                if (!ShouldProcess(null, Commands_RemoteApp.GenericAreYouSureQuestion, warningCaption))
                {
                    return;
                }
            }

            restartDetails = new RestartVmCommandParameter(vm.VirtualMachineName);
            restartDetails.LogoffWaitTimeInSeconds = LogoffWaitSeconds <= 0 ? 60 : LogoffWaitSeconds;
            restartDetails.LogoffMessage = string.IsNullOrEmpty(LogoffMessage) ? string.Format(Commands_RemoteApp.DefaultLogoffMessage, restartDetails.LogoffWaitTimeInSeconds) : LogoffMessage;

            result = CallClient(() => Client.Collections.RestartVm(CollectionName, restartDetails), Client.Collections);

            if (result != null)
            {
                TrackingResult trackingId = new TrackingResult(result);
                WriteObject(trackingId);
            }
        }