Exemple #1
0
        private void SearchCurrentWebclient()
        {
            foreach (var wc in _webclientManager.Get())
            {
                if (wc.Owner == _user.Id)
                {
                    if (wc != _tablet)
                    {
                        _tabletDisposables.Clear();
                        _tablet = wc;

                        _tablet.ModelChange()
                        .Where(changes => changes.Contains("Orientation") ||
                               changes.Contains("SelectedId") ||
                               changes.Contains("SelectedType"))
                        .Subscribe(_ => UpdateTransparency())
                        .AddTo(_tabletDisposables);
                        UpdateTransparency();
                    }
                    return;
                }
            }

            // no matching client found
            _tabletDisposables.Clear();
            _tablet = null;
            UpdateTransparency();
        }
        private void SearchCurrentWebclient()
        {
            foreach (var wc in _webclientManager.Get())
            {
                if (wc.Owner == _user.Id)
                {
                    if (wc != _tablet)
                    {
                        _webclientDisposables.Clear();
                        _tablet = wc;

                        _tablet.ModelChange()
                        .Where(changes => changes.Contains("LookingAtId") || changes.Contains("LookingAtType"))
                        .Subscribe(_ => UpdateOutline())
                        .AddTo(_webclientDisposables);
                        UpdateOutline();
                    }
                    return;
                }
            }

            // no matching client found
            _webclientDisposables.Clear();
            _tablet = null;
            UpdateOutline();
        }
        private void SearchCurrentWebclient()
        {
            foreach (var wc in _webclientManager.Get())
            {
                if (wc.Owner == _client.Id)
                {
                    if (wc != _webclient)
                    {
                        _webclientDisposables.Clear();
                        _webclient = wc;

                        _webclient.ModelChange()
                        .Where(changes => changes.Contains("ScreenMenu") || changes.Contains("IsVoiceActive"))
                        .Subscribe(_ => UpdateScreenIndicators())
                        .AddTo(_webclientDisposables);
                        UpdateScreenIndicators();
                    }
                    return;
                }
            }

            // no matching client found
            _webclientDisposables.Clear();
            _webclient = null;
            UpdateScreenIndicators();
        }
        private void SearchCurrentTablet()
        {
            foreach (var wc in _webclients.Get())
            {
                if (wc.Owner == _user.Id)
                {
                    if (wc != _tablet)
                    {
                        _tabletDisposables.Clear();
                        _tablet = wc;

                        _tablet.ModelChange()
                        .TakeUntilDestroy(this)
                        .Subscribe(_ => UpdateCursor());
                        UpdateCursor();
                    }
                    return;
                }
            }

            // no matching client found
            _tabletDisposables.Clear();
            _tablet = null;
            UpdateCursor();
        }
Exemple #5
0
    private void SearchCurrentWebclient()
    {
        foreach (var wc in _webclients.Get())
        {
            if (wc.Owner == _user.Id)
            {
                if (wc != _tablet)
                {
                    _tabletDisposables.Clear();
                    _tablet = wc;

                    _tablet.ModelChange()
                    .Where(changes => changes.Contains("IsVoiceActive"))
                    .Subscribe(_ => UpdateIsActive())
                    .AddTo(_tabletDisposables);
                    UpdateIsActive();
                }
                return;
            }
        }

        // no matching client found
        _tabletDisposables.Clear();
        _tablet = null;
        UpdateIsActive();
    }
