Beispiel #1
0
        void HandleIntEvent(object sender, LMWidgets.EventArg <int> e)
        {
            handId = e.CurrentValue;
//						Debug.Log ("GetHandById looking for hand of id " + handId);
            if (handId >= 0)
            {
                FoundState.Change(FOUND_STATE_FOUND);
            }
// making the optimistic assumption that there is a hand of that ID In the scene and some other process found it.
        }
Beispiel #2
0
 void OnHandLeave(object sender, LMWidgets.EventArg <HandTouchData> e)
 {
     if (HandContactState.state == HCS_HAS_HAND)
     {
         if (TargetHandId.IntValue == e.CurrentValue.ID)
         {
             TargetHandId.IntValue = -1;
             HandContactState.Change(HCS_NOHAND);
         }
     }
 }
Beispiel #3
0
 void FrameEventHandler(object sender, LMWidgets.EventArg <FrameData> e)
 {
     if (e.CurrentValue.CurrentFrame.Hands.Count > 0)
     {
         handCountState.Change(JAX_HANDS);
     }
     else
     {
         handCountState.Change(JAX_NO_HANDS);
     }
 }
Beispiel #4
0
        // Use this for initialization
        void Start()
        {
            FoundState = StateList.Init(FOUND_STATE_NAME, FOUND_STATE_NO_ID, FOUND_STATE_NOT_FOUND, FOUND_STATE_FOUND, FOUND_STATE_HAND_INVALID);
            FoundState.Change(!NoHandId ? FOUND_STATE_NOT_FOUND : FOUND_STATE_NO_ID);

            if (handIdInput)
            {
                handIdInput.IntEvent += HandleIntEvent;
            }

            FoundState.StateChangedEvent += HandleStateChangedEvent;
        }
Beispiel #5
0
        public void InitArmHUDState()
        {
            //		handController = GameObject.FindObjectOfType<HandController> () as HandController;
            //		LookAtTarget = GameObject.Find ("OVRCameraRig") as GameObject;


            if (!StateList.HasList(STATE_NAME_ARMHUD))
            {
                InitArmHUDStateList();
            }
            ArmHUDState = new State(STATE_NAME_ARMHUD);
            ArmHUDState.StateChangedEvent += OnArmHUDStateChange;
            ArmHUDState.Change(ARMHUDSTATE_NOLEFTHAND);
        }
Beispiel #6
0
        // Use this for initialization
        #region loop
        void Start()
        {
            if (!TouchTracker)
            {
                TouchTracker = GetComponent <HandTouchTracker> ();
            }

            TouchTracker.HandleEnter += OnHandEnter;
            TouchTracker.HandleLeave += OnHandLeave;

            HandContactState = StateList.Init("TouchMap HandContactState", HCS_HAS_HAND, HCS_NOHAND);
            HandContactState.Change(HCS_NOHAND);
            HandContactState.StateChangedEvent += HandleHandContactStateChangedEvent;

            TouchingHand.HandEvent += HandleHandEvent;
            CursorFirstPosition     = Cursor.transform.position;
            handlerSet              = TryCPF();
        }
Beispiel #7
0
        public void InitArmHUDState()
        {
            //		handController = GameObject.FindObjectOfType<HandController> () as HandController;
            //		LookAtTarget = GameObject.Find ("OVRCameraRig") as GameObject;

            if (!StateList.HasList (STATE_NAME_ARMHUD))
                InitArmHUDStateList ();
            ArmHUDState = new State (STATE_NAME_ARMHUD);
            ArmHUDState.StateChangedEvent += OnArmHUDStateChange;
            ArmHUDState.Change (ARMHUDSTATE_NOLEFTHAND);
        }
Beispiel #8
0
        // Use this for initialization
        void Start()
        {
            FoundState = StateList.Init (FOUND_STATE_NAME, FOUND_STATE_NO_ID, FOUND_STATE_NOT_FOUND, FOUND_STATE_FOUND, FOUND_STATE_HAND_INVALID);
                        FoundState.Change (!NoHandId ? FOUND_STATE_NOT_FOUND : FOUND_STATE_NO_ID);

                        if (handIdInput)
                                handIdInput.IntEvent += HandleIntEvent;

                        FoundState.StateChangedEvent += HandleStateChangedEvent;
        }
Beispiel #9
0
        void Start()
        {
            if (!TouchTracker)
                                TouchTracker = GetComponent<HandTouchTracker> ();

                        TouchTracker.HandleEnter += OnHandEnter;
                        TouchTracker.HandleLeave += OnHandLeave;

                        HandContactState = StateList.Init ("TouchMap HandContactState", HCS_HAS_HAND, HCS_NOHAND);
                        HandContactState.Change (HCS_NOHAND);
                        HandContactState.StateChangedEvent += HandleHandContactStateChangedEvent;

                        TouchingHand.HandEvent += HandleHandEvent;
                        CursorFirstPosition = Cursor.transform.position;
                        handlerSet = TryCPF ();
        }
Beispiel #10
0
        // Update is called once per frame
        void Update()
        {
            HandModel model0;
            HandModel model1;
            bool      wasAligned = false;

            if (handController.GetAllGraphicsHands().Length == 1)
            {
                model0 = handController.GetAllGraphicsHands()[0];
                if (model0.GetLeapHand().IsLeft == true)
                {
                    AlignArmHUD(model0);
                    wasAligned = true;
                }
                else if (ArmHUDState.state == ARMHUDSTATE_PANELVISIBLE)
                {
                }
                else
                {
                    if (ArmHUDisOpen == true)
                    {
                        ArmHUDState.Change(ARMHUDSTATE_DROPPED);
                    }
                }
            }
            else if (handController.GetAllGraphicsHands().Length > 1)
            {
                // FIXME: This should either persist based on ID
                // or should require a single left hand.
                model0 = handController.GetAllGraphicsHands()[0];
                model1 = handController.GetAllGraphicsHands()[1];
                if (model0.GetLeapHand().IsLeft&&
                    model1.GetLeapHand().IsRight)
                {
                    AlignArmHUD(model0);
                    wasAligned = true;
                }
                else if (model0.GetLeapHand().IsRight&&
                         model1.GetLeapHand().IsLeft)
                {
                    AlignArmHUD(model1);
                    wasAligned = true;
                }
                else
                {
                    if (ArmHUDisOpen == true)
                    {
                        ArmHUDState.Change(ARMHUDSTATE_DROPPED);
                    }
                }
            }
            else
            {
                if (ArmHUDisOpen == true)
                {
                    ArmHUDState.Change(ARMHUDSTATE_DROPPED);
                }
            }

            if (ArmHUDState.state == ARMHUDSTATE_PANELVISIBLE)
            {
                UpdateArmHUDGUIvalues();
            }

            if (!wasAligned)
            {
                targetHandID = -1;
            }
        }