Example #1
0
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if (_oculusRift != null)
            {
                _oculusRift.Shutdown();
                _oculusRift = null;
            }
        }
Example #2
0
        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;
        }
Example #4
0
        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;
        }
Example #5
0
        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());
            }
        }
Example #6
0
        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());
            }
        }
Example #7
0
        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);
        }
Example #8
0
 public OculusCamera(OculusRift rift)
     : this(rift, Vector3.Zero, Quaternion.Identity)
 {
 }
Example #9
0
 public RiftCamera(OculusRift rift, DisplayDevice display)
 {
     this.rift    = rift;
     this.display = display;
 }
 public void EnableOculusRift()
 {
     ovr_ = new OculusRift();
     ovr_.PredictionDelta = 0.02f;
     isOculusEnabled_     = true;
 }