<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>Proof of concept - Objets tangibles</title> </head> <body> <script src="/jquery-1.7.2.js"></script> <script src="/lodash.js"></script> <script src="/socket.io/socket.io.js"></script> <script src="/tuio.js"></script> <style> body { background: #000; margin: 0; } .tuioCursor { background: #fff; height: 8px; left: 0; position: absolute; top: 0; width: 8px; } </style> <script> function getHypotenuse(touch1, touch2, screenW, screenH) { var w = Math.abs(touch1.w - touch2.w); var h = Math.abs(touch1.h - touch2.h); return Math.sqrt(Math.pow(w, 2) + Math.pow(h, 2)); } $(function() { var client = new Tuio.Client({ host: 'http://localhost:5000' }), screenW = $(document).width(), screenH = $(document).height() cursors = {}, onConnect = function() { console.log('connected'); }, onAddTuioCursor = function(addCursor) { var $addCursor = $('<div class="tuioCursor"></div>'); $('body').append($addCursor); cursors[addCursor.getCursorId()] = $addCursor; onUpdateTuioCursor(addCursor); }, onUpdateTuioCursor = function(updateCursor) { var $updateCursor = cursors[updateCursor.getCursorId()]; $updateCursor.css({ left: updateCursor.getScreenX(screenW), top: updateCursor.getScreenY(screenH) }); var cursorIds = Object.keys(cursors); var dots = []; cursorIds.forEach(function(cursor) { dots.push({ id: cursor, w: cursors[cursor][0].offsetLeft, h: cursors[cursor][0].offsetTop }); }); var groups = {}; for (var i = 0; i < dots.length; i++) { for (var j = 0; j < dots.length; j++) { if (j !== i) { var hyp = getHypotenuse(dots[i], dots[j]); console.log(i, j, hyp); } } } }, onRemoveTuioCursor = function(removeCursor) { //console.log('remove', removeCursor); var $removeCursor = cursors[removeCursor.getCursorId()]; $removeCursor.remove(); delete[removeCursor.getCursorId()]; }, onAddTuioObject = function(addObject) { console.log(addObject); }, onUpdateTuioObject = function(updateObject) { console.log(updateObject); }, onRemoveTuioObject = function(removeObject) { console.log(removeObject); }, onRefresh = function(time) { }; client.on("connect", onConnect); client.on("addTuioCursor", onAddTuioCursor); client.on("updateTuioCursor", onUpdateTuioCursor); client.on("removeTuioCursor", onRemoveTuioCursor); client.on("addTuioObject", onAddTuioObject); client.on("updateTuioObject", onUpdateTuioObject); client.on("removeTuioObject", onRemoveTuioObject); client.on("refresh", onRefresh); client.connect(); }); </script> </body> </html>