Uploaded by Zillode on Apr 29, 2010
Multi-touch interfaces are inherently concurrent and provide a continuously stream of events,
which makes it very hard to implement advanced and collaborative gestures using traditional event handlers.
We propose a rule based language extended with spatio-temporal operators that allows a high-level approach for describing gestures.
(defrule Drag
(declare (salience 5))
?eventList[] <- (setof Cursor (same: tuioId) (tWithin: 500) (min: 2) (retract: all_but_one))
?image <- (Image)
(test (inside ?eventList[0].x ?eventList[0].y ?image.x ?image.y ?image.width ?image.height))
(not (and (Cursor (x ?x) (y ?y) {(tuioId <> ?eventList[0].tuioId)}) (test (inside ?x ?y ?image.x ?image.y ?image.width ?image.height))))
=>
(printout t "drag detected!")
(assert (Drag (events ?eventList[]) (image ?image))))
(defrule DoubleTap
(declare (salience 6))
?a1 <- (Tap (tuio_id ?aId) (objectFact ?cId))
?a2 <- (Tap (tuio_id ?aId) (objectFact ?cId) {on < (+ ?a1.time 1200)})
(test (approxEqualDistance ?a1.x ?a1.y ?a2.x ?a2.y))
=>
(printout t "DoubleTap" crlf)
(retract ?a1)
(retract ?a2)
(assert (DoubleTap (id ?a1.UID) (tuioId ?aId) (x ?a1.x) (y ?a1.y) (on ?a2.time)
(objectFact ?cId))))
(defrule CircleMerge
(declare (salience 7))
?a1 <- (Gesture (type "CircleCW"))
?a2 <- (Gesture (type "CircleCCW"))
?c1 <- (Image)
?c2 <- (Image)
(test (approxEqualTime ?a1.time ?a2.time))
(test (< ?a1.xl ?a2.xl))
(test (inside ?a1.xl ?a1.yl ?c1.x ?c1.y ?c1.w ?c1.h))
(test (inside ?a2.xl ?a2.yl ?c2.x ?c2.y ?c2.w ?c2.h))
=>
(printout t "CircleMerge (" ?a1.xl ", "?a1.yl") ("?c1.x ","?c1.y ")" crlf)
(retract ?a1)
(retract ?a2)
(?c1.OBJECT merge ?c2.OBJECT))
Category:
Tags:
License:
Standard YouTube License
-
0 likes, 0 dislikes
2:51
JMidas: A Declarative Multi-Touch Interaction Framework'by anonymous67121616 views
0:51
CES 2011: Touch Revolution monitor demonstration ~ 2011-01-08by michaelklann627 views
1:14
A Day in the Life - Computer Software Engineerby CareerRx155,653 views
0:12
Software Engineering Abstractions for the Multi-Touch Revolutionby MultipatSRC103 views
2:46
The Role-Playing Game for Software Engineersby VITALLab7,055 views
0:49
Touch Revolution's TRū™ 21.5" Desktop Touch Monitor with Astrotouch by Gestureworksby multitouchexhibits1,458 views
1:46
Touch Revolution at CES 2011by l2myowndevices370 views
1:33
Working at Google NYC - Nina: Software Engineerby Google185,093 views
1:39
Windows 7 Multitouch with CCV and TUIOby immeallme2,181 views
0:30
Touch Revolution Multi Touch Retail Applicationby TouchRev210 views
3:20
Letters to a Student Revolutionary clipby ChinesePirateProd89 views
3:07
'Concurrent Engineering'_Kanaleneiland-Utrecht_TREBBE_RWI_EdGby rikwit01372 views
2:38
Paul-Ranky-greenPLM-Concurrent-Engineering-DFM-PhoneDisassy-Clip1W.movby cimwarevideos218 views
1:40
Make a Facebook Fan Page with FB SITE CREATOR software from Steven Essa and Jim Graham!by smarthelp4you790 views
1:33
Bertrand Serlet on using Apple's private API'sby kenthorvath9,544 views
0:35
Paul-Ranky-Design-For-Assembly-InkJetPrinter-Disassy-cimwareukandusa-Clip3W.movby cimwarevideos37 views
1:17
How an Engineer folds a T-Shirtby OGTalon1,447,960 views
1:19
IDX Automation Softwareby MEILLC2,660 views
0:49
Engineerby silva8644950,332 views
2:00
CATIA V6 | Mechanical Design & Engineering | Fastening Processesby 3dsCATIA16,964 views
- Loading more suggestions...
Link to this comment:
All Comments (0)