マイペースなプログラミング日記

x86エミュレータやFPGA、WebGLにお熱なd-kamiがマイペースに書くブログ

JavaからLeapMotion

LeapDeveloperKitをダウンロードして、どこか適当なフォルダに置き、 LeapDeveloperKitoのディレクトリ/LeapSDK/lib/x64 にパスを通して(x86環境の場合はx64x86に置きかえる)、LeapJava.jarをクラスパスに追加する。そしてhttp://www.buildinsider.net/small/leapmotioncs/06Java用に修正してレッツ実行!とりあえず認識はしてるみたいなので満足

import com.leapmotion.leap.Frame;
import com.leapmotion.leap.Finger;
import com.leapmotion.leap.Vector;
import com.leapmotion.leap.Controller;

public class LeapTest{
    public static void main(String[] args){
        Controller leap = new Controller();
        long previousFrameId = -1;
        
        while(true){
            Frame frame = leap.frame();
            
            if (previousFrameId == frame.id()){
                 continue;
            }
            
            previousFrameId = frame.id();
            
            int count = 0;
            Vector average = new Vector();
            Finger fingerToAverage = frame.fingers().get(0);
            
            for (int i = 0; i < 10; i++){
                Finger fingerFromFrame = leap.frame(i).finger(fingerToAverage.id());
                
                if(fingerFromFrame.isValid()) {
                    average = average.plus(fingerFromFrame.tipPosition());
                    count++;
                }
            }
            
            if(count > 0){
                average = average.divide(count);
            }
            
            System.out.println(average);
        }
    }
}