diff options
author | 2012-11-29 14:41:08 +0900 | |
---|---|---|
committer | 2012-11-29 16:28:12 +0900 | |
commit | f90475b5d4c2f94188ace4b7dd45160a02d1d204 (patch) | |
tree | d9044946f4427ba2a9a1c41c478cf8d5fcebd2ce /java/src/com/android/inputmethod/keyboard/internal/GesturePreviewTrail.java | |
parent | 1a6d56e31da2c98e7ab4e60e6bba71b7ea46c4c3 (diff) | |
download | latinime-f90475b5d4c2f94188ace4b7dd45160a02d1d204.tar.gz latinime-f90475b5d4c2f94188ace4b7dd45160a02d1d204.tar.xz latinime-f90475b5d4c2f94188ace4b7dd45160a02d1d204.zip |
Make RoundedLine as top level class (Step 4)
Change-Id: Id52baefb3d61eb46b3679e1ba3aa7ef7cd020efc
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/internal/GesturePreviewTrail.java')
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/GesturePreviewTrail.java | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/GesturePreviewTrail.java b/java/src/com/android/inputmethod/keyboard/internal/GesturePreviewTrail.java index 900349cea..a11f8ef5d 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/GesturePreviewTrail.java +++ b/java/src/com/android/inputmethod/keyboard/internal/GesturePreviewTrail.java @@ -118,94 +118,6 @@ final class GesturePreviewTrail { / params.mTrailLingerDuration, 0.0f); } - static final class RoundedLine { - // Input - // Previous point (P1) coordinates and trail radius. - public float p1x, p1y; - public float r1; - // Current point (P2) coordinates and trail radius. - public float p2x, p2y; - public float r2; - - // Closing point of arc at P1. - private float p1ax, p1ay; - // Opening point of arc at P1. - private float p1bx, p1by; - // Opening point of arc at P2. - private float p2ax, p2ay; - // Closing point of arc at P2. - private float p2bx, p2by; - // Start angle of the trail arcs. - private float angle; - // Sweep angle of the trail arc at P1. - private float a1; - private final RectF arc1 = new RectF(); - // Sweep angle of the trail arc at P2. - private float a2; - private final RectF arc2 = new RectF(); - private final Path path = new Path(); - - private static final float RADIAN_TO_DEGREE = (float)(180.0d / Math.PI); - private static final float RIGHT_ANGLE = (float)(Math.PI / 2.0d); - - public Path makePath() { - final float dx = p2x - p1x; - final float dy = p2y - p1y; - // Distance of the points. - final double l = Math.hypot(dx, dy); - if (Double.compare(0.0d, l) == 0) { - return null; - } - // Angle of the line p1-p2 - final float a = (float)Math.atan2(dy, dx); - // Difference of trail cap radius. - final float dr = r2 - r1; - // Variation of angle at trail cap. - final float ar = (float)Math.asin(dr / l); - // The start angle of trail cap arc at P1. - final float aa = a - (RIGHT_ANGLE + ar); - // The end angle of trail cap arc at P2. - final float ab = a + (RIGHT_ANGLE + ar); - final float cosa = (float)Math.cos(aa); - final float sina = (float)Math.sin(aa); - final float cosb = (float)Math.cos(ab); - final float sinb = (float)Math.sin(ab); - p1ax = p1x + r1 * cosa; - p1ay = p1y + r1 * sina; - p1bx = p1x + r1 * cosb; - p1by = p1y + r1 * sinb; - p2ax = p2x + r2 * cosa; - p2ay = p2y + r2 * sina; - p2bx = p2x + r2 * cosb; - p2by = p2y + r2 * sinb; - angle = aa * RADIAN_TO_DEGREE; - final float ar2degree = ar * 2.0f * RADIAN_TO_DEGREE; - a1 = -180.0f + ar2degree; - a2 = 180.0f + ar2degree; - arc1.set(p1x, p1y, p1x, p1y); - arc1.inset(-r1, -r1); - arc2.set(p2x, p2y, p2x, p2y); - arc2.inset(-r2, -r2); - - path.rewind(); - // Trail cap at P1. - path.moveTo(p1x, p1y); - path.arcTo(arc1, angle, a1); - // Trail cap at P2. - path.moveTo(p2x, p2y); - path.arcTo(arc2, angle, a2); - // Two trapezoids connecting P1 and P2. - path.moveTo(p1ax, p1ay); - path.lineTo(p1x, p1y); - path.lineTo(p1bx, p1by); - path.lineTo(p2bx, p2by); - path.lineTo(p2x, p2y); - path.lineTo(p2ax, p2ay); - path.close(); - return path; - } - } - private final RoundedLine mRoundedLine = new RoundedLine(); /** |