Skip to content
This repository has been archived by the owner on Jun 21, 2023. It is now read-only.

Commit

Permalink
Rotate camera in the shortest path.
Browse files Browse the repository at this point in the history
  • Loading branch information
kevin committed Jun 11, 2020
1 parent 238abb4 commit 0858d5b
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,16 @@ private Utils() {
* @return the shortest degree of rotation possible
*/
public static float shortestRotation(float heading, float previousHeading) {
heading %= 360;
previousHeading %= 360;

double diff = previousHeading - heading;
if (diff > 180.0f) {
heading += 360.0f;
} else if (diff < -180.0f) {
heading -= 360.f;
}

return heading;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,30 @@ class LocationAnimatorCoordinatorTest {
assertEquals(bearing, layerBearingTarget)
}

@Test
fun feedNewCompassBearing_bigValue_animatorValue() {
val bearing = 719f
locationAnimatorCoordinator.feedNewCompassBearing(bearing, cameraPosition)

val cameraBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_COMPASS_BEARING]?.target as Float
assertEquals(-1f, cameraBearingTarget)

val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_COMPASS_BEARING]?.target as Float
assertEquals(359f, layerBearingTarget)
}

@Test
fun feedNewCompassBearing_smallValue_animatorValue() {
val bearing = -719f
locationAnimatorCoordinator.feedNewCompassBearing(bearing, cameraPosition)

val cameraBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_CAMERA_COMPASS_BEARING]?.target as Float
assertEquals(1f, cameraBearingTarget)

val layerBearingTarget = locationAnimatorCoordinator.animatorArray[ANIMATOR_LAYER_COMPASS_BEARING]?.target as Float
assertEquals(-359f, layerBearingTarget)
}

@Test
fun feedNewAccuracyRadius_animatorsCreated() {
locationAnimatorCoordinator.feedNewAccuracyRadius(150f, false)
Expand Down

0 comments on commit 0858d5b

Please sign in to comment.