diff options
author | ziadb <ziadb@google.com> | 2018-07-20 13:10:11 -0400 |
---|---|---|
committer | Ziad Ben Hadj-Alouane <ziadb@google.com> | 2018-07-26 15:29:41 +0000 |
commit | 897f256413c13d932a3c6f34eebe156c96defab8 (patch) | |
tree | 72471453374b96dced1817ad59a3eed4e0761414 /platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java | |
parent | d26b4d865ac57d1b5ef810dd4408d8cc147b3460 (diff) |
SkAR Java: smooth finger painting, planes draw with outlines
Bug: skia:
Change-Id: I0e6f3c00f030f7a03c3829cd4ff22ac7459dc132
Reviewed-on: https://skia-review.googlesource.com/142685
Reviewed-by: Mike Reed <reed@google.com>
Diffstat (limited to 'platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java')
-rw-r--r-- | platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java b/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java index 9732cb1647..98f36fbe1f 100644 --- a/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java +++ b/platform_tools/android/apps/skar_java/src/main/java/com/google/ar/core/examples/java/helloskar/DrawManager.java @@ -46,7 +46,7 @@ public class DrawManager { private ColorFilter lightFilter; private BitmapShader planeShader; public ArrayList<float[]> modelMatrices = new ArrayList<>(); - public SkARFingerPainting fingerPainting = new SkARFingerPainting(); + public SkARFingerPainting fingerPainting = new SkARFingerPainting(false); public void updateViewport(float width, float height) { viewportWidth = width; @@ -65,10 +65,6 @@ public class DrawManager { lightFilter = SkARUtil.createLightCorrectionColorFilter(colorCorr); } - public void updateFingerPainting(PointF p) { - fingerPainting.addPoint(p); - } - // Sample function for drawing a circle public void drawCircle(Canvas canvas) { if (modelMatrices.isEmpty()) { @@ -143,6 +139,10 @@ public class DrawManager { } public void drawFingerPainting(Canvas canvas) { + // Build the path before rendering + fingerPainting.buildPath(); + + // If path empty, return if (fingerPainting.path.isEmpty()) { return; } @@ -166,7 +166,12 @@ public class DrawManager { // Set up paint Paint p = new Paint(); - p.setColor(Color.GREEN); + if (fingerPainting.getSmoothness()) { + p.setColor(Color.CYAN); + } else { + p.setColor(Color.GREEN); + } + p.setStyle(Paint.Style.STROKE); p.setStrokeWidth(30f); p.setAlpha(120); @@ -269,19 +274,24 @@ public class DrawManager { // Set up paint Paint p = new Paint(); - p.setShader(planeShader); - p.setColorFilter(new PorterDuffColorFilter(Color.argb(0.4f, 1, 0, 0), + + if (false) { + //p.setShader(planeShader); + p.setColorFilter(new PorterDuffColorFilter(Color.argb(0.4f, 1, 0, 0), PorterDuff.Mode.SRC_ATOP)); + } p.setColor(Color.RED); p.setAlpha(100); + p.setStrokeWidth(0.01f); + p.setStyle(Paint.Style.STROKE); + if (true) { // Shader local matrix android.graphics.Matrix lm = new android.graphics.Matrix(); lm.setScale(0.00005f, 0.00005f); planeShader.setLocalMatrix(lm); - // Draw dest path canvas.save(); canvas.setMatrix(mvpv); |