@@ -86,7 +86,10 @@ public class AreaDescription extends Activity implements View.OnClickListener,
8686 private int mStart2DevicePoseCount ;
8787 private int mAdf2DevicePoseCount ;
8888 private int mAdf2StartPoseCount ;
89-
89+ private int mStart2DevicePreviousPoseStatus ;
90+ private int mAdf2DevicePreviousPoseStatus ;
91+ private int mAdf2StartPreviousPoseStatus ;
92+
9093 private double mStart2DevicePoseDelta ;
9194 private double mAdf2DevicePoseDelta ;
9295 private double mAdf2StartPoseDelta ;
@@ -249,24 +252,25 @@ public void onPoseAvailable(TangoPoseData pose) {
249252
250253 // Update the text views with Pose info.
251254 updateTextViewWith (pose );
255+ float [] translation = pose .getTranslationAsFloats ();
252256 boolean updateRenderer = false ;
253257 if (mIsRelocalized ) {
254258 if (pose .baseFrame == TangoPoseData .COORDINATE_FRAME_AREA_DESCRIPTION
255259 && pose .targetFrame == TangoPoseData .COORDINATE_FRAME_DEVICE ) {
256260 updateRenderer = true ;
261+ mRenderer .getGreenTrajectory ().updateTrajectory (translation );
257262 }
258263 } else {
259264 if (pose .baseFrame == TangoPoseData .COORDINATE_FRAME_START_OF_SERVICE
260265 && pose .targetFrame == TangoPoseData .COORDINATE_FRAME_DEVICE ) {
261266 updateRenderer = true ;
267+ mRenderer .getBlueTrajectory ().updateTrajectory (translation );
262268 }
263269 }
264270
265271 // Update the trajectory, model matrix, and view matrix, then
266272 // render the scene again
267273 if (updateRenderer ) {
268- float [] translation = pose .getTranslationAsFloats ();
269- mRenderer .getTrajectory ().updateTrajectory (translation );
270274 mRenderer .getModelMatCalculator ().updateModelMatrix (
271275 translation , pose .getRotationAsFloats ());
272276 mRenderer .updateViewMatrix ();
@@ -353,6 +357,10 @@ public void run() {
353357
354358 if (pose .baseFrame == TangoPoseData .COORDINATE_FRAME_AREA_DESCRIPTION
355359 && pose .targetFrame == TangoPoseData .COORDINATE_FRAME_DEVICE ) {
360+ if (mAdf2DevicePreviousPoseStatus != pose .statusCode ){
361+ mAdf2DevicePoseCount = 0 ;
362+ }
363+ mAdf2DevicePreviousPoseStatus = pose .statusCode ;
356364 mAdf2DevicePoseCount ++;
357365 mAdf2DevicePoseDelta = (pose .timestamp - mAdf2DevicePreviousPoseTimeStamp )
358366 * SECONDS_TO_MILLI ;
@@ -368,6 +376,10 @@ public void run() {
368376
369377 if (pose .baseFrame == TangoPoseData .COORDINATE_FRAME_START_OF_SERVICE
370378 && pose .targetFrame == TangoPoseData .COORDINATE_FRAME_DEVICE ) {
379+ if (mStart2DevicePreviousPoseStatus != pose .statusCode ){
380+ mStart2DevicePoseCount = 0 ;
381+ }
382+ mStart2DevicePreviousPoseStatus = pose .statusCode ;
371383 mStart2DevicePoseCount ++;
372384 mStart2DevicePoseDelta = (pose .timestamp - mStart2DevicePreviousPoseTimeStamp )
373385 * SECONDS_TO_MILLI ;
@@ -384,6 +396,10 @@ public void run() {
384396
385397 if (pose .baseFrame == TangoPoseData .COORDINATE_FRAME_AREA_DESCRIPTION
386398 && pose .targetFrame == TangoPoseData .COORDINATE_FRAME_START_OF_SERVICE ) {
399+ if (mAdf2StartPreviousPoseStatus != pose .statusCode ){
400+ mAdf2StartPoseCount = 0 ;
401+ }
402+ mAdf2StartPreviousPoseStatus = pose .statusCode ;
387403 mAdf2StartPoseCount ++;
388404 mAdf2StartPoseDelta = (pose .timestamp - mAdf2StartPreviousPoseTimeStamp )
389405 * SECONDS_TO_MILLI ;
@@ -398,13 +414,9 @@ public void run() {
398414 if (pose .statusCode == TangoPoseData .POSE_VALID ) {
399415 mIsRelocalized = true ;
400416 // Set the color to green
401- mRenderer .getTrajectory ().setColor (
402- new float [] { 0.39f , 0.56f , 0.03f , 1.0f });
403417 } else {
404418 mIsRelocalized = false ;
405419 // Set the color blue
406- mRenderer .getTrajectory ().setColor (
407- new float [] { 0.22f , 0.28f , 0.67f , 1.0f });
408420 }
409421 }
410422 }
@@ -443,6 +455,9 @@ protected void onResume() {
443455 } catch (TangoErrorException e ) {
444456 Toast .makeText (getApplicationContext (), R .string .tango_error ,
445457 Toast .LENGTH_SHORT ).show ();
458+ } catch (SecurityException e ){
459+ Toast .makeText (getApplicationContext (), R .string .no_permissions ,
460+ Toast .LENGTH_SHORT ).show ();
446461 }
447462 try {
448463 mTango .connect (mConfig );
0 commit comments