Ejemplo n.º 1
0
    public void InitModules()
    {
        try
        {
            nuitrack.Nuitrack.Init();

            depthSensor     = nuitrack.DepthSensor.Create();
            userTracker     = nuitrack.UserTracker.Create();
            skeletonTracker = nuitrack.SkeletonTracker.Create();

            depthSensor.OnUpdateEvent             += DepthUpdate;
            userTracker.OnUpdateEvent             += UserUpdate;
            skeletonTracker.OnSkeletonUpdateEvent += SkeletonsUpdate;

            nuitrack.Nuitrack.Run();

            issuesProcessor        = (GameObject)Instantiate(issuesProcessorPrefab);
            depthUserVisualization = (GameObject)Instantiate(depthUserVisualizationPrefab);
            skeletonsVisualization = (GameObject)Instantiate(skeletonsVisualizationPrefab);
        }
        catch (Exception ex)
        {
            exceptionsLogger.AddEntry(ex.ToString());
        }
    }
Ejemplo n.º 2
0
 public void ChangeModules(bool depthOn, bool colorOn, bool userOn, bool skeletonOn, bool handsOn, bool gesturesOn)
 {
     try
     {
         InitTrackers(depthOn, colorOn, userOn, skeletonOn, handsOn, gesturesOn);
         //issuesProcessor = (GameObject)Instantiate(issuesProcessorPrefab);
     }
     catch (Exception ex)
     {
         exceptionsLogger.AddEntry(ex.ToString());
     }
 }
Ejemplo n.º 3
0
    public void ChangeModules(bool depthOn, bool colorOn, bool userOn, bool skeletonOn, bool handsOn, bool gesturesOn)
    {
        try
        {
            //      if (depthSensor != null) depthSensor.OnUpdateEvent -= DepthUpdate;
            //      if (userTracker != null) userTracker.OnUpdateEvent -= UserUpdate;
            //      if (skeletonTracker != null) skeletonTracker.OnSkeletonUpdateEvent -= SkeletonsUpdate;
            //      if (handTracker != null) handTracker.OnUpdateEvent -= HandTrackerUpdate;
            //      if (gestureRecognizer != null) gestureRecognizer.OnNewGesturesEvent -= GesturesUpdate;

            //*

            if (asyncInit)
            {
                if (nuitrackInitialized)
                {
                    InitTrackers(depthOn, colorOn, userOn, skeletonOn, handsOn, gesturesOn);
                }
                else
                {
                    currentDepth    = depthOn;
                    currentColor    = colorOn;
                    currentUser     = userOn;
                    currentSkeleton = skeletonOn;
                    currentHands    = handsOn;
                    currentGestures = gesturesOn;
                    if (!_threadRunning)
                    {
                        _thread = new Thread(ThreadedWork);
                        _thread.Start();
                    }
                }
            }
            else
            {
                InitTrackers(depthOn, colorOn, userOn, skeletonOn, handsOn, gesturesOn);
            }
            //			*/

            //issuesProcessor = (GameObject)Instantiate(issuesProcessorPrefab);
        }
        catch (Exception ex)
        {
            exceptionsLogger.AddEntry(ex.ToString());
        }
    }
    private void OnNewGesture(Gesture gesture)
    {
        string newEntry =
            "User " + gesture.UserID + ": " +
            Enum.GetName(typeof(nuitrack.GestureType), (int)gesture.Type);

        exceptionsLogger.AddEntry(newEntry);
    }
Ejemplo n.º 5
0
    void Awake()
    {
        exceptionsLogger = GameObject.FindObjectOfType <ExceptionsLogger>();
        NuitrackInitState state = NuitrackLoader.InitNuitrackLibraries();

        if (state != NuitrackInitState.INIT_OK)
        {
            exceptionsLogger.AddEntry("Nuitrack native libraries iniialization error: " + Enum.GetName(typeof(NuitrackInitState), state));
        }
    }
Ejemplo n.º 6
0
    void Start()
    {
        skeletonParts = new Dictionary <int, GameObject[]>();

        //nuitrack initialization and creation of depth and segmentation generators:
        try
        {
            nuitrack.Nuitrack.Init(debugPath);
            skeletonTracker = nuitrack.SkeletonTracker.Create();
            //event handler registerering:
            skeletonTracker.OnSkeletonUpdateEvent += SkeletonUpdate;

            nuitrack.Nuitrack.Run();
        }
        catch (Exception ex)
        {
            exceptionsLogger.AddEntry(ex.ToString());
        }
    }
Ejemplo n.º 7
0
 void ProcessGesturesData(nuitrack.GestureData data)
 {
     if (data.NumGestures > 0)
     {
         for (int i = 0; i < data.Gestures.Length; i++)
         {
             string newEntry =
                 "User " + data.Gestures[i].UserID + ": " +
                 Enum.GetName(typeof(nuitrack.GestureType), (int)data.Gestures[i].Type);
             exceptionsLogger.AddEntry(newEntry);
         }
     }
 }
    void Start()
    {
        //nuitrack initialization and creation of depth and userTracker modules:
        try
        {
            nuitrack.Nuitrack.Init(debugPath);
            depthSensor = nuitrack.DepthSensor.Create();
            depthSensor.SetMirror(false);
            nuitrack.OutputMode mode = depthSensor.GetOutputMode();

            frameStep = mode.XRes / hRes;
            if (frameStep <= 0)
            {
                frameStep = 1;                             // frameStep should be greater then 0
            }
            hRes = mode.XRes / frameStep;

            depthToScale = 0.9f * 2f * Mathf.Tan(0.5f * mode.HFOV) / hRes;

            InitMeshes(
                ((mode.XRes / frameStep) + (mode.XRes % frameStep == 0 ? 0 : 1)) *
                ((mode.YRes / frameStep) + (mode.YRes % frameStep == 0 ? 0 : 1))
                );
            userTracker = nuitrack.UserTracker.Create();

            //event handlers registering:
            depthSensor.OnUpdateEvent += DepthUpdate;
            userTracker.OnUpdateEvent += UserUpdate;

            nuitrack.Nuitrack.Run();
        }
        catch (Exception ex)
        {
            exceptionsLogger.AddEntry(ex.ToString());
        }
    }
