-
Bug
-
Resolution: Fixed
-
P3: Somewhat important
-
6.5.2
-
None
-
-
17f61ddc6 (dev), e86a033e5 (6.5), 426740ba1 (6.6)
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.