Exemple #6
0
        private void SearchCurrentTablet()
        {
            foreach (var wc in _webclients.Get())
            {
                if (wc.Owner == _user.Id)
                {
                    if (wc != _tablet)
                    {
                        _tabletDisposables.Clear();
                        _tablet = wc;

                        _tablet.ScreenMenuRx
                        .ObserveOnMainThread()
                        .Subscribe(_ => UpdateIndicator())
                        .AddTo(_tabletDisposables);

                        _tablet.ModelChange()
                        .Where(c => c.Contains("IsVoiceActive"))
                        .Subscribe(_ => UpdateIndicator())
                        .AddTo(_tabletDisposables);
                    }
                    return;
                }
            }

            // no matching client found
            _tabletDisposables.Clear();
            _tablet = null;
        }
        private void UpdateSelection()
        {
            _renderer.GetPropertyBlock(_propBlock);
            var user = StreamClient.Instance;

            if (_plotFilter.SelectedBy != null && _plotFilter.SelectedBy.Any(id => _tablets.Get(id)?.Owner == user.Id))
            {
                _propBlock.SetFloat("_isSelectedOffset", 1f);
            }
            else
            {
                _propBlock.SetFloat("_isSelectedOffset", 0f);
            }
            _renderer.SetPropertyBlock(_propBlock);
        }
        private void Update()
        {
            var isHololensCalibrating = _streamClient.IsCalibrating;

            _hololensRoomscaleCalibration.enabled = isHololensCalibrating;
            _hololensSingleCalibration.enabled    = isHololensCalibrating;

            var isTabletCalibrating = _webClientManager.Get().Any(c => c.IsCalibrating);

            _webClientCalibration.enabled = isTabletCalibrating;

            var isVuforiaActive = isHololensCalibrating || isTabletCalibrating;

            _vuforiaBehaviour.enabled = isVuforiaActive;
        }
Exemple #9
0
        private void SearchCurrentTablet()
        {
            foreach (var wc in _webclients.Get())
            {
                if (wc.Owner == _user.Id)
                {
                    if (wc != _tablet)
                    {
                        _tabletDisposables.Clear();
                        _tablet = wc;

                        _tablet.ModelChange()
                        .Where(changes => changes.Contains("LookingAtType") || changes.Contains("LookingAtId") || changes.Contains("Orientation"))
                        .Subscribe(_ => ResetProgress())
                        .AddTo(_tabletDisposables);
                    }
                    return;
                }
            }

            // no matching client found
            _tabletDisposables.Clear();
            _tablet = null;
        }
        private void Update()
        {
            var client = _clientManager.Get().FirstOrDefault(c => c.IsCalibrating);

            if (_calibratedClient != client)
            {
                ResetProgress();
                _calibratedClient = client;

                // TODO: dataset must be disabled before marker can be resized
                //var objectTracker = Vuforia.TrackerManager.Instance.GetTracker<Vuforia.ObjectTracker>();
                //objectTracker.Stop();

                //var dataSet = objectTracker.GetActiveDataSets().First();
                //objectTracker.DeactivateDataSet(dataSet);

                var deviceWidth   = client.GetDeviceSizeCm().x;
                var vuforiaMarker = GetComponent <Vuforia.ImageTargetBehaviour>();
                // vuforiaMarker.SetWidth(deviceWidth);
                // Debug.Log($"Setting vuforia marker size to {deviceWidth}");

                //objectTracker.ActivateDataSet(dataSet);
            }

            if (IsTrackingActive && client)
            {
                if (_trackerSamples.Values.Count > 0)
                {
                    CurrentSamples = _trackerSamples.Values.Min(l => l.Count);
                }
                else
                {
                    CurrentSamples = 0;
                }

                if (CurrentSamples >= MaxSamples)
                {
                    StartCalibration();
                }
                else
                {
                    var activeTrackers = client.Trackers
                                         .Where(id => id >= 0)
                                         .Select(id => _trackerManager.Get(id))
                                         .Where(t => t != null && t.IsActive);

                    // only collect samples if all trackers are active
                    if (activeTrackers.Count() != client.Trackers.Length)
                    {
                        return;
                    }

                    _markerSamples.Add(Tuple.Create(transform.position, transform.rotation));

                    foreach (var tracker in activeTrackers)
                    {
                        if (!_trackerSamples.ContainsKey(tracker.Id))
                        {
                            _trackerSamples.Add(tracker.Id, new List <Tuple <Vector3, Quaternion> >());
                        }

                        _trackerSamples[tracker.Id].Add(Tuple.Create(tracker.transform.position, tracker.transform.rotation));
                    }
                }
            }
        }