Advertisement
Xandaros

MouseMover

Aug 1st, 2013
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.52 KB | None | 0 0
  1. import java.awt.AWTException;
  2. import java.awt.Dimension;
  3. import java.awt.Robot;
  4. import java.awt.Toolkit;
  5. import java.util.Timer;
  6. import java.util.TimerTask;
  7.  
  8. import com.leapmotion.leap.Controller;
  9. import com.leapmotion.leap.Finger;
  10. import com.leapmotion.leap.Frame;
  11. import com.leapmotion.leap.Vector;
  12.  
  13. public class MouseMover
  14. {
  15.     private Controller controller;
  16.     private Robot robot;
  17.    
  18.     private MouseMover() throws AWTException
  19.     {
  20.         controller = new Controller();
  21.         robot = new Robot();
  22.        
  23.         LeapTask task = new LeapTask();
  24.         Timer timer = new Timer();
  25.         timer.schedule(task, 0, 33);
  26.     }
  27.    
  28.     public static void main(String[] args) throws AWTException
  29.     {
  30.         new MouseMover();
  31.     }
  32.    
  33.     private class LeapTask extends TimerTask
  34.     {
  35.         private long lastFrame = 0;
  36.        
  37.         @Override
  38.         public void run()
  39.         {
  40.             if (controller.isConnected())
  41.             {
  42.                 Frame frame = controller.frame();
  43.                 if (frame.id() == lastFrame) return; //Nothing to be done
  44.                
  45.                 Finger finger = frame.fingers().frontmost();
  46.                 if (finger.isValid())
  47.                 {
  48.                     Vector pos = finger.tipPosition();
  49.                     Vector dir = finger.direction();
  50.                    
  51.                     Vector onScreen = pos.plus(dir.times(-(pos.getZ()/dir.getZ())));
  52.                     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  53.                    
  54.                     double x = (onScreen.getX() + 100)/250*screenSize.getWidth();
  55.                     double y = (200-(onScreen.getY() - 200))/200*screenSize.getHeight();
  56.                    
  57.                     robot.mouseMove((int)x, (int)y);
  58.                     //X: -200:200
  59.                     //Y: 100:400
  60.                 }
  61.             }
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement