Leap Motion Controller LANDASAN TEORI

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