Beispiel #1
0
    public void Initialize(
        [Inject] ITargetingManager targetingManager)
    {
        _targetingManager = targetingManager;

        _moveObjectRecognizer = new GestureRecognizer();
        _moveObjectRecognizer.SetRecognizableGestures(GestureSettings.ManipulationTranslate);
        _moveObjectRecognizer.ManipulationStartedEvent   += MoveObjectStarted;
        _moveObjectRecognizer.ManipulationUpdatedEvent   += MoveObjectUpdated;
        _moveObjectRecognizer.ManipulationCompletedEvent += MoveObjectCompleted;
        _moveObjectRecognizer.ManipulationCanceledEvent  += MoveObjectCanceled;
    }
Beispiel #2
0
    public void Initialize(
        [Inject] ITargetingManager targetingManager)
    {
        _targetingManager = targetingManager;

        _scaleObjectRecognizer = new GestureRecognizer();
        _scaleObjectRecognizer.SetRecognizableGestures(GestureSettings.NavigationX);
        _scaleObjectRecognizer.NavigationStartedEvent   += ScaleObjectStarted;
        _scaleObjectRecognizer.NavigationUpdatedEvent   += ScaleObjectUpdated;
        _scaleObjectRecognizer.NavigationCompletedEvent += ScaleObjectCompleted;
        _scaleObjectRecognizer.NavigationCanceledEvent  += ScaleObjectCanceled;

        _originalScale          = transform.localScale;
        _currentScaleMultiplier = 1.0f;
    }
    public ProgramManager(
        [Inject(Id = "Info text field")]        Text infoText,
        [Inject(Id = "Info text root object")]  GameObject infotextObject,
        [Inject]                                ITargetingManager targetingManager,
        [Inject(Id = "TCP Port")]               int tcpPort,
        [Inject(Id = "UDP Port")]               int udpPort,
        [Inject]                                ILeapConnectionManager connectionManager,
        [Inject(Id = "Calibration status")]     ReactiveProperty <bool> calibrationStatus,
        [Inject]                                ILeapHandDataVisualizer handVisualizer)
    {
        // Assign all variables
        _currentState = States.PROGRAM_STARTED;

        _keywordRecognizer = new KeywordRecognizer(_keywords);
        _keywordRecognizer.OnPhraseRecognized += OnPhraseRecognized;
        _keywordRecognizer.Start();

        _infotext       = infoText;
        _infoTextObject = infotextObject;

        _targetingManager = targetingManager;

        _tcpPort           = tcpPort;
        _udpPort           = udpPort;
        _connectionManager = connectionManager;
        _calibrationStatus = calibrationStatus;
        _handVisualizer    = handVisualizer;

        // Initialize the info text
        _infoTextObject.SetActive(true);
        _infotext.text = "Hello there! Say 'Do startup' to get going.";
        _infotext.SetAllDirty();

        // Start observing the calibration status
        // Make sure to observe and subscribe on main thread, since the text field can only be updated on the main thread
        _calibrationStatus.ObserveOn(Scheduler.MainThread).SubscribeOn(Scheduler.MainThread).Subscribe(calibDone =>
        {
            if (calibDone)
            {
                _currentState = States.CALIBRATION_DONE;
                // TODO: Add option to redo calibration instead.
                _infotext.text = "Calibration done. Check the results. Say 'Looks good' when done.";
                _handVisualizer.ShowHands();
            }
        });
    }