Hi, in my app (which uses the imageTargets functionality) I have the pose matrix of a trackable being converted all the way to screen coordinates. The way I am doing this is:
1) Get cameraCalibration
const QCAR::CameraCalibration& cameraCalibration = QCAR::CameraDevice::getInstance().getCameraCalibration();
2) Getting the camera point
QCAR::Vec2F cameraPoint = QCAR::Tool::projectPoint(cameraCalibration, result->getPose(), QCAR::Vec3F(0, 0,0));
3) Converting "cameraPoint" to "screenPoint"
QCAR::Vec2F screenPoint = cameraPointToScreenPoint(cameraPoint);
Step 1 is outside the main 'for' loop in renderFrame. Steps 2 and 3 are done inside the 'for' loop. And the function 'cameraPointToScreenPoint' is a direct copy from y'alls FAQ section.
The problem is that on some devices the screen coordinates returned are not matched to the target being tracked. I have a View class that displays some information about the target being tracked that needs to be right on top of this. On a Motorola Droid 4, this works perfectly, but on an HTC Thunderbolt, the X/Y coordinates returned are off by an exact factor of 2 (I have to multiply the returned coordinates by 2 to get it to work on the HTC). I can't locate the cause of this problem.