Ejemplo n.º 1
0
        public SpaceMouseWPFHandler()
        {
            IntPtr hwnd  = IntPtr.Zero;
            Window myWin = Application.Current.MainWindow;

            try
            {
                hwnd = new WindowInteropHelper(myWin).Handle;
            }
            catch (Exception ex)
            {
                Logger.Error("Setting up 3D-Mice failed:", ex);
            }

            //Get the Hwnd source
            var hwndSource = HwndSource.FromHwnd(hwnd);

            if (hwndSource == null)
            {
                return;
            }

            hwndSource.AddHook(Win32QueueSinkHandler);

            // Connect to Raw Input & find devices
            Active3DxMouse = new SpaceMouse(hwndSource.Handle);

            // Setup event handlers to be called when something happens
            //Active3DxMouse.MotionEvent += MotionEventHandler;
            //Active3DxMouse.ButtonEvent += ButtonEventHandler;

            InitDeviceList();
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var mouseInfo = SpaceMouse.GetConnectedMice().Result.First();

            SpaceMouse mouse;

            if (mouseInfo != null)
            {
                mouse = new SpaceMouse(mouseInfo);
                mouse.TranslationEvent += Mouse_TranslationEvent;
                mouse.RotationEvent    += Mouse_RotationEvent;
                mouse.ButtonEvent      += Mouse_ButtonEvent;

                mouse.Start();
            }

            Console.ReadLine();
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            var sm = new SpaceMouse();

            Console.ReadLine();
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var sm = new SpaceMouse();

            sm.WatchDevice(0x046d, 0xc62b);
        }
Ejemplo n.º 5
0
        private void OnLoad(object sender, EventArgs e)
        {
            // Init keyboard to ensure first frame won't NPE
            _keyboard = Keyboard.GetState();

            Camera = new ActorOrbitalCamera();

            //            var earth = new ActorEarth();
            //            _satellite = new ActorSatellite(25544)
            //            {
            //                Parent = earth
            //            };
            //            var track = new ActorSatelliteTrack(25544)
            //            {
            //                Parent = earth
            //            };
            //            var atmosphere = new ActorAtmosphere
            //            {
            //                Parent = earth
            //            };

            //            Scene.Actors.Add(new ActorSkybox());
            //            Scene.Actors.Add(_satellite);
            //            Scene.Actors.Add(track);
            //            Scene.Actors.Add(earth);
            //            Scene.Actors.Add(atmosphere);
            Scene.Actors.Add(new ActorDynamicSphere(1, 4, 200));

            // Create SpaceMouse
            _spaceMouse         = new SpaceMouse("SatWall");
            _spaceMouse.Motion += OnSpaceMouseMotion;

            var status = _spaceMouse.InitDevice(Window.WindowInfo.Handle);

            switch (status)
            {
            case SpaceMouseStatus.Initialized:
                Lumberjack.Debug("Created SpaceMouse.");
                _spaceMouse.StartAutoMessageCapture(Window.WindowInfo.Handle);
                break;

            case SpaceMouseStatus.LibraryNotFound:
                Lumberjack.Debug("No SpaceMouse library found.");
                break;

            case SpaceMouseStatus.DeviceLoadFailure:
                Lumberjack.Debug("SpaceMouse load failed.");
                break;
            }

            _kuat = new KuatUserInterface(Window, new KuatFont());

            _graphFrameTime = new KuatPerfGraph(Color.LawnGreen, "render", unit: "ms", max: 16, drawAverageLine: true)
            {
                Location = new Point(5, 5)
            };
            _graphTickTime = new KuatPerfGraph(Color.DodgerBlue, "tick", unit: "ms", max: 16, drawAverageLine: true)
            {
                Location = new Point(5, 45)
            };

            _kuat.Controls.Add(_graphFrameTime);
            _kuat.Controls.Add(_graphTickTime);

            UserInterface = _kuat;
        }
Ejemplo n.º 6
0
 private static void Mouse_TranslationEvent(SpaceMouse arg1, System.Numerics.Vector3 arg2)
 {
     Console.WriteLine($"T {arg2.X} {arg2.Y} {arg2.Z}");
 }
Ejemplo n.º 7
0
 private static void Mouse_ButtonEvent(SpaceMouse arg1, bool[] arg2)
 {
     Console.WriteLine($"B {String.Join("", arg2.Select(b => b ? "1": "0"))}");
 }