Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            ClientContext.PreloadNativeLibraries();
            using (ClientContext context = new ClientContext("com.osvr.exampleclients.managed.TrackerCallback"))
            {
                // This is just one of the paths. You can also use:
                // /me/hands/right
                // /me/head
                using (Interface lefthand = context.getInterface("/me/hands/left"))
                {

                    TrackerCallbacks callbacks = new TrackerCallbacks();
                    // The coordinate system is right-handed, withX to the right, Y up, and Z near.
                    var poseInterface = new PoseInterface(lefthand);
                    poseInterface.StateChanged += TrackerCallbacks.myTrackerCallback;

                    // If you just want orientation
                    var orientationInterface = new OrientationInterface(lefthand);
                    orientationInterface.StateChanged += TrackerCallbacks.myOrientationCallback;

                    // or position
                    var positionInterface = new PositionInterface(lefthand);
                    positionInterface.StateChanged += TrackerCallbacks.myPositionCallback;

                    // Pretend that this is your application's main loop
                    for (int i = 0; i < 1000000; ++i)
                    {
                        context.update();
                    }

                    Console.WriteLine("Library shut down; exiting.");
                }
            }
        }
Ejemplo n.º 2
0
        public Tracker(ClientContext context, String path)
        {
            rollValue = pitchValue = yawValue = 0.0f;

            poseInterface        = context.GetPoseInterface(path);
            positionInterface    = context.GetPositionInterface(path);
            orientationInterface = context.GetOrientationInterface(path);

            poseInterface.StateChanged        += PoseInterface_StateChanged;
            positionInterface.StateChanged    += PositionInterface_StateChanged;
            orientationInterface.StateChanged += OrientationInterface_StateChanged;
        }
Ejemplo n.º 3
0
        public Tracker(ClientContext context, String path)
        {
            rollValue = pitchValue = yawValue = 0.0f;

            poseInterface = context.GetPoseInterface(path);
            positionInterface = context.GetPositionInterface(path);
            orientationInterface = context.GetOrientationInterface(path);

            poseInterface.StateChanged += PoseInterface_StateChanged;
            positionInterface.StateChanged += PositionInterface_StateChanged;
            orientationInterface.StateChanged += OrientationInterface_StateChanged;
        }
Ejemplo n.º 4
0
        /*--------------------------------------------------------------------------------------------*/
        public void Start()
        {
            int           i     = (InitializePalmsOnly ? 2 : 0);
            int           inc   = (InitializePalmsOnly ? TrackersPerHand : 1);
            int           count = vGameObjects.Length;
            ClientContext cont  = ContextProvider.Context;

            for (  ; i < count; i += inc)
            {
                string path = GetTrackerPath(i);
                vInterfaces[i] = PoseInterface.GetInterface(cont, path);
            }
        }
Ejemplo n.º 5
0
        public static void Main(string[] args)
        {
            ClientContext.PreloadNativeLibraries();
			using (ClientContext context = new ClientContext("com.osvr.exampleclients.managed.TrackerCallback"))
            {
                // This is just one of the paths. You can also use:
                // /me/hands/right
                // /me/head
                using (Interface lefthand = context.getInterface("/me/hands/left"))
                {

                    TrackerCallbacks callbacks = new TrackerCallbacks();
                    // The coordinate system is right-handed, withX to the right, Y up, and Z near.
                    var poseInterface = new PoseInterface(lefthand);
                    poseInterface.StateChanged += TrackerCallbacks.myTrackerCallback;

                    // If you just want orientation
                    var orientationInterface = new OrientationInterface(lefthand);
                    orientationInterface.StateChanged += TrackerCallbacks.myOrientationCallback;

                    // or position
                    var positionInterface = new PositionInterface(lefthand);
                    positionInterface.StateChanged += TrackerCallbacks.myPositionCallback;

                    bool resetYawMode = false;
                    // Pretend that this is your application's main loop
                    for (int i = 0; i < 1000000; ++i)
                    {
                        // toggle between reset yaw mode and normal mode
                        // every 5000 iterations.
                        if (i % 5000 == 0)
                        {
                            resetYawMode = !resetYawMode;
                            if(resetYawMode)
                            {
                                context.SetRoomRotationUsingHead();
                            }
                            else
                            {
                                context.ClearRoomToWorldTransform();
                            }
                        }
                        context.update();
                    }

                    Console.WriteLine("Library shut down; exiting.");
                }
            }
        }
Ejemplo n.º 6
0
        public static void Main(string[] args)
        {
            ClientContext.PreloadNativeLibraries();
            using (ServerAutoStarter serverAutoStarter = new ServerAutoStarter())
                using (ClientContext context = new ClientContext("com.osvr.exampleclients.managed.TrackerCallback"))
                {
                    // This is just one of the paths. You can also use:
                    // /me/hands/right
                    // /me/head
                    using (Interface lefthand = context.getInterface("/me/hands/left"))
                    {
                        TrackerCallbacks callbacks = new TrackerCallbacks();
                        // The coordinate system is right-handed, withX to the right, Y up, and Z near.
                        var poseInterface = new PoseInterface(lefthand);
                        poseInterface.StateChanged += TrackerCallbacks.myTrackerCallback;

                        // If you just want orientation
                        var orientationInterface = new OrientationInterface(lefthand);
                        orientationInterface.StateChanged += TrackerCallbacks.myOrientationCallback;

                        // or position
                        var positionInterface = new PositionInterface(lefthand);
                        positionInterface.StateChanged += TrackerCallbacks.myPositionCallback;

                        bool resetYawMode = false;
                        // Pretend that this is your application's main loop
                        for (int i = 0; i < 1000000; ++i)
                        {
                            // toggle between reset yaw mode and normal mode
                            // every 5000 iterations.
                            if (i % 5000 == 0)
                            {
                                resetYawMode = !resetYawMode;
                                if (resetYawMode)
                                {
                                    context.SetRoomRotationUsingHead();
                                }
                                else
                                {
                                    context.ClearRoomToWorldTransform();
                                }
                            }
                            context.update();
                        }

                        Console.WriteLine("Library shut down; exiting.");
                    }
                }
        }