Details
-
Bug
-
Resolution: Fixed
-
P3: Somewhat important
-
6.5.2
-
None
-
-
17f61ddc6 (dev), e86a033e5 (6.5), 426740ba1 (6.6)
Description
It seems that the uniqueId of QTouchPoint that is supposed to contain the id of TUIO fiducials is always invalid / -1.
This is the case in Qml:
MultiPointTouchArea { anchors.fill: parent onTouchUpdated: function(touchPoints){ console.log(touchPoints) for(var i=0; i<touchPoints.length; ++i){ var tp = touchPoints[i] console.log(tp.uniqueId) } } }
and in C++:
bool YourClass::eventFilter(QObject *obj, QEvent *e) { QTouchEvent *te = dynamic_cast<QTouchEvent*>(e); if(!te){ return false; } const QList<QEventPoint>& pnts = te->points(); for(int i=0; i<pnts.size(); ++i) { const QEventPoint& tp = pnts[i]; qDebug()<<"Dev: "<<tp.device(); qDebug()<<"State: "<<tp.state(); qDebug()<<"Rot: "<<tp.rotation(); qDebug()<<"UID: "<<tp.uniqueId().isValid()<<" "<<tp.uniqueId().numericId(); qDebug()<<"ID: "<<tp.id(); } return false; }
The id was generated with the (old but reliable) Java Tuio Simulator. It is passed to QWindowSystemInterfacePrivate::fromNativeTouchPoints and valid there but is lost somewhere on its way through event handling.
This breaks Fiducials / Tuio tokens completely.