Slide 1

Slide 1 text

1FSMNFFUT -FBQ.PUJPO !BLJZN )PLLBJEPQN

Slide 2

Slide 2 text

NF w!BLJZN wେֶੜ wઌ೔ηΩϡϦςΟΩϟϯϓʹࢀՃ ͖ͯ͠·ͨ͠ w:"1$"TJBͰ͸ʮ)FSPLVͰֶͿɺॳΊ ͯͷ1FSMʯͱ͍͏࿩Λ͠·͢

Slide 3

Slide 3 text

࠷ۙ͸͜Μͳ΋ͷΛ ࡞ͬͯ·͢

Slide 4

Slide 4 text

DUGLBUTVEPOPSH

Slide 5

Slide 5 text

-FBQ.PUJPO w࣍ੈ୅σόΠε wखͷͻΒɺࢦΛࡉ͔͘ೝࣝ w8FC4PDLFUͰσʔλΛऔͬͯ͘Δ͜ͱ ͕Ͱ͖Δ

Slide 6

Slide 6 text

1FSM͔Β-FBQ.PUJPOΛѻ͏

Slide 7

Slide 7 text

%FWJDF-FBQ wIUUQTNFUBDQBOPSHNPEVMF %FWJDF-FBQ wͱΓ͋͑ͣॻ͍ͨײ wδΣενϟʔ͕औΕͳ͍

Slide 8

Slide 8 text

my($LEAP_HANDLE); # After connection, this contains our websocket handle my($SEND); # Data to send, when other end is ready for it my($BUFF)=''; # Buffer in case calling script misses a few events sub Leap { my $ret; if($BUFF eq '') { # Nothing in the buffer - try to get some more unless($LEAP_HANDLE) { # Establish a new connection # Make the socket socket($LEAP_HANDLE, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || return (\{'error' => "socket: $!"}); # Don't let stuff like UTF-style characters get screwed up binmode($LEAP_HANDLE) || return (\{'error' =>,"binmode(socket handle): $!"}); # Allow more than one connection setsockopt($LEAP_HANDLE, SOL_SOCKET, SO_REUSEADDR, 1) || return (\{'error' =>,"SO_REUSEADDR: $!"}); # Don't block on close (Remember not to close it until we've sent everything we want):- if($^O =~/Win32/i) { setsockopt($LEAP_HANDLE, SOL_SOCKET, SO_DONTLINGER, 1) || return (\{'error' =>,"SO_DONTLINGER: $!"}); } vec($bitsr,fileno($LEAP_HANDLE),1)=1; # This tells select() which socket we want to query vec($null,fileno($LEAP_HANDLE),1)=0; if(defined $SEND) {$bitsw=$bitsr} else {$bitsw=$null} # We only care about write-status if we've got data to write

Slide 9

Slide 9 text

use Device::Leap; while(1) { $d=&Leap(); next unless(ref $d); # no new data print $d->{hands}->[0]->{sphereRadius} . "\n"; # print some }

Slide 10

Slide 10 text

Slide 11

Slide 11 text

wॻ͖௚ͨ͠ w"OZ&WFOU-FBQ.PUJPO wͨͩ8FC4PDLFUͰ௨৴͍ͯ͠Δ͚ͩ

Slide 12

Slide 12 text

my $leap = AnyEvent::LeapMotion->new( enable_gesture => 1, on_frame => sub { my $frame = shift; ... }, ); $leap->run; AE::cv->recv;

Slide 13

Slide 13 text

BJSQPJOUFS

Slide 14

Slide 14 text

wϚ΢ε w049ͰϚ΢εΛίϯτϩʔϧ͢Δํ๏ w8JOEPXTͳΒ8JO(VJ5FTU w049ͳΒʜʁ

Slide 15

Slide 15 text

ॻ͍ͨ ͪΐͬͱ͚ͩ

Slide 16

Slide 16 text

$PDPB(VJ5FTU wΈΜͳେ޷͖$PDPBϞδϡʔϧ wϚ΢εΛಈ͔͢ɺΩʔೖྗ wෆ҆ఆ

Slide 17

Slide 17 text

$PDPB(VJ5FTUͷσϞ wςΩετΤσΟλ Ωʔૢ࡞ w೾ wάϧάϧඳ͘

Slide 18

Slide 18 text

·ͱΊ w1FSM͔Β-FBQ.PUJPOΛѻͬͯΈ·ͨ͠ wເɺ޿͕ͬͯ·͢ w$PDPBϞδϡʔϧ͕·ͩ·ͩগͳ͍