protected override void Dispose(bool disposing) { base.Dispose(disposing); if (_oculusRift != null) { _oculusRift.Shutdown(); _oculusRift = null; } }
public override int TryInitialize() { _oculusRift = new OculusRift(); if (_oculusRift.Initialize(Game.GraphicsDevice) != 0) { return(-1); } return(0); }
public GraphViewer() { InitializeComponent(); isLeftMouseDown_ = false; isRightMouseDown_ = false; isLeapEnabled_ = false; isOculusEnabled_ = false; ovr_ = null; lastFrameID_ = -1; leapController_ = null; }
public void Initialize() { var config = Util.GetConfigManager(); initializeCamera(config.Parameters.DeviceName, config.Parameters.GestureModuleName); _oculus = new OculusRift(); DistortionParameter = _oculus.DistortionParameter; _oculus.OnUpdated += new EventHandler <Matrix3D>((o, e) => { Orientation = e; }); _hand = new HandRecognition( config.Parameters.HandRecognitionMaxDepth, config.Parameters.HandRecognitionMaxDepthGap, config.Parameters.HandRecognitionPixelSkip); _path = config.Parameters.BackgroundImagePath; var files = new List <string>(); foreach (var pattern in new string[] { "*.jpg", "*.jpeg" }) { try { files.AddRange(Directory.GetFiles(_path, pattern)); } catch (DirectoryNotFoundException) { } catch (FileNotFoundException) { } } if (files.Count == 0) { ErrorMessage = "Failed to find background image file."; return; } var rand = new Random(); _backgroundImageIndex = (uint)rand.Next(files.Count); BackgroundImagePath = files[(int)_backgroundImageIndex]; _backgroundImageAutoUpdateInterval = config.Parameters.BackgroundImageAutoUpdateInterval; //マウスカーソルを消す Mouse.OverrideCursor = System.Windows.Input.Cursors.None; }
public static void Main(string[] args) { try { using (OculusRift ovr = new OculusRift()) { do { int left = Console.CursorLeft; int top = Console.CursorTop; Console.WriteLine("Orientation (quaternion): {0}", ovr.Orientation); Console.WriteLine("Orientation (axis-angle): {0}", ovr.Orientation.ToAxisAngle()); Console.WriteLine("Acceleration (m/s^2): {0}", ovr.Acceleration); Console.WriteLine("Angular velocity (rad/s): {0}", ovr.AngularVelocity); Console.WriteLine("Chroma aberration: {0}", ovr.ChromaAbAberration); Console.WriteLine("Distortion K: {0}", ovr.DistortionK); Console.WriteLine("Desktop x-position (px): {0}", ovr.DesktopX); Console.WriteLine("Desktop y-position (px): {0}", ovr.DesktopY); Console.WriteLine("Horizonal resolution (px): {0}", ovr.HResolution); Console.WriteLine("Vertical resolution (px): {0}", ovr.VResolution); Console.WriteLine("Eye-screen distance (m): {0}", ovr.EyeToScreenDistance); Console.WriteLine("Interpupillary distance (m): {0}", ovr.InterpupillaryDistance); Console.WriteLine("Lens separation distance (m): {0}", ovr.LensSeparationDistance); Console.WriteLine("Horizontal size (m): {0}", ovr.HScreenSize); Console.WriteLine("Vertical size (m): {0}", ovr.VScreenSize); Console.WriteLine("Vertical center (m): {0}", ovr.VScreenCenter); Console.WriteLine("Press any key to exit . . ."); Console.SetCursorPosition(left, top); }while (!Console.KeyAvailable); for (int i = 0; i < 16; i++) { Console.WriteLine(); } } } catch (Exception e) { Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { try { using (OculusRift ovr = new OculusRift()) { do { int left = Console.CursorLeft; int top = Console.CursorTop; Console.WriteLine("Orientation (quaternion): {0}", ovr.Orientation); Console.WriteLine("Orientation (axis-angle): {0}", ovr.Orientation.ToAxisAngle()); Console.WriteLine("Acceleration (m/s^2): {0}", ovr.Acceleration); Console.WriteLine("Angular velocity (rad/s): {0}", ovr.AngularVelocity); Console.WriteLine("Chroma aberration: {0}", ovr.ChromaAbAberration); Console.WriteLine("Distortion K: {0}", ovr.DistortionK); Console.WriteLine("Desktop x-position (px): {0}", ovr.DesktopX); Console.WriteLine("Desktop y-position (px): {0}", ovr.DesktopY); Console.WriteLine("Horizonal resolution (px): {0}", ovr.HResolution); Console.WriteLine("Vertical resolution (px): {0}", ovr.VResolution); Console.WriteLine("Eye-screen distance (m): {0}", ovr.EyeToScreenDistance); Console.WriteLine("Interpupillary distance (m): {0}", ovr.InterpupillaryDistance); Console.WriteLine("Lens separation distance (m): {0}", ovr.LensSeparationDistance); Console.WriteLine("Horizontal size (m): {0}", ovr.HScreenSize); Console.WriteLine("Vertical size (m): {0}", ovr.VScreenSize); Console.WriteLine("Vertical center (m): {0}", ovr.VScreenCenter); Console.WriteLine("Press any key to exit . . ."); Console.SetCursorPosition(left, top); } while (!Console.KeyAvailable); for (int i = 0; i < 16; i++) Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } }
public OculusCamera(OculusRift rift, Vector3 position, Quaternion orientation) { if (rift == null) { throw new ArgumentNullException(); } this.rift = rift; Position = position; Orientation = orientation; EventHandler <EventArgs> update_frustum = (sender, e) => { float view_center = rift.HScreenSize * 0.25f; float eye_projection_shift = view_center - rift.LensSeparationDistance * 0.5f; float projection_center_offset = rift.IsConnected ? 4.0f * eye_projection_shift / rift.HScreenSize : 0; GetProjectionMatrix(out mono_frustum); left_frustum = mono_frustum * Matrix4.CreateTranslation(projection_center_offset, 0, 0); right_frustum = mono_frustum * Matrix4.CreateTranslation(-projection_center_offset, 0, 0); float half_ipd = rift.InterpupillaryDistance * 0.5f; if (view_center != 0) { left_modelview = Matrix4.CreateTranslation(half_ipd * view_center, 0, 0); right_modelview = Matrix4.CreateTranslation(-half_ipd * view_center, 0, 0); } }; //FieldOfViewChanged += update_frustum; //AspectRatioChanged += update_frustum; //ZNearChanged += update_frustum; FusionDistanceChanged += update_frustum; InterocularDistanceChanged += update_frustum; update_frustum(this, EventArgs.Empty); }
public OculusCamera(OculusRift rift) : this(rift, Vector3.Zero, Quaternion.Identity) { }
public RiftCamera(OculusRift rift, DisplayDevice display) { this.rift = rift; this.display = display; }
public void EnableOculusRift() { ovr_ = new OculusRift(); ovr_.PredictionDelta = 0.02f; isOculusEnabled_ = true; }