|
@@ -3,6 +3,7 @@ import android.app.Activity;
|
|
|
import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
import android.content.pm.ActivityInfo;
|
|
|
+import android.content.res.Resources;
|
|
|
import android.graphics.PixelFormat;
|
|
|
import android.hardware.Camera;
|
|
|
import android.media.MediaPlayer;
|
|
@@ -10,6 +11,7 @@ import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
import android.support.v7.app.AlertDialog;
|
|
|
import android.util.Log;
|
|
|
+import android.util.TypedValue;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewTreeObserver;
|
|
|
import android.view.WindowManager;
|
|
@@ -223,6 +225,7 @@ public class ARActivity extends RendererActivity
|
|
|
final TextView tv = (TextView) findViewById(R.id.text_detected);
|
|
|
final TextView tv2 = (TextView)findViewById(R.id.text_place);
|
|
|
String toDisplay ="Detetected \n";
|
|
|
+ float vX =0;
|
|
|
boolean detected = false;
|
|
|
// String dete = "Detected:\n";
|
|
|
scene.clear();
|
|
@@ -231,7 +234,7 @@ public class ARActivity extends RendererActivity
|
|
|
Place p = res.get(i).getPlace();
|
|
|
if(rr!=null) {
|
|
|
detected=true;
|
|
|
- toDisplay += "\t" + rr.getName() + " \n";
|
|
|
+ //toDisplay += "\t" + rr.getName() + " \n";
|
|
|
//dete += "\t" + rr.getName() + "\n";
|
|
|
Object3d oo = rr.get3DModel(this);
|
|
|
CameraVo v = new CameraVo();
|
|
@@ -239,15 +242,22 @@ public class ARActivity extends RendererActivity
|
|
|
v.target.y=mGame.getPlayer().getOrientationY()-315;
|
|
|
|
|
|
//si utilisation de field et angle
|
|
|
+ Log.e("_______",rr.getName()+" ---> "+p.isUseAngle());
|
|
|
if(p.isUseAngle())
|
|
|
v.target.x=(float)(mGame.getPlayer().getOrientationX()-p.getAngle())+mGame.getPlayer().getOrientationZ()-270f;
|
|
|
//si utilisation GPS pour l'angle
|
|
|
- else
|
|
|
- v.target.x=(float)(mGame.getPlayer().getOrientationX()-mGame.getPlayer().getAngleWith(p))
|
|
|
- +mGame.getPlayer().getOrientationZ()-270f;
|
|
|
+ else {
|
|
|
+ v.target.x = (float) (mGame.getPlayer().getOrientationX() - mGame.getPlayer().getAngleWith(p))
|
|
|
+ + mGame.getPlayer().getOrientationZ() - 270f;
|
|
|
+
|
|
|
+ toDisplay += "Angle " + dts(mGame.getPlayer().getAngleWith(p)) + "°\nx,y = (" + dts(mGame.getPlayer().getXWith(p)) + " m, " + dts(mGame.getPlayer().getYWith(p)) +
|
|
|
+ " m)\nPlayer :" + dts(mGame.getPlayer().getOrientationX()) + "°\nAngleWith:" + dts(mGame.getPlayer().getAngleWith(p)) +
|
|
|
+ "°\nZ " + dts(mGame.getPlayer().getOrientationZ() - 270f) + "°\nTotal " + dts(v.target.x) + "°";
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- toDisplay += " "+(float)(mGame.getPlayer().getAngleWith(p)) +"("+mGame.getPlayer().getXWith(p)+", "+mGame.getPlayer().getYWith(p) +")\n";
|
|
|
//v.target.z=mGame.getPlayer().getOrientationZ()-270;
|
|
|
+ vX=(float)(mGame.getPlayer().getAngleWith(p));
|
|
|
scene.camera(v);
|
|
|
scene.addChild(oo);
|
|
|
}
|
|
@@ -257,13 +267,13 @@ public class ARActivity extends RendererActivity
|
|
|
|
|
|
|
|
|
final String td = toDisplay;
|
|
|
- /*mAngle.getHandler().post(new Runnable() {
|
|
|
+ mGps.getHandler().post(new Runnable() {
|
|
|
public void run() {
|
|
|
- tv2.setText(td);
|
|
|
+ mGps.setText(td);
|
|
|
}
|
|
|
- });*/
|
|
|
+ });
|
|
|
|
|
|
- final String dete2 = mGame.getResourcesNextToPlayerDist();
|
|
|
+ final String dete2 = vX+" °";//mGame.getResourcesNextToPlayerDist();
|
|
|
tv.getHandler().post(new Runnable() {
|
|
|
public void run() {
|
|
|
tv.setText(dete2);
|
|
@@ -323,14 +333,14 @@ public class ARActivity extends RendererActivity
|
|
|
int w =mViewWidth = mRlRoot.getMeasuredWidth();
|
|
|
int h =mViewHeight = mRlRoot.getMeasuredHeight();
|
|
|
|
|
|
- mTvGPS.setTextSize((int)(h*0.121f/6));
|
|
|
+ mTvGPS.setTextSize(pxToDp((int)(h*0.121f/3.5)));
|
|
|
mTvGPS.setText("N ?°\nE ?°");
|
|
|
- mTvAngle.setTextSize((int)(h*0.121f/6));
|
|
|
- mTvDistance.setTextSize((int)(h*0.046f/1.8));
|
|
|
+ mTvAngle.setTextSize(pxToDp((int)(h*0.121f/3.5)));
|
|
|
+ mTvDistance.setTextSize(pxToDp((int)(h*0.046f)));
|
|
|
|
|
|
moveView(mTvAngle, (int)(0.03*w), (int)(0.864f*h), (int)(0.291f*w), (int)(0.121*h ));
|
|
|
- moveView(mTvGPS, w-(int)(0.297f*w), (int)(0.875f*h),(int)(0.291f*w), (int)(0.121*h));
|
|
|
- moveView(mTvDistance, w-mTvDistance.getWidth()-(int)(0.359f*w), (int)(0.038f*h), mTvGPS.getWidth(), (int)(0.121*h));
|
|
|
+ moveView(mTvGPS, w-(int)(0.32f*w), (int)(0.875f*h),(int)(0.3*w), (int)(0.121*h));
|
|
|
+ moveView(mTvDistance, w-mTvDistance.getWidth()-(int)(0.36f*w), (int)(0.033f*h), mTvGPS.getWidth(), (int)(0.121*h));
|
|
|
|
|
|
moveView(mIvNone, (int)(w/4.0), 0, (int)(w/2.0), (int)(0.06f*h));
|
|
|
moveView(mIvWhite, (int)(w*0.269), (int)(0.034*h), (int)(w*0.03333), (int)(0.02286f*h));
|
|
@@ -407,6 +417,23 @@ public class ARActivity extends RendererActivity
|
|
|
|
|
|
}
|
|
|
|
|
|
+ protected String dts(double d, int n)
|
|
|
+ {
|
|
|
+ String str = "#0";
|
|
|
+ if(n>0)
|
|
|
+ {
|
|
|
+ str+=".";
|
|
|
+ for(int i=0; i<n; i++) str+="0";
|
|
|
+ }
|
|
|
+ NumberFormat formatter = new DecimalFormat(str);
|
|
|
+ return formatter.format(d);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected String dts(double d)
|
|
|
+ {
|
|
|
+ return dts(d,2);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
protected void onResume() {
|
|
@@ -518,5 +545,15 @@ public class ARActivity extends RendererActivity
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public static int dpToPx(int dp)
|
|
|
+ {
|
|
|
+ return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static int pxToDp(int px)
|
|
|
+ {
|
|
|
+ return (int) (px / Resources.getSystem().getDisplayMetrics().density);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|