2.2. Leap Motion Controller
Leap Motion Controller adalah alat sensor perangkat keras komputer yang mendukung gerakan tangan dan jari sebagai masukan, yang dapat disamakan fungsinya seperti
mouse, namun tidak membutuhkan kontak langsung dengan tangan atau sentuhan Yowanda, et al. 2014. Leap Motion Controller terkadang juga disingkat menjadi Leap
Motion. Namun, pengertian Leap Motion dapat juga berarti perusahaan Leap Motion yang mengeluarkan Leap Motion Controller. Maka dari itu alat yang berupa sensor
gerak tangan ini seterusnya akan disebut dengan Leap Motion Controller. Leap Motion Controller merupakan sebuah alat yang menarik. Dikarenakan
bentuknya yang kecil, alat ini dapat dengan mudah diletakkan di permukaan meja maupun laptop atau keyboard Canneyt, 2013. Selain diletakkan di atas meja dengan
menghadap ke atas table-mounted, alat ini juga bisa diletakkan di atas kepala head- mounted menghadap depan maupun bawah dengan bantuan alat tertentu seperti Oculus
Rift. Meskipun diletakkan di berbagai sisi dan dan menghadap ke berbagai arah, Leap Motion Controller dalam keadaan tetapnya akan menghasilkan posisi tangan yang
sejajar dengan tubuh pengguna pada tampilan antarmuka. Sebagai alat sensor, Leap Motion Controller memiliki beberapa alat di
dalamnya untuk mengamati. Alat-alat tersebut berupa kamera IR monokromatik dan tiga inframerah LED. Dengan alat-alat tersebut, Leap Motion Controller mampu
mengamati gerakan tangan yang dalam jangkauan berbentuk hemisphere dengan radius sejauh 1 meter seperti yang terdapat pada Gambar 2.5. Jarak jangkauan ini nantinya
akan membuat wilayah seperti kotak yang disesuaikan dengan layar. Jarak jangkauan ini sendiri bisa dibentuk menjadi sebuah kelas bernama InteractionBox dalam
antarmuka pemrograman aplikasinya. Selain InteractionBox, juga terdapat kelas-kelas lainnya yang digunakan dalam antarmuka pemrograman aplikasi, khususnya dalam
pembuatan sistem yang menggunakan Leap Motion Controller.
Universitas Sumatera Utara
Gambar 2.5. Jarak deteksi Leap Motion Controller Yowanda, et al. 2014
2.2.1. Fitur-Fitur Leap Motion Controller Awalnya, Leap Motion Controller hanya dapat mengamati gerakan dan citra tangan
secara menyeluruh, tanpa memperhatikan bagian-bagian tangan secara detail. Setelah beberapa perkembangan, Leap Motion Controller akhirnya mampu mengamati hal-hal
yang lebih detail pada bagian tangan seperti ruas tangan, kiri atau kanan, skala genggaman tangan, dan sebagainya. Perkembangan ini disebut dengan Skeletal
Tracking atau disebut juga dengan V2. Adapun fitur-fitur yang terdapat pada Leap Motion Controller dengan Skeletal
Tracking yang dimilikinya berdasarkan Leap Motion 2015 antara lain sebagai berikut. 1.
Hand Model: model tangan yang digunakan setelah dikembangkannya V2 memberikan informasi yang lebih lengkap. Posisi ruas jari berserta perputaran
engselnya lebih dapat diakses dan konsisten. 2.
Pinch: fitur ini mendukung gerakan jari yang bersentuhan dengan jari lainnya, dengan skala nol sampai satu.
Universitas Sumatera Utara
3. Grab: fitur ini mengindikasikan seberapa mirip tangan dengan kondisi
menggenggam, dengan skala nol sampai satu. Setiap jari yang tidak ikut menggenggam akan mengurangi nilai skala tersebut.
4. Data Confidence: fitur ini mendeteksi ketika tangan sulit untuk diamati oleh Leap
Motion Controller. Jika salah satu tangan mendekati pinggiran layar atau saling menutup satu sama lain, nilai fitur ini akan turun dari satu hingga nol.
5. Left or Right: pengamatan menandai tangan yang terdapat pada layar apakah kiri
atau kanan. 6.
Finger Type: pengamatan mendukung tangan dengan komposisi lima jari yang dapat diambil nilai posisi dan rotasinya masing-masing.
7. Bone Positions: fitur ini mengembalikan nilai posisi dan rotasi dari masing-masing
tulang yang terdapat pada telapak jangan dan jari.
2.2.2. Spesifikasi Leap Motion Controller Adapun spesifikasi teknis produk Leap Motion Controller berdasarkan Leap Motion
2015 adalah sebagai berikut 1.
Persyaratan Sistem Minimum Windows® 78 atau Mac® OS X 10.7
Prosesor AMD Phenom™ II atau Intel® Core™ i3i5i7 2 GB RAM
USB 2.0 port
2. Warranty Terms
Windows® 78 or Mac® OS X 10.7 3.
Perangkat Lunak Perangkat lunak dan applikasi yang digunakan dapat diperoleh di
http:leapmotion.comsetup.
Universitas Sumatera Utara
2.2.3. Antarmuka Leap Motion Controller Terdapat dua jenis antarmuka pada Leap Motion Controller. Antarmuka ini digunakan
dalam memperoleh data yang akan digunakan pada antarmuka pemograman aplikasi. Adapun kedua jenis antarmuka ini adalah antarmuka aplikasi alami dan antarmuka
WebSocket. Antarmuka aplikasi alami didukung melalui library yang diisi secara dinamis.
Library ini menghubungkan layanan Leap Motion dan mendukung data pengamatan tangan ke perangkat komputer. Library ini dapat langsung terhubung dengan
pemrograman berbahasa C++ dan Objective-C, atau dapat juga dengan bahasa pemrograman yang tertentu yang terdapat untuk Java, C, dan Phyton.
Adapun tahap-tahap pada antamuka pemrograman aplikasi ini adalah sebagai berikut.
1. Data dari pengamatan gerakan tangan yang diamati oleh Leap Motion Controller
diterima oleh layanan Leap Motion melalui USB. Data tersebut diproses dan dikirimkan ke aplikasi yang memungkinkan pengguanaan Leap Motion Controller.
Pada dasarnya, data tersebut dikirimkan ke aplikasi foreground. Namun, data tersebut juga dapat diterima oleh aplikasi background.
2. Aplikasi Leap Motion berjalan secara terpisah dengan layanannya dan
memungkinkan dilakukannya pengaturan kepada instalasi Leap Motion. 3.
Layanan Leap Motion mengirimkan data pengamatan gerakan tangan dan jari ke aplikasi latar depan. Aplikasi yang menggunakan Leap Motion Controller dapat
terhubung dengan layanan tersebut menggunakan library alami dari Leap Motion. 4.
Layanan Leap Motion akan berhenti mengirimkan data pengamatan gerakan tangan dan jari ketika aplikasi foreground yang menggunakan Leap Motion Controller
tersebut kehilangan fokusnya. Sementara aplikasi background dapat terus menerima data tersebut meskipun tidak sedang dalam fokus atau berkerja di background.
Universitas Sumatera Utara
Gambar 2.6. Sistem arsitektur antarmuka aplikasi alami dengan Leap Motion
Controller Leap Motion, 2014
Dalam antarmuka WebSocket, layanan Leap Motion menggunakan server WebSocket pada domain localhost pada port 6347. Antarmuka WebSocket mendukung
data pengamatan gerakan tangan dan jari dalam bentuk pesan JSON. Klien library JavaScript telah menyediakan penggunaan untuk pesan JSON dan menyajikan data
pengamatan gerakan tangan dan jari sebagai objek JavaScript pada umumnya. Adapun tahap-tahap dalam penggunaan antarmuka aplikasi web yang
menggunakan Leap Motion Controller adalah sebagai berikut. 1.
Server WebSocket yang didukung oleh layanan Leap Motion adalah http:127.0.0.1:6437.
2. Server WebSocket dapat diaktifkan maupun dibatalkan melalui panel kendali Leap
Motion oleh pengguna. 3.
Server mengirim data pengamatan gerakan tangan dan jari dalam bentuk pesan JSON. Aplikasi dapat mengirimkan pesan pengaturan kembali ke server.
4. Klien library JavaScript, leap.js, harus digunakan dalam aplikasi web tersebut.
Library tersebut akan membangun koneksi ke server dan menggunakan pesan JSON. Antarmuka pemrograman aplikasi yang disajikan oleh library JavaScript ini
Universitas Sumatera Utara
memiliki struktur dan filosofi yang sama dengan antarmuka pemrograman aplikasi alami.
Gambar 2.7 Sistem arsitektur antarmuka aplikasi web dengan Leap Motion
Controller Leap Motion, 2014
2.2.3. WebSocket Communication Leap Motion Controller yang terpasang pada suatu komputer dan memiliki aplikasinya
mengkomunikasikan data tangan ke aplikasi menggunakan WebSocket. Server WebSocket ini didukung oleh proses leapd, yang dijalankan sebagai service pada
Windows dan daemon pada OS X dan Linux. Server WebSocket ini juga menggunakan port 6347 pada domain localhost http:127.0.0.1:6437.
Leap Motion Controller mendukung sebuah protokol untuk komunikasi data tangan ke komputer. Sementara komunikasi server WebSocket dengan client
dihubungkan dengan sebuah subprotokol pertukaran data. Subprotokol inilah yang menentukan pesan yang akan dikirim dari server ke client dan format dari JSON data
yang digunakan. Setiap frame yang berisi data dari server Websocket yang mengandung JSON mendefinisikan frame tersebut. Berikut adalah atribut-atribut berserta tipe
datanya dari frame dalam pesan JSON Leap Motion, 2014.
Universitas Sumatera Utara
currentFrameRate: float id: float
r: array dari float Matriks s: float
t: array dari float vector timestamp: integer
gestures: array dari objek Gesture Atribut-atribut vary by tipe gestur
center: array dari float vector -- hanya circle direction: array dari float vector -- hanya swipe,
keyTap, screenTap duration: microsecond dalam integer
handIds: array dari integer id: integer
normal: array dari float -- hanya circle pointableIds: array
position: array dari float vector -- hanya swipe, keyTap, screenTap
progress: float -- hanya circle, keyTap, screenTap radius: float -- hanya circle
speed: float -- hanya swipe startPosition: array dari float vector -- hanya swipe
state: string -- salah satu dari start, update, stop
type: string -- salah satu dari circle, swipe, keyTap, screenTap
hands: array dari objek Hand armBasis: vector berbasis tiga dari lengan array dari
vector armWidth: float
confidence: float direction: array dari float vector
elbow: array dari float vector grabStrength: float
id: integer
Universitas Sumatera Utara
palmNormal: array dari float vector palmPosition: array dari float vector
palmVelocity: array dari float vector pinchStrength: float
r: array dari float Matriks s: float
sphereCenter: array dari float vector sphereRadius: float
stabilizedPalmPosition: array dari float vector t: array dari float vector
timeVisible: float type: string -- salah satu dari right atau left
wrist: array dari float vector interactionBox: object
center: array dari float vector size: array dari float vector
pointables: array dari objek Pointable bases: vector berbasis tiga untuk setiap tulang, dalam
index order, pergelangan hingga ujung jari, array of vectors.
btipPosition: posisi ujung dari distal phalanx sebagai array dari tiga float.
carpPosition: posisi pangkal dari tulang metacarpal sebagai array dari tiga float.
dipPosition: posisi pangkal dari distal phalanx sebagai array dari tiga float.
direction: array dari float vector extended: boolean true atau false
handId: integer id: integer
length: float mcpPosition: vektor posisi sebagai array dari tiga
floating point number pipPosition: vektor posisi sebagai array dari tiga
floating point number stabilizedTipPosition: array dari float vector
Universitas Sumatera Utara
timeVisible: float tipPosition: array dari float vector
tipVelocity: array dari float vector tool: boolean true atau false
touchDistance: float touchZone: string
– salah satu dari none, hovering, touching
type: integer - 0 adalah ibu jari; 4 adalah kelingking width: float
2.2.4. Controller Controller merupakan kelas utama dalam penggunaan antarmuka pemrograman
aplikasi yang menggunakan Leap Motion Controller. Controller juga terkadang disebut sebagai istilah lain dari Leap Motion Controller. Namun, dalam hal ini kita akan
menyebut alat sensor tersebut sebagai Leap Motion Controller, sementara kelasnya adalah Controller.
Kelas Controller akan mendeklarasikan bahwa Leap Motion Controller akan digunakan pada skrip yang dituju. Dengan kelas Controller, dapat diperoleh data-data
seperti terhubungnya alat Leap Motion Controller ke komputer, penggunaan kelas Frame dan Gesture, dan sebagainya. Oleh karena itu, kelas ini dideklarasikan pada saat
permulaan program. Kelas Controller memiliki beberapa properti sebagai berikut.
1. Config: Mengembalikan objek Config untuk melakukan query terhadap sistem Leap
Motion dalam informasi pengaturan. 2.
Devices: Daftar dari alat Leap Motion Controller yang terhubung dan dapat dikenal. 3.
HasFocus: Melaporkan apakah aplikasi yang sedang berjalan sebagai fokus foreground application atau tidak.
4. Images: Kumpulan citra terbaru dari kamera Leap Motion.
5. IsConnected: Melaporkan apakah Controller ini sedang terhubung dengan layanan
Leap Motion dan perangkat keras Leap Motion sedang terpasang atau tidak
Universitas Sumatera Utara
2.2.5. Frame Kelas Frame merupakan turunan dari kelas Controller. Kelas ini menerima masukan
dari gerakan tangan dan jari dalam setiap frame pada saat program dijalankan. Kelas inilah yang nantinya digunakan dalam berbagai hal di antarmuka pemrograman aplikasi
yang menggunakan Leap Motion Controller. Kelas Hand, Finger, dan Tool adalah turunan dari kelas ini.
Kelas Frame memiliki beberapa properti sebagai berikut. 1.
CurrentFramesPerSecond: Mengembalikan estimasi frame per detik dari Leap Motion Controller dengan jenis data float.
2. Fingers: Daftar dari objek Finger yang terdeteksi dalam satu frame, diurutkan
secara acak. 3.
Hands: Daftar dari objek Hand yang terdeteksi dalam satu frame, diurutkan secara acak.
4. Id: Sebuah identitas ID unik untuk kelas Frame ini.
5. Images: Daftar citra-citra dari kamera Leap Motion.
6. InteractionBox: InteractionBox yang sedang berlangsung pada suatu frame.
7. Invalid: Mengembalikan sebuah objek invalid dari kelas Frame.
8. IsValid: Melapokan apakah instansi dari Frame valid atau tidak.
9. Pointables: Daftar dari objek Pointable jari dan alat yang terdeteksi dalam suatu
frame, diurutkan secara acak. 10.
Serialize: Menuliskan object Frame
sebagai sebuah byte string.
11. Timestamp: Waktu yang ditangkap frame dalam mikrodetik yang berlalu sejak Leap
dimulai. 12.
Tools: Daftar alat yang terdeteksi dalam suatu frame, diurutkan secara acak.
2.2.6. Finger Dengan didukungnya oleh perkembangan Skeletal Tracking, Leap Motion Controller
kini dapat mengamati berbagai hal yang dilakukan oleh jari. Kelas Finger tidak hanya memiliki properti untuk menerima data masukan seperti gerakan jari, tegaknya jari,
maupun arah yang ditunjuk oleh jari, tetapi kini juga dapat mengamati dan mengenal masing-masing jari. Sebelumnya kelima jari dalam tangan dianggap sama, namun
Universitas Sumatera Utara
dengan perkembangan tersebut, kelas Finger mendapat dukungan lebih untuk digunakan dalam antarmuka pemrograman aplikasinya.
Kelas Finger memiliki beberapa properti sebagai berikut. 1.
Direction: Vektor dari arah jari menunjuk, 2.
Frame: Kelas Frame yang berasosiasi dengan kelas ini. 3.
Hand: Kelas Hand yang berasosiasi dengan kelas ini. 4.
Id: Sebuah identitas ID unik untuk objek ini yang tetap bernilai sama saat melawati tiap frame berturut-turut selama jari masih teramati.
5. Invalid: Mengembalikan objek invalid.
6. IsExtended: Melaporkan apakah jari yang dimaksud sedang dalam postur
memanjang atau tidak. 7.
IsFinger: Melaporkan apakah benar yang diamati terdapat jari atau tidak. 8.
IsTool: Melaporkan apakah yang diamati adalah sebuah alat yang sedang digenggam atau tidak.
9. IsValid: Melaporkan apakah yang diamati merupakan objek dari kelas Pointable
yang valid atau tidak. 10.
Length: Estimasi panjang dari jari atau alat dalam milimeter. 11.
StabilizedTipPosition: Posisi ujung yang stabil dari kelas Pointable yang dimaksud. 12.
TimeVisible: Durasi dari jari yang terlihat oleh Leap Motion Controller dalam satuan detik.
13. TipPosition: Posisi ujung jari dalam milimeter dari posisi asal Leap Motion.
14. TipVelocity: Laju perubahan jarak pada posisi ujung jari dalam satuan milimeter
per detik. 15.
TouchDistance: Nilai perbandingan untuk jarak antara jari dengan bidang sentuh. 16.
TouchZone: Zona sentuh untuk jari yang sedang digunakan.
Universitas Sumatera Utara
Gambar 2.8. TipPosition dan Direction dari kelas Finger Canneyt, 2013
2.2.7. Hand Dalam setiap frame program yang dijalankan, gerakan tangan akan diamati oleh
perangkat Leap Motion Controller. Kelas Hand akan bertindak untuk menerima data dari pengamatan tersebut. Sama seperti kelas Finger, kelas ini juga mendapat
perkembangan khusus sejak Skeletal Tracking diterapkan. Salah satu perkembangan pada kelas Hand adalah sebelumnya hanya menerima tangan tertutup atau terbuka, kini
berganti menjadi kekuatan genggaman tangan yang menerima nilai mulai dari nol hingga satu. Selain itu, dengan kelas ini, Leap Motion Controller juga dapat
membedakan tangan yang diamaati adalah tangan kanan atau kiri. Kelas Hand memiliki beberapa properti sebagai berikut.
1. Arm: Lengan yang terhubung dengan tangan yang sedang diamati oleh Leap
Motion Controller. 2.
Basis: Orientasi tangan dengan basis matriks. 3.
Confidence: Mengembalikan nilai kepastian dari 0.0 sampai 1.0 untuk pose tangan yang terlihat.
4. Direction: Arah dari telapak tangan yang menuju jemari.
5. Fingers: Daftar jari yang terdeteksi dalam sebuah frame yang terhubung dengan
tangan yang sedang digunakan, dengan urutan dari ibu jari sampai kelingking.
Universitas Sumatera Utara
6. Frame: Kelas Frame yang berasosiasi dengan kelas Hand ini.
7. GrabStrength: Nilai 0 sampai 1 untuk kekuatan genggaman tangan. Nilai 1
adalah saat tangan benar-benar tergenggam. 8.
Id: Sebuah identitas ID unik untuk objek ini yang tetap bernilai sama saat melawati tiap frame berturut-turut selama jari masih teramati.
9. Invalid: Mengembalikan objek invalid dari kelas Hand.
10. IsLeft: Idetifikasi apakah tangan yang dimaksud adalah tangan kiri.
11. IsRight: Idetifikasi apakah tangan yang dimaksud adalah tangan kanan.
12. IsValid: Melaporkan objek dari kelas Hand adalah valid.
13. PalmNormal: Nilai normal vektor untuk telapak tangan.
14. PalmPosition: Posisi tengah telapak tangan dalam milimeter dari jarak awal
Leap Motion. 15.
PalmVelocity: Laju perubahan posisi telapak tangan dalam satuan milimeter per detik.
16. PalmWidth: Estimasi lebar dari telapak tangan dalam posisi mendatar.
17. PinchStrength: Nilai 0 sampai 1 untuk kekuatan jepitan tangan, minimal dengan
dua jari. Nilai 1 adalah saat tangan benar-benar menjepit. 18.
Pointables: Daftar dari objek kelas Pointable yang terdeteksi dalam suatu frame yang berasosiasi dengan tangan yang dimaksud, diurutkan secara acak.
19. SphereCenter: Titik tengah dari sebuah bola yang terbentuk sesuai dengan
lengkungan tangan. Saat telapak tangan melengkung dengan jemarinya, tangan membuat sebuah pose seolah sedang memegang sebuah bola. Ukuran bola ini
akan disesuaikan dengan pose tangan tersebut. 20.
SphereRadius: Jari-jari atau radius dari bola yang terbentuk sesuai dengan lengkungan tangan.
21. StabilizedPalmPosition: Posisi telapak tangan yang stabil dari kelas Hand yang
dimaksud. 22.
TimeVisible: Durasi dari tangan yang terlihat oleh Leap Motion Controller dalam satuan detik.
23. WristPosition: Posisi pergelangan tangan dengan jenis data vektor.
Universitas Sumatera Utara
2.2.8. Gesture Selain gerakan tangan dan jari seperti menggenggam dan meregangkan jari, Leap
Motion Controller juga memiliki gerakan-gerakan khusus yang dapat diamati apabila terjadi dalam suatu frame. Data dari gerakan-gerakan khusus yang disebut dengan
gesture ini diterima oleh kelas Gesture. Kelas ini dapat diaktifkan melalui kelas Controller.
Ada empat jenis gesture yang dapat diterima oleh kelas Gesture, yaitu Circle Gesture, Key Tap Gesture, Swipe Gesture, dan Screen Tap Gesture. Circle Gesture
adalah gerakan tangan khusus yang berputar di hadapan Leap Motion Controller searah roll axis. Gesture ini memiliki dua jenis parameter yaitu jari-jari minimal dan sudut
minimal. Apabila kedua parameter ini terpenuhi maka sistem akan menyatakan bahwa pengguna sedang melakukan Circle Gesture.
Gambar 2.9. Contoh penggunaan Circle Gesture dengan ujung jari
Leap Motion, 2014
Swipe Gesture adalah gerakan tangan secara cepat seperti menyapu dengan arah translasi baik itu sumbu x, y, maupun z di hadapan Leap Motion Controller.
Gesture ini memiliki jarak minimum dan kecepatan minimum sebagai parameternya. Apabila terjadi gerakan tangan dengan kecepatan minimum sejauh jarak minimum
Universitas Sumatera Utara
tersebut maka sistem akan menyatakan bahwa pengguna sedang melakukan Swipe Gesture.
Gambar 2.10. Contoh penggunaan Swipe Gesture Leap Motion, 2014
Screen Tap Gesture dapat dilakukan dengan cara menggerakkan jari ke depan kemudian menariknya lagi dengan cepat, seolah menyentuh layar di udara. Terdapat
tiga parameter untuk Screen Tap Gesture yaitu kecepatan minimal ke depan, durasi saat sebelum jadi ditarik, dan jarak minimum. Apabila ketiga parameter ini terpenuhi maka
sistem akan menyatakan bahwa pengguna sedang melakukan Screen Tap Gesture.
Universitas Sumatera Utara
Gambar 2.11. Contoh penggunaan Screen Tap Gesture Leap Motion, 2014
Key Tap Gesture adalah gerakan jari seperti sedang menekan tombol di udara. Untuk melakukan Key Tap Gesture, jari tidak hanya bergerak ke bawah, tetapi juga
harus segara diangkat. Key Tap Gesture memiliki tiga parameter yaitu kecepatan saat turun, durasi jari sebelum diangkat, dan jarak minimum.
Gambar 2.12. Contoh penggunaan Key Tap Gesture Leap Motion, 2014
Universitas Sumatera Utara
Untuk memudahkan pengguna dalam mempraktikkan berbagai gesture yang disediakan oleh Leap Motion Controller, terdapat konfigurasi khusus untuk gesture.
Konfigurasi ini bergantung kepada key string dari masing-masing gesture. Sama seperti kelas Gesture, kelas Config untuk konfigurasi gesture juga merupakan turunan dari
kelas Controller. Pada tabel 2.1 dapat dilihat konfigurasi pada masing-masing gesture.
TABEL 2.1. Konfigurasi Key String pada Gesture
Key string Jenis Data
Default Value Satuan
Gesture.Circle.MinRadius float
5 mm
Gesture.Circle.MinArc float
1.5 pi radians
Gesture.KeyTap.MinDownVelocity float
50 mms
Gesture.KeyTap.HistorySeconds float
0.1 s
Gesture.KeyTap.MinDistance float
3 mm
Gesture.Swipe.MinLength float
150 mm
Gesture.Swipe.MinVelocity float
1000 mms
Gesture.ScreenTap.MinForwardVelocity float
50 mms
Gesture.ScreenTap.HistorySeconds float
0.1 s
Gesture.ScreenTap.MinDistance float
5 mm
2.2.9. Tool Tidak hanya tangan kosong, Leap Motion Controller juga dapat menerima data
dari objek yang digenggam oleh tangan saat diamati. Data ini diterima oleh kelas Tool. Objek yang digenggam oleh tangan saat diamati oleh Leap Motion Controller tidak
akan ditampilkan secara persis dan berdimensi tiga oleh tampilan antarmuka meskipun Leap Motion Controller dapat menangkap citra dengan kamera yang dimilikinya.
Saat ini masih terdapat keterbatasan dalam penggenggaman alat saat menggunakan Leap Motion Controller. Alat yang digunakan harus menyerupai silinder
panjang dan kecil seperti pensil contohnya. Untuk menggunakan kelas Tool pada antarmuka pemrograman aplikasi, pengguna harus memastikan apakah Leap Motion
Controller diperbolehkan untuk melakukan tool tracking atau tidak.
Universitas Sumatera Utara
Kelas Tool dapat menggunakan beberapa properti yang sama dengan kelas Finger. Karena keduanya merupakan objek dari kelas Pointable. Karena itulah terdapat
properti isTool dan isFinger untuk membedakan objek dari kelas Pointable mana yang sedang digunakan.
Gambar 2.13. Penggenggaman alat berbentuk V untuk pengukuran dinamis Guna, et al. 2014
2.3. Gestur