Move implementations of quaternion functions into driver/runtime.
Move the implementation of all quaternion functions from rs_math.rsh
driver/runtime. The old implementation remains in place for older
versions, and the move occurs only for an UNRELEASED API level.
Added a new file driver/runtime/rs_quaternion.c to contain the
implementations.
Change-Id: I70ffcb29e64b4287e37e349488a59a9f485847e4
Signed-off-by: Verena Beckham <verena@codeplay.com>
diff --git a/api/rs_quaternion.spec b/api/rs_quaternion.spec
index ced31c8..d9d2b94 100644
--- a/api/rs_quaternion.spec
+++ b/api/rs_quaternion.spec
@@ -21,6 +21,7 @@
end:
function: rsQuaternionAdd
+version: 9 23
ret: void
arg: rs_quaternion* q, "Destination quaternion to add to."
arg: const rs_quaternion* rhs, "Quaternion to add."
@@ -36,6 +37,7 @@
end:
function: rsQuaternionConjugate
+version: 9 23
ret: void
arg: rs_quaternion* q, "Quaternion to modify."
summary: Conjugate a quaternion
@@ -49,6 +51,7 @@
end:
function: rsQuaternionDot
+version: 9 23
ret: float
arg: const rs_quaternion* q0, "First quaternion."
arg: const rs_quaternion* q1, "Second quaternion."
@@ -61,6 +64,7 @@
end:
function: rsQuaternionGetMatrixUnit
+version: 9 23
ret: void
arg: rs_matrix4x4* m, "Resulting matrix."
arg: const rs_quaternion* q, "Normalized quaternion."
@@ -93,6 +97,7 @@
end:
function: rsQuaternionLoadRotateUnit
+version: 9 23
ret: void
arg: rs_quaternion* q, "Destination quaternion."
arg: float rot, "Angle to rotate by, in radians."
@@ -115,6 +120,7 @@
end:
function: rsQuaternionSet
+version: 9 23
ret: void
arg: rs_quaternion* q, "Destination quaternion."
arg: float w, "W component."
@@ -133,6 +139,7 @@
end:
function: rsQuaternionSet
+version: 9 23
ret: void
arg: rs_quaternion* q
arg: const rs_quaternion* rhs, "Source quaternion."
@@ -148,6 +155,7 @@
# for the compilation to work.
function: rsQuaternionLoadRotate
+version: 9 23
ret: void
arg: rs_quaternion* q, "Destination quaternion."
arg: float rot, "Angle to rotate by."
@@ -171,6 +179,7 @@
end:
function: rsQuaternionNormalize
+version: 9 23
ret: void
arg: rs_quaternion* q, "Quaternion to normalize."
summary: Normalize a quaternion
@@ -189,6 +198,7 @@
end:
function: rsQuaternionMultiply
+version: 9 23
ret: void
arg: rs_quaternion* q, "Destination quaternion."
arg: float scalar, "Scalar to multiply the quaternion by."
@@ -205,6 +215,7 @@
end:
function: rsQuaternionMultiply
+version: 9 23
ret: void
arg: rs_quaternion* q
arg: const rs_quaternion* rhs, "Quaternion to multiply the destination quaternion by."
@@ -221,6 +232,7 @@
end:
function: rsQuaternionSlerp
+version: 9 23
ret: void
arg: rs_quaternion* q, "Result quaternion from the interpolation."
arg: const rs_quaternion* q0, "First input quaternion."
@@ -270,3 +282,112 @@
tempq0.y*scale + tempq1.y*invScale, tempq0.z*scale + tempq1.z*invScale);
test: none
end:
+
+# New versions. Same signatures but don't contain a body.
+function: rsQuaternionAdd
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+arg: const rs_quaternion* rhs
+test: none
+end:
+
+function: rsQuaternionConjugate
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+test: none
+end:
+
+function: rsQuaternionDot
+version: UNRELEASED
+ret: float
+arg: const rs_quaternion* q0
+arg: const rs_quaternion* q1
+test: none
+end:
+
+function: rsQuaternionGetMatrixUnit
+version: UNRELEASED
+ret: void
+arg: rs_matrix4x4* m
+arg: const rs_quaternion* q
+test: none
+end:
+
+function: rsQuaternionLoadRotateUnit
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+arg: float rot
+arg: float x
+arg: float y
+arg: float z
+test: none
+end:
+
+function: rsQuaternionSet
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+arg: float w
+arg: float x
+arg: float y
+arg: float z
+test: none
+end:
+
+function: rsQuaternionSet
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+arg: const rs_quaternion* rhs
+test: none
+end:
+
+# NOTE: The following inline definitions depend on each other. The order must be preserved
+# for the compilation to work.
+
+function: rsQuaternionLoadRotate
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+arg: float rot
+arg: float x
+arg: float y
+arg: float z
+test: none
+end:
+
+function: rsQuaternionNormalize
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+test: none
+end:
+
+function: rsQuaternionMultiply
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+arg: float scalar
+test: none
+end:
+
+function: rsQuaternionMultiply
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+arg: const rs_quaternion* rhs
+test: none
+end:
+
+function: rsQuaternionSlerp
+version: UNRELEASED
+ret: void
+arg: rs_quaternion* q
+arg: const rs_quaternion* q0
+arg: const rs_quaternion* q1
+arg: float t
+test: none
+end: