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."); } } }
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; }
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; }
/*--------------------------------------------------------------------------------------------*/ 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); } }
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."); } } }
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."); } } }