Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void calcScreenCoordsOf(TrackableResult trackableResult, Integer numbers)
- {
- final Vec2F q1 = getMarkerUpperLeftCorner(trackableResult);
- final Vec2F q2 = getMarkerUpperRightCorner(trackableResult);
- final Vec2F q3 = getMarkerLowerLeftCorner(trackableResult);
- final Vec2F q4 = getMarkerLowerRightCorner(trackableResult);
- mActivity.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(10, 10);
- params.leftMargin = Math.round(q1.getData()[0]);
- params.topMargin = Math.round(q1.getData()[1]);
- mActivity.view1.setLayoutParams(params);
- params = new RelativeLayout.LayoutParams(10, 10);
- params.leftMargin = Math.round(q2.getData()[0]);
- params.topMargin = Math.round(q2.getData()[1]);
- mActivity.view2.setLayoutParams(params);
- params = new RelativeLayout.LayoutParams(10, 10);
- params.leftMargin = Math.round(q3.getData()[0]);
- params.topMargin = Math.round(q3.getData()[1]);
- mActivity.view3.setLayoutParams(params);
- params = new RelativeLayout.LayoutParams(10, 10);
- params.leftMargin = Math.round(q4.getData()[0]);
- params.topMargin = Math.round(q4.getData()[1]);
- mActivity.view4.setLayoutParams(params);
- }
- });
- }
- public Vec2F cameraPointToScreenPoint(Vec2F cameraPoint) {
- VideoMode videoMode = CameraDevice.getInstance().getVideoMode(CameraDevice.MODE.MODE_DEFAULT);
- VideoBackgroundConfig config = Renderer.getInstance().getVideoBackgroundConfig();
- WindowManager wm = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE);
- Display display = wm.getDefaultDisplay();
- int screenWidth = display.getWidth(); // deprecated
- int screenHeight = display.getHeight() - getStatusBarHeight(); // deprecated
- int xOffset = ((int) screenWidth - config.getSize().getData()[0]) / 2 + config.getPosition().getData()[0];
- int yOffset = ((int) screenHeight - config.getSize().getData()[1]) / 2 - config.getPosition().getData()[1];
- //if (isActivityInPortraitMode) {
- //if(mActivity.getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
- // camera image is rotated 90 degrees
- int rotatedX = videoMode.getHeight() - (int)cameraPoint.getData()[1];
- int rotatedY = (int)cameraPoint.getData()[0];
- return new Vec2F(rotatedX * config.getSize().getData()[0] / (float) videoMode.getHeight() + xOffset,
- rotatedY * config.getSize().getData()[1] / (float) videoMode.getWidth() + yOffset);
- //} else {
- // return new Vec2F(cameraPoint.getData()[0] * config.getSize().getData()[0] / (float) videoMode.getWidth() + xOffset,
- // cameraPoint.getData()[1] * config.getSize().getData()[1] / (float) videoMode.getHeight() + yOffset);
- //}
- }
- Vec2F getMarkerUpperLeftCorner(TrackableResult trackableResult){
- final ImageTarget imageTarget = (ImageTarget) trackableResult.getTrackable();
- CameraCalibration calib = CameraDevice.getInstance().getCameraCalibration();
- Vec2F cameraPoint = Tool.projectPoint(calib, trackableResult.getPose(),
- new Vec3F(- (imageTarget.getSize().getData()[0] / 2.0f) + config.get("color_space_h").floatValue()/2, imageTarget.getSize().getData()[1] / 2.0f + config.get("color_space_v").floatValue()/2, 0));
- return cameraPointToScreenPoint(cameraPoint);
- }
- Vec2F getMarkerLowerLeftCorner(TrackableResult trackableResult){
- final ImageTarget imageTarget = (ImageTarget) trackableResult.getTrackable();
- CameraCalibration calib = CameraDevice.getInstance().getCameraCalibration();
- Vec2F cameraPoint = Tool.projectPoint(calib, trackableResult.getPose(),
- new Vec3F(- (imageTarget.getSize().getData()[0] / 2.0f),- (imageTarget.getSize().getData()[1] / 2.0f), 0));
- return cameraPointToScreenPoint(cameraPoint);
- }
- Vec2F getMarkerUpperRightCorner(TrackableResult trackableResult){
- final ImageTarget imageTarget = (ImageTarget) trackableResult.getTrackable();
- CameraCalibration calib = CameraDevice.getInstance().getCameraCalibration();
- Vec2F cameraPoint = Tool.projectPoint(calib, trackableResult.getPose(),
- new Vec3F(imageTarget.getSize().getData()[0] / 2.0f,imageTarget.getSize().getData()[1] / 2.0f, 0));
- return cameraPointToScreenPoint(cameraPoint);
- }
- Vec2F getMarkerLowerRightCorner(TrackableResult trackableResult){
- final ImageTarget imageTarget = (ImageTarget) trackableResult.getTrackable();
- CameraCalibration calib = CameraDevice.getInstance().getCameraCalibration();
- Vec2F cameraPoint = Tool.projectPoint(calib, trackableResult.getPose(),
- new Vec3F(imageTarget.getSize().getData()[0] / 2.0f,- (imageTarget.getSize().getData()[1] / 2.0f), 0));
- return cameraPointToScreenPoint(cameraPoint);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement