summaryrefslogtreecommitdiffstats
path: root/o3d/samples/o3d-webgl/transform.js
diff options
context:
space:
mode:
Diffstat (limited to 'o3d/samples/o3d-webgl/transform.js')
-rw-r--r--o3d/samples/o3d-webgl/transform.js26
1 files changed, 21 insertions, 5 deletions
diff --git a/o3d/samples/o3d-webgl/transform.js b/o3d/samples/o3d-webgl/transform.js
index 929abfd..6499da2 100644
--- a/o3d/samples/o3d-webgl/transform.js
+++ b/o3d/samples/o3d-webgl/transform.js
@@ -612,11 +612,6 @@ o3d.Transform.transformPoint = function(m, v) {
var v0 = v[0];
var v1 = v[1];
var v2 = v[2];
-
- if (!m) {
- debugger;
- }
-
var m0 = m[0];
var m1 = m[1];
var m2 = m[2];
@@ -629,6 +624,27 @@ o3d.Transform.transformPoint = function(m, v) {
};
+/**
+ * Takes a 4-by-4 matrix and a vector with 3 entries,
+ * interprets the vector as a point, transforms that point by the matrix,
+ * returning the z-component of the result only.
+ * @param {!o3djs.math.Matrix4} m The matrix.
+ * @param {!o3djs.math.Vector3} v The point.
+ * @return {number} The z coordinate of the transformed point.
+ */
+o3d.Transform.transformPointZOnly = function(m, v) {
+ var v0 = v[0];
+ var v1 = v[1];
+ var v2 = v[2];
+ var m0 = m[0];
+ var m1 = m[1];
+ var m2 = m[2];
+ var m3 = m[3];
+
+ var d = (v0 * m0[2] + v1 * m1[2] + v2 * m2[2] + m3[2]) /
+ (v0 * m0[3] + v1 * m1[3] + v2 * m2[3] + m3[3]);
+};
+
/**
* Pre-composes the local matrix of this Transform with a rotation about the