Index: ../trunk-jpl/src/m/plot/plot_quiver.js =================================================================== --- ../trunk-jpl/src/m/plot/plot_quiver.js (revision 20472) +++ ../trunk-jpl/src/m/plot/plot_quiver.js (revision 20473) @@ -98,17 +98,27 @@ magnitude = vec3.length(xyz1) + md.geometry.surface[i] * surfacescale; vec3.normalize(direction, xyz1); vec3.scale(vertex, direction, magnitude); - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; xyz2 = vec3.fromValues(vx[i], vy[i], 0.0); magnitude = 100.0; //mesh resolution vec3.normalize(direction, xyz2); vec3.scale(direction, direction, magnitude); vec3.add(vertex, direction, vertex); - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; - colors.push.apply(colors, color); - colors.push.apply(colors, color); + colors[colors.length] = color[0]; + colors[colors.length] = color[1]; + colors[colors.length] = color[2]; + colors[colors.length] = color[3]; + colors[colors.length] = color[0]; + colors[colors.length] = color[1]; + colors[colors.length] = color[2]; + colors[colors.length] = color[3]; } } //}}} Index: ../trunk-jpl/src/m/plot/plot_unit.js =================================================================== --- ../trunk-jpl/src/m/plot/plot_unit.js (revision 20472) +++ ../trunk-jpl/src/m/plot/plot_unit.js (revision 20473) @@ -111,7 +111,9 @@ //Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) { nanindices[i] = i; - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; continue; } //Scale vertices @@ -119,9 +121,12 @@ magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale; vec3.normalize(direction, xyz); vec3.scale(vertex, direction, magnitude); - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; - texcoords.push.apply(texcoords, [0.5, (data[i] - datamin) / datadelta]); + texcoords[texcoords.length] = 0.5; + texcoords[texcoords.length] = (data[i] - datamin) / datadelta; } //linearize the elements array: @@ -129,7 +134,9 @@ for(var i = 0; i < elements.length; i++){ element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1]; if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue; - indices = indices.concat(element); + indices[indices.length] = element[0]; + indices[indices.length] = element[1]; + indices[indices.length] = element[2]; } indices.itemSize = 1; @@ -163,12 +170,13 @@ var vertex = vec3.create(); var magnitude; var timestamps = data[data.length-1]; - for(var i = 0; i < x.length; i++){ //Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) { nanindices[i] = i; - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; continue; } //Scale vertices @@ -176,7 +184,9 @@ magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale; vec3.normalize(direction, xyz); vec3.scale(vertex, direction, magnitude); - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; } //Transpose data to obtain column addressable data matrix @@ -212,7 +222,9 @@ for(var i = 0; i < elements.length; i++){ element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1]; if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue; - indices = indices.concat(element); + indices[indices.length] = element[0]; + indices[indices.length] = element[1]; + indices[indices.length] = element[2]; } indices.itemSize = 1; Index: ../trunk-jpl/src/m/plot/plot_overlay.js =================================================================== --- ../trunk-jpl/src/m/plot/plot_overlay.js (revision 20472) +++ ../trunk-jpl/src/m/plot/plot_overlay.js (revision 20473) @@ -78,7 +78,7 @@ if (md.radaroverlay.outerx) { var newelements = []; for (var i = 0; i < md.radaroverlay.outerindex.length; i++) { - newelements.push([md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length]); + newelements[newelements.length] = [md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length]; } x = [].concat(x, md.radaroverlay.outerx); y = [].concat(y, md.radaroverlay.outery); @@ -112,18 +112,22 @@ //Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) { nanindices[i] = i; - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; continue; } //Scale vertices - //Scale vertices xyz = vec3.fromValues(x[i], y[i], z[i]); magnitude = vec3.length(xyz); vec3.normalize(direction, xyz); vec3.scale(vertex, direction, magnitude); - vertices.push.apply(vertices, vertex); - - texcoords.push.apply(texcoords, [(x[i] - modelxlim[0]) / xrange, (y[i] - modelylim[0]) / yrange]); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; + + texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange; + texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange; } //linearize the elements array: @@ -134,7 +138,6 @@ indices[indices.length] = element[0]; indices[indices.length] = element[1]; indices[indices.length] = element[2]; - } indices.itemSize = 1; Index: ../trunk-jpl/src/m/plot/plot_mesh.js =================================================================== --- ../trunk-jpl/src/m/plot/plot_mesh.js (revision 20472) +++ ../trunk-jpl/src/m/plot/plot_mesh.js (revision 20473) @@ -85,82 +85,28 @@ var vertex = vec3.create(); var magnitude; var color = [0.0, 0.0, 0.0, 1.0]; - x[0] = NaN; - x[1] = NaN; - x[2] = NaN; - x[3] = NaN; - x[4] = NaN; - x[5] = NaN; - x[6] = NaN; - x[7] = NaN; - x[8] = NaN; - x[9] = NaN; - x[10] = NaN; - x[11] = NaN; - x[12] = NaN; - x[13] = NaN; - x[14] = NaN; - x[15] = NaN; - x[16] = NaN; - x[17] = NaN; - x[18] = NaN; - x[19] = NaN; - x[20] = NaN; - x[21] = NaN; - x[22] = NaN; - x[23] = NaN; - x[24] = NaN; - x[25] = NaN; - x[26] = NaN; - x[27] = NaN; - x[28] = NaN; - x[29] = NaN; - x[30] = NaN; - x[31] = NaN; - x[32] = NaN; - x[33] = NaN; - x[34] = NaN; - x[35] = NaN; - x[36] = NaN; - x[37] = NaN; - x[38] = NaN; - x[39] = NaN; - x[310] = NaN; - x[311] = NaN; - x[312] = NaN; - x[313] = NaN; - x[314] = NaN; - x[315] = NaN; - x[316] = NaN; - x[317] = NaN; - x[318] = NaN; - x[319] = NaN; - x[320] = NaN; - x[321] = NaN; - x[322] = NaN; - x[323] = NaN; - x[324] = NaN; - x[325] = NaN; - x[326] = NaN; - x[327] = NaN; - x[328] = NaN; - x[329] = NaN; for(var i = 0; i < x.length; i++){ //Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) { nanindices[i] = i; - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; continue; } //Scale vertices - //Scale vertices xyz = vec3.fromValues(x[i], y[i], z[i]); magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale; vec3.normalize(direction, xyz); vec3.scale(vertex, direction, magnitude); - vertices.push.apply(vertices, vertex); + vertices[vertices.length] = vertex[0]; + vertices[vertices.length] = vertex[1]; + vertices[vertices.length] = vertex[2]; - colors.push.apply(colors, color); + colors[colors.length] = color[0]; + colors[colors.length] = color[1]; + colors[colors.length] = color[2]; + colors[colors.length] = color[3]; } //linearize the elements array: @@ -168,7 +114,12 @@ for(var i = 0; i < elements.length; i++){ element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1]; if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue; - indices = indices.concat([element[0], element[1], element[1], element[2], element[2], element[0]]); + indices[indices.length] = element[0]; + indices[indices.length] = element[1]; + indices[indices.length] = element[1]; + indices[indices.length] = element[2]; + indices[indices.length] = element[2]; + indices[indices.length] = element[0]; } indices.itemSize = 1; }