Ejemplo n.º 9
0
    public void ChangeModules(bool depthOn, bool colorOn, bool userOn, bool skeletonOn, bool handsOn, bool gesturesOn)
    {
        try
        {
            //      if (depthSensor != null) depthSensor.OnUpdateEvent -= DepthUpdate;
            //      if (userTracker != null) userTracker.OnUpdateEvent -= UserUpdate;
            //      if (skeletonTracker != null) skeletonTracker.OnSkeletonUpdateEvent -= SkeletonsUpdate;
            //      if (handTracker != null) handTracker.OnUpdateEvent -= HandTrackerUpdate;
            //      if (gestureRecognizer != null) gestureRecognizer.OnNewGesturesEvent -= GesturesUpdate;

            //*
            if (!nuitrackInitialized)
            {
            #if UNITY_IOS
                nuitrack.Nuitrack.Init("", nuitrack.Nuitrack.NuitrackMode.DEBUG);
            #else
                nuitrack.Nuitrack.Init();
            #endif
                Debug.Log("init ok");
                depthSensorInit       = nuitrack.DepthSensor.Create();
                colorSensorInit       = nuitrack.ColorSensor.Create();
                userTrackerInit       = nuitrack.UserTracker.Create();
                skeletonTrackerInit   = nuitrack.SkeletonTracker.Create();
                handTrackerInit       = nuitrack.HandTracker.Create();
                gestureRecognizerInit = nuitrack.GestureRecognizer.Create();

                nuitrack.Nuitrack.Run();
                Debug.Log("run ok");
                nuitrackInitialized = true;
            }
//			*/

            depthFrame      = null;
            colorFrame      = null;
            userFrame       = null;
            skeletonData    = null;
            handTrackerData = null;
            gesturesData    = null;
            //
            //      depthSensor = null;
            //      userTracker = null;
            //      skeletonTracker = null;
            //      handTracker = null;
            //      gestureRecognizer = null;

            //if (issuesProcessor != null) Destroy(issuesProcessor);

            if (prevDepth != depthOn)
            {
                prevDepth = depthOn;
                if (depthOn)
                {
                    depthSensor = depthSensorInit;
                    depthSensorInit.OnUpdateEvent += DepthUpdate;
                }
                else
                {
                    depthSensorInit.OnUpdateEvent -= DepthUpdate;
                    depthSensor = null;
                }
            }

            if (prevColor != colorOn)
            {
                prevColor = colorOn;
                if (colorOn)
                {
                    colorSensor = colorSensorInit;
                    colorSensorInit.OnUpdateEvent += ColorUpdate;
                }
                else
                {
                    colorSensorInit.OnUpdateEvent -= ColorUpdate;
                    colorSensor = null;
                }
            }

            if (prevUser != userOn)
            {
                prevUser = userOn;
                if (userOn)
                {
                    userTracker = userTrackerInit;
                    userTrackerInit.OnUpdateEvent += UserUpdate;
                }

                else
                {
                    userTrackerInit.OnUpdateEvent -= UserUpdate;
                    userTracker = null;
                }
            }

            if (skeletonOn != prevSkel)
            {
                prevSkel = skeletonOn;
                if (skeletonOn)
                {
                    skeletonTracker = skeletonTrackerInit;
                    skeletonTrackerInit.OnSkeletonUpdateEvent += SkeletonsUpdate;
                }
                else
                {
                    skeletonTrackerInit.OnSkeletonUpdateEvent -= SkeletonsUpdate;
                    skeletonTracker = null;
                }
            }

            if (prevHand != handsOn)
            {
                prevHand = handsOn;
                if (handsOn)
                {
                    handTracker = handTrackerInit;
                    handTrackerInit.OnUpdateEvent += HandTrackerUpdate;
                }
                else
                {
                    handTrackerInit.OnUpdateEvent -= HandTrackerUpdate;
                    handTracker = null;
                }
            }

            if (prevGesture != gesturesOn)
            {
                prevGesture = gesturesOn;
                if (gesturesOn)
                {
                    gestureRecognizer = gestureRecognizerInit;
                    gestureRecognizerInit.OnNewGesturesEvent += GesturesUpdate;
                }
                else
                {
                    gestureRecognizerInit.OnNewGesturesEvent -= GesturesUpdate;
                    gestureRecognizer = null;
                }
            }
            //issuesProcessor = (GameObject)Instantiate(issuesProcessorPrefab);
        }
        catch (Exception ex)
        {
            exceptionsLogger.AddEntry(ex.ToString());
        }
    }