diff options
author | Jason Sams <jsams@google.com> | 2013-11-27 15:30:06 -0800 |
---|---|---|
committer | Jason Sams <jsams@google.com> | 2013-11-27 15:30:06 -0800 |
commit | afb02269cfaed56240f695101ba599beae0c5952 (patch) | |
tree | 3c53bbe4eb61525f738207c6d588cf1656b30161 /graphics/java/android/renderscript/Float2.java | |
parent | 4f0be08f2be70b758d1b1308543f15824e4a0f9f (diff) | |
parent | 1ccc6633bf47c95601cc13a2566c702bb8d986cd (diff) | |
download | frameworks_base-afb02269cfaed56240f695101ba599beae0c5952.zip frameworks_base-afb02269cfaed56240f695101ba599beae0c5952.tar.gz frameworks_base-afb02269cfaed56240f695101ba599beae0c5952.tar.bz2 |
Merge commit '1ccc6633' into manualmerge
Conflicts:
graphics/java/android/renderscript/Double2.java
graphics/java/android/renderscript/Double3.java
graphics/java/android/renderscript/Double4.java
graphics/java/android/renderscript/Float2.java
graphics/java/android/renderscript/Float3.java
graphics/java/android/renderscript/Float4.java
graphics/java/android/renderscript/Int2.java
graphics/java/android/renderscript/Int3.java
graphics/java/android/renderscript/Int4.java
graphics/java/android/renderscript/Long2.java
graphics/java/android/renderscript/Long3.java
graphics/java/android/renderscript/Long4.java
graphics/java/android/renderscript/Short2.java
graphics/java/android/renderscript/Short3.java
graphics/java/android/renderscript/Short4.java
Change-Id: Ib9e940bc7d62764020eea7639d7158af707eb33f
Diffstat (limited to 'graphics/java/android/renderscript/Float2.java')
-rw-r--r-- | graphics/java/android/renderscript/Float2.java | 369 |
1 files changed, 357 insertions, 12 deletions
diff --git a/graphics/java/android/renderscript/Float2.java b/graphics/java/android/renderscript/Float2.java index 427f038..e9f8ca7 100644 --- a/graphics/java/android/renderscript/Float2.java +++ b/graphics/java/android/renderscript/Float2.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 The Android Open Source Project + * Copyright (C) 2013 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,24 +16,369 @@ package android.renderscript; - /** - * Class for exposing the native RenderScript float2 type back to the Android system. - * - **/ -public class Float2 { + * Vector version of the basic float type. + * Provides two float fields packed. + */ +public class Float2 { + public float x; + public float y; + public Float2() { } + /** @hide */ + public Float2(Float2 data) { + this.x = data.x; + this.y = data.y; + } - public Float2(float initX, float initY) { - x = initX; - y = initY; + public Float2(float x, float y) { + this.x = x; + this.y = y; } - public float x; - public float y; -} + /** @hide + * Vector add + * + * @param a + * @param b + * @return + */ + public static Float2 add(Float2 a, Float2 b) { + Float2 res = new Float2(); + res.x = a.x + b.x; + res.y = a.y + b.y; + + return res; + } + + /** @hide + * Vector add + * + * @param value + */ + public void add(Float2 value) { + x += value.x; + y += value.y; + } + + /** @hide + * Vector add + * + * @param value + */ + public void add(float value) { + x += value; + y += value; + } + + /** @hide + * Vector add + * + * @param a + * @param b + * @return + */ + public static Float2 add(Float2 a, float b) { + Float2 res = new Float2(); + res.x = a.x + b; + res.y = a.y + b; + + return res; + } + + /** @hide + * Vector subtraction + * + * @param value + */ + public void sub(Float2 value) { + x -= value.x; + y -= value.y; + } + + /** @hide + * Vector subtraction + * + * @param a + * @param b + * @return + */ + public static Float2 sub(Float2 a, Float2 b) { + Float2 res = new Float2(); + res.x = a.x - b.x; + res.y = a.y - b.y; + + return res; + } + + /** @hide + * Vector subtraction + * + * @param value + */ + public void sub(float value) { + x -= value; + y -= value; + } + + /** @hide + * Vector subtraction + * + * @param a + * @param b + * @return + */ + public static Float2 sub(Float2 a, float b) { + Float2 res = new Float2(); + res.x = a.x - b; + res.y = a.y - b; + + return res; + } + + /** @hide + * Vector multiplication + * + * @param value + */ + public void mul(Float2 value) { + x *= value.x; + y *= value.y; + } + + /** @hide + * Vector multiplication + * + * @param a + * @param b + * @return + */ + public static Float2 mul(Float2 a, Float2 b) { + Float2 res = new Float2(); + res.x = a.x * b.x; + res.y = a.y * b.y; + + return res; + } + + /** @hide + * Vector multiplication + * + * @param value + */ + public void mul(float value) { + x *= value; + y *= value; + } + + /** @hide + * Vector multiplication + * + * @param a + * @param b + * @return + */ + public static Float2 mul(Float2 a, float b) { + Float2 res = new Float2(); + res.x = a.x * b; + res.y = a.y * b; + + return res; + } + + /** @hide + * Vector division + * + * @param value + */ + public void div(Float2 value) { + x /= value.x; + y /= value.y; + } + + /** @hide + * Vector division + * + * @param a + * @param b + * @return + */ + public static Float2 div(Float2 a, Float2 b) { + Float2 res = new Float2(); + res.x = a.x / b.x; + res.y = a.y / b.y; + + return res; + } + /** @hide + * Vector division + * + * @param value + */ + public void div(float value) { + x /= value; + y /= value; + } + /** @hide + * Vector division + * + * @param a + * @param b + * @return + */ + public static Float2 div(Float2 a, float b) { + Float2 res = new Float2(); + res.x = a.x / b; + res.y = a.y / b; + return res; + } + /** @hide + * Vector dot Product + * + * @param a + * @return + */ + public float dotProduct(Float2 a) { + return (x * a.x) + (y * a.y); + } + + /** @hide + * Vector dot Product + * + * @param a + * @param b + * @return + */ + public static float dotProduct(Float2 a, Float2 b) { + return (b.x * a.x) + (b.y * a.y); + } + + /** @hide + * Vector add Multiple + * + * @param a + * @param factor + */ + public void addMultiple(Float2 a, float factor) { + x += a.x * factor; + y += a.y * factor; + } + + /** @hide + * set vector value by float2 + * + * @param a + */ + public void set(Float2 a) { + this.x = a.x; + this.y = a.y; + } + + /** @hide + * set vector negate + */ + public void negate() { + x = -x; + y = -y; + } + + /** @hide + * get vector length + * + * @return + */ + public int length() { + return 2; + } + + /** @hide + * return the element sum of vector + * + * @return + */ + public float elementSum() { + return x + y; + } + + /** @hide + * get the vector field value by index + * + * @param i + * @return + */ + public float get(int i) { + switch (i) { + case 0: + return x; + case 1: + return y; + default: + throw new IndexOutOfBoundsException("Index: i"); + } + } + + /** @hide + * set the vector field value by index + * + * @param i + * @param value + */ + public void setAt(int i, float value) { + switch (i) { + case 0: + x = value; + return; + case 1: + y = value; + return; + default: + throw new IndexOutOfBoundsException("Index: i"); + } + } + + /** @hide + * add the vector field value by index + * + * @param i + * @param value + */ + public void addAt(int i, float value) { + switch (i) { + case 0: + x += value; + return; + case 1: + y += value; + return; + default: + throw new IndexOutOfBoundsException("Index: i"); + } + } + + /** @hide + * set the vector field value + * + * @param x + * @param y + */ + public void setValues(float x, float y) { + this.x = x; + this.y = y; + } + + /** @hide + * copy the vector to float array + * + * @param data + * @param offset + */ + public void copyTo(float[] data, int offset) { + data[offset] = x; + data[offset + 1] = y; + } +} |