Advertisement
Guest User

Untitled

a guest
Mar 5th, 2017
394
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.26 KB | None | 0 0
  1. void calcScreenCoordsOf(TrackableResult trackableResult, Integer numbers)
  2.     {
  3.  
  4.         final Vec2F q1 = getMarkerUpperLeftCorner(trackableResult);
  5.         final Vec2F q2 = getMarkerUpperRightCorner(trackableResult);
  6.         final Vec2F q3 = getMarkerLowerLeftCorner(trackableResult);
  7.         final Vec2F q4 = getMarkerLowerRightCorner(trackableResult);
  8.  
  9.         mActivity.runOnUiThread(new Runnable() {
  10.             @Override
  11.             public void run() {
  12.                     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(10, 10);
  13.                     params.leftMargin = Math.round(q1.getData()[0]);
  14.                     params.topMargin = Math.round(q1.getData()[1]);
  15.                     mActivity.view1.setLayoutParams(params);
  16.  
  17.                     params = new RelativeLayout.LayoutParams(10, 10);
  18.                     params.leftMargin = Math.round(q2.getData()[0]);
  19.                     params.topMargin = Math.round(q2.getData()[1]);
  20.                     mActivity.view2.setLayoutParams(params);
  21.  
  22.                     params = new RelativeLayout.LayoutParams(10, 10);
  23.                     params.leftMargin = Math.round(q3.getData()[0]);
  24.                     params.topMargin = Math.round(q3.getData()[1]);
  25.                     mActivity.view3.setLayoutParams(params);
  26.  
  27.                     params = new RelativeLayout.LayoutParams(10, 10);
  28.                     params.leftMargin = Math.round(q4.getData()[0]);
  29.                     params.topMargin = Math.round(q4.getData()[1]);
  30.                     mActivity.view4.setLayoutParams(params);
  31.             }
  32.         });
  33.  
  34.     }
  35.  
  36.     public Vec2F cameraPointToScreenPoint(Vec2F cameraPoint) {
  37.         VideoMode videoMode = CameraDevice.getInstance().getVideoMode(CameraDevice.MODE.MODE_DEFAULT);
  38.         VideoBackgroundConfig config = Renderer.getInstance().getVideoBackgroundConfig();
  39.  
  40.         WindowManager wm = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE);
  41.         Display display = wm.getDefaultDisplay();
  42.  
  43.         int screenWidth = display.getWidth();  // deprecated
  44.         int screenHeight = display.getHeight() - getStatusBarHeight();  // deprecated
  45.  
  46.         int xOffset = ((int) screenWidth - config.getSize().getData()[0]) / 2 + config.getPosition().getData()[0];
  47.         int yOffset = ((int) screenHeight - config.getSize().getData()[1]) / 2 - config.getPosition().getData()[1];
  48.  
  49.         //if (isActivityInPortraitMode) {
  50.         //if(mActivity.getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
  51.             // camera image is rotated 90 degrees
  52.             int rotatedX = videoMode.getHeight() - (int)cameraPoint.getData()[1];
  53.             int rotatedY = (int)cameraPoint.getData()[0];
  54.  
  55.             return new Vec2F(rotatedX * config.getSize().getData()[0] / (float) videoMode.getHeight() + xOffset,
  56.                     rotatedY * config.getSize().getData()[1] / (float) videoMode.getWidth() + yOffset);
  57.         //} else {
  58.         //    return new Vec2F(cameraPoint.getData()[0] * config.getSize().getData()[0] / (float) videoMode.getWidth() + xOffset,
  59.         //            cameraPoint.getData()[1] * config.getSize().getData()[1] / (float) videoMode.getHeight() + yOffset);
  60.         //}
  61.     }
  62.  
  63.     Vec2F getMarkerUpperLeftCorner(TrackableResult trackableResult){
  64.         final ImageTarget imageTarget = (ImageTarget) trackableResult.getTrackable();
  65.         CameraCalibration calib = CameraDevice.getInstance().getCameraCalibration();
  66.         Vec2F cameraPoint = Tool.projectPoint(calib, trackableResult.getPose(),
  67.                 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));
  68.         return cameraPointToScreenPoint(cameraPoint);
  69.     }
  70.  
  71.     Vec2F getMarkerLowerLeftCorner(TrackableResult trackableResult){
  72.         final ImageTarget imageTarget = (ImageTarget) trackableResult.getTrackable();
  73.         CameraCalibration calib = CameraDevice.getInstance().getCameraCalibration();
  74.         Vec2F cameraPoint = Tool.projectPoint(calib, trackableResult.getPose(),
  75.                 new Vec3F(- (imageTarget.getSize().getData()[0] / 2.0f),- (imageTarget.getSize().getData()[1] / 2.0f), 0));
  76.         return cameraPointToScreenPoint(cameraPoint);
  77.     }
  78.  
  79.     Vec2F getMarkerUpperRightCorner(TrackableResult trackableResult){
  80.         final ImageTarget imageTarget = (ImageTarget) trackableResult.getTrackable();
  81.         CameraCalibration calib = CameraDevice.getInstance().getCameraCalibration();
  82.         Vec2F cameraPoint = Tool.projectPoint(calib, trackableResult.getPose(),
  83.                 new Vec3F(imageTarget.getSize().getData()[0] / 2.0f,imageTarget.getSize().getData()[1] / 2.0f, 0));
  84.         return cameraPointToScreenPoint(cameraPoint);
  85.     }
  86.  
  87.     Vec2F getMarkerLowerRightCorner(TrackableResult trackableResult){
  88.         final ImageTarget imageTarget = (ImageTarget) trackableResult.getTrackable();
  89.         CameraCalibration calib = CameraDevice.getInstance().getCameraCalibration();
  90.         Vec2F cameraPoint = Tool.projectPoint(calib, trackableResult.getPose(),
  91.                 new Vec3F(imageTarget.getSize().getData()[0] / 2.0f,- (imageTarget.getSize().getData()[1] / 2.0f), 0));
  92.         return cameraPointToScreenPoint(cameraPoint);
  93.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement