Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1393)

Unified Diff: samples/o3d-webgl/param_operation.js

Issue 3020030: Fixes errors when loading animated meshes in simpleviewer.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/o3d/
Patch Set: '' Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « samples/o3d-webgl/pack.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: samples/o3d-webgl/param_operation.js
===================================================================
--- samples/o3d-webgl/param_operation.js (revision 53860)
+++ samples/o3d-webgl/param_operation.js (working copy)
@@ -147,7 +147,7 @@
/**
* Called by o3d.Param*Output whenever its value gets read.
- * @return {Array<number>} 2-element array equal to [input0,input1]
+ * @return {!Array<number>} 2-element array equal to [input0,input1]
*/
o3d.ParamOp2FloatsToFloat2.prototype.updateOutputs = function() {
this.last_output_value_[0] = this.getParam("input0").value;
@@ -177,7 +177,7 @@
/**
* Called by o3d.Param*Output whenever its value gets read.
- * @return {Array<number>} 3-element array equal to [input0,input1,input2]
+ * @return {!Array<number>} 3-element array equal to [input0,input1,input2]
*/
o3d.ParamOp3FloatsToFloat3.prototype.updateOutputs = function() {
this.last_output_value_[0] = this.getParam("input0").value;
@@ -208,7 +208,7 @@
/**
* Called by o3d.Param*Output whenever its value gets read.
- * @return {Array<number>} 4-element array equal to
+ * @return {!Array<number>} 4-element array equal to
* [input0,input1,input2,input3]
*/
o3d.ParamOp4FloatsToFloat4.prototype.updateOutputs = function() {
@@ -241,12 +241,13 @@
/**
* Called by o3d.Param*Output whenever its value gets read.
- * @return {Array<Array<number>>} 4x4 array equal to
+ * @return {!Array<!Array<number>>} 4x4 array equal to
* [[i0,i1,i2,i3],[i4,i5,i6,i7],[i8,i9,i10,i11],[i12,i13,i14,i15]]
*/
o3d.ParamOp16FloatsToMatrix4.prototype.updateOutputs = function() {
for (var i = 0; i < 16; i++) {
- this.last_output_value_[i/4][i%4] = this.getParam("input"+i).value;
+ this.last_output_value_[Math.floor(i/4)][i%4] =
+ this.getParam("input"+i).value;
}
return this.last_output_value_;
};
@@ -281,8 +282,6 @@
this.scaleZ = 1;
this.last_output_value_ = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];
-
- this.createParam("output", "ParamMatrix4Output");
};
o3d.inherit('TRSToMatrix4', 'ParamObject');
@@ -299,7 +298,7 @@
/**
* Called by o3d.Param*Output whenever its value gets read.
- * @return {matrix4} 4x4 array equal to Translate * Rotate * Scale.
+ * @return {!Array<!Array<number>>} Matrix4 equal to Translate * Rotate * Scale.
*/
o3d.TRSToMatrix4.prototype.updateOutputs = function () {
var ret = this.last_output_value_;
@@ -336,3 +335,36 @@
1);
return ret;
};
+
+/**
+ * A Param operation that takes 16 floats to produce a 4-by-4 matrix.
+ * @constructor
+ * @extends {o3d.ParamObject}
+ */
+o3d.Matrix4Composition = function() {
+ o3d.ParamObject.call(this);
+ this.last_output_value_ = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]];
+};
+o3d.inherit('Matrix4Composition', 'ParamObject');
+
+o3d.ParamObject.setUpO3DParam_(
+ o3d.Matrix4Composition, "inputMatrix", "ParamMatrix4");
+
+o3d.ParamObject.setUpO3DParam_(
+ o3d.Matrix4Composition, "localMatrix", "ParamMatrix4");
+
+o3d.ParamObject.setUpO3DParam_(
+ o3d.Matrix4Composition, "outputMatrix", "ParamMatrix4Output");
+
+/**
+ * Called by o3d.Param*Output whenever its value gets read.
+ * @return {!Array<!Array<number>>} 4x4 array equal to
+ * [[i0,i1,i2,i3],[i4,i5,i6,i7],[i8,i9,i10,i11],[i12,i13,i14,i15]]
+ */
+o3d.Matrix4Composition.prototype.updateOutputs = function() {
+ o3d.Transform.compose(this.inputMatrix, this.localMatrix,
+ this.last_output_value_);
+ return this.last_output_value_;
+};
+
+
« no previous file with comments | « samples/o3d-webgl/pack.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698