<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>Proof of concept - Objets tangibles</title> <style> body { background: #000; margin: 0; } .tuioCursor { background: #fff; height: 8px; left: 0; position: absolute; top: 0; width: 8px; } .tuioObj { background: #f00; height: 15px; left: 0; position: absolute; top: 0; width: 8px; rotate: 0deg; } </style> </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> <script> $(function() { const urlParams = new URLSearchParams(window.location.search); const debugParams = urlParams.get('debug'); const debug = debugParams ? true : false; if (debug) { console.log('--- Debug activated ---'); } var dotGroups = []; var client = new Tuio.Client({ host: 'http://localhost:5000' }), screenW = $(document).width(), screenH = $(document).height() cursors = {}, objects = {}, onConnect = function() { if (debug) { 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) }); }, onRemoveTuioCursor = function(removeCursor) { var $removeCursor = cursors[removeCursor.getCursorId()]; $removeCursor.remove(); delete[removeCursor.getCursorId()]; }, onAddTuioObject = function(addObject) { var $addObject = $('<div class="tuioObj"></div>'); $('body').append($addObject); objects[addObject.symbolID] = $addObject; onUpdateTuioObject(addObject); if (debug) { console.log('addTuioObject', addObject); } }, onUpdateTuioObject = function(updateObject) { var $updateObject = objects[updateObject.symbolID]; $updateObject.css({ left: updateObject.getScreenX(screenW), top: updateObject.getScreenY(screenH), rotate : updateObject.getAngleDegrees() }); if (debug) { console.log('updateTuioObject', updateObject); } }, onRemoveTuioObject = function(removeObject) { var $removeObject = objects[removeObject.symbolID]; $removeObject.remove(); delete[removeObject.symbolID]; if (debug) { console.log('removeTuioObject', removeObject); } }, onRefresh = function(time) { if (debug) { console.log('refresh', 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>