[21337] | 1 | Index: ../trunk-jpl/src/m/plot/plot_unit.js
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/m/plot/plot_unit.js (revision 20564)
|
---|
| 4 | +++ ../trunk-jpl/src/m/plot/plot_unit.js (revision 20565)
|
---|
| 5 | @@ -15,7 +15,7 @@
|
---|
| 6 | var ymin,ymax;
|
---|
| 7 | var zmin,zmax;
|
---|
| 8 | var datamin,datamax,datadelta;
|
---|
| 9 | - var scale,zscale,surfacescale;
|
---|
| 10 | + var scale,matrixscale,vertexscale;
|
---|
| 11 |
|
---|
| 12 | //Process data and model
|
---|
| 13 | var meshresults = processmesh(md,data,options);
|
---|
| 14 | @@ -30,19 +30,20 @@
|
---|
| 15 | var data2 = dataresults[0];
|
---|
| 16 | var datatype = dataresults[1];
|
---|
| 17 |
|
---|
| 18 | + //Compue scaling through matrices for 2d meshes and vertices for 3d meshes
|
---|
| 19 | if (!md.geometry.surface) {
|
---|
| 20 | md.geometry.surface=NewArrayFill(md.mesh.x.length,0);
|
---|
| 21 | }
|
---|
| 22 | if (md.mesh.classname() == 'mesh3dsurface') {
|
---|
| 23 | - zscale = 1;
|
---|
| 24 | - surfacescale = options.getfieldvalue('heightscale',1);
|
---|
| 25 | + matrixscale = 1;
|
---|
| 26 | + vertexscale = options.getfieldvalue('heightscale',1);
|
---|
| 27 | }
|
---|
| 28 | else {
|
---|
| 29 | if (md.geometry.surface) {
|
---|
| 30 | z=md.geometry.surface;
|
---|
| 31 | }
|
---|
| 32 | - zscale = options.getfieldvalue('heightscale',1);
|
---|
| 33 | - surfacescale = 0;
|
---|
| 34 | + matrixscale = options.getfieldvalue('heightscale',1);
|
---|
| 35 | + vertexscale = 0;
|
---|
| 36 | }
|
---|
| 37 | //}}}
|
---|
| 38 |
|
---|
| 39 | @@ -61,11 +62,11 @@
|
---|
| 40 | zmax = zlim[1];
|
---|
| 41 | var caxis;
|
---|
| 42 |
|
---|
| 43 | - //Compute scaling:
|
---|
| 44 | + //Compute gl variables:
|
---|
| 45 | scale = 1 / (xmax - xmin);
|
---|
| 46 | node["shaderName"] = "unlit_textured";
|
---|
| 47 | node["shader"] = gl["shaders"][node["shaderName"]]["program"];
|
---|
| 48 | - node["scale"] = [scale, scale, scale * zscale];
|
---|
| 49 | + node["scale"] = [scale, scale, scale * matrixscale];
|
---|
| 50 | node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
|
---|
| 51 | node["modelMatrix"] = recalculateModelMatrix(node);
|
---|
| 52 | node["alpha"] = options.getfieldvalue('alpha',1.0);
|
---|
| 53 | @@ -119,7 +120,7 @@
|
---|
| 54 | }
|
---|
| 55 | //Scale vertices
|
---|
| 56 | xyz = vec3.fromValues(x[i], y[i], z[i]);
|
---|
| 57 | - magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
|
---|
| 58 | + magnitude = vec3.length(xyz) + md.geometry.surface[i] * vertexscale;
|
---|
| 59 | vec3.normalize(direction, xyz);
|
---|
| 60 | vec3.scale(vertex, direction, magnitude);
|
---|
| 61 | vertices[vertices.length] = vertex[0];
|
---|
| 62 | @@ -182,7 +183,7 @@
|
---|
| 63 | }
|
---|
| 64 | //Scale vertices
|
---|
| 65 | xyz = vec3.fromValues(x[i], y[i], z[i]);
|
---|
| 66 | - magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
|
---|
| 67 | + magnitude = vec3.length(xyz) + md.geometry.surface[i] * vertexscale;
|
---|
| 68 | vec3.normalize(direction, xyz);
|
---|
| 69 | vec3.scale(vertex, direction, magnitude);
|
---|
| 70 | vertices[vertices.length] = vertex[0];
|
---|
| 71 | Index: ../trunk-jpl/src/m/plot/plot_quiver.js
|
---|
| 72 | ===================================================================
|
---|
| 73 | --- ../trunk-jpl/src/m/plot/plot_quiver.js (revision 20564)
|
---|
| 74 | +++ ../trunk-jpl/src/m/plot/plot_quiver.js (revision 20565)
|
---|
| 75 | @@ -13,7 +13,7 @@
|
---|
| 76 | var xmin,xmax;
|
---|
| 77 | var ymin,ymax;
|
---|
| 78 | var zmin,zmax;
|
---|
| 79 | - var scale,zscale,surfacescale;
|
---|
| 80 | + var scale,matrixscale,vertexscale;
|
---|
| 81 |
|
---|
| 82 | //Process data and model
|
---|
| 83 | var meshresults = processmesh(md,[],options);
|
---|
| 84 | @@ -26,19 +26,20 @@
|
---|
| 85 | var vx = md.initialization.vx;
|
---|
| 86 | var vy = md.initialization.vy;
|
---|
| 87 |
|
---|
| 88 | + //Compue scaling through matrices for 2d meshes and vertices for 3d meshes
|
---|
| 89 | if (!md.geometry.surface) {
|
---|
| 90 | md.geometry.surface=NewArrayFill(md.mesh.x.length,0);
|
---|
| 91 | }
|
---|
| 92 | if (md.mesh.classname() == 'mesh3dsurface') {
|
---|
| 93 | - zscale = 1;
|
---|
| 94 | - surfacescale = options.getfieldvalue('heightscale',1);
|
---|
| 95 | + matrixscale = 1;
|
---|
| 96 | + vertexscale = options.getfieldvalue('heightscale',1);
|
---|
| 97 | }
|
---|
| 98 | else {
|
---|
| 99 | if (md.geometry.surface) {
|
---|
| 100 | z=md.geometry.surface;
|
---|
| 101 | }
|
---|
| 102 | - zscale = options.getfieldvalue('heightscale',1);
|
---|
| 103 | - surfacescale = 0;
|
---|
| 104 | + matrixscale = options.getfieldvalue('heightscale',1);
|
---|
| 105 | + vertexscale = 0;
|
---|
| 106 | }
|
---|
| 107 | //}}}
|
---|
| 108 |
|
---|
| 109 | @@ -56,11 +57,11 @@
|
---|
| 110 | zmin = zlim[0];
|
---|
| 111 | zmax = zlim[1];
|
---|
| 112 |
|
---|
| 113 | - //Compute scaling:
|
---|
| 114 | + //Compute gl variables:
|
---|
| 115 | var scale = 1 / (xmax - xmin);
|
---|
| 116 | node["shaderName"] = "colored";
|
---|
| 117 | node["shader"] = gl["shaders"][node["shaderName"]]["program"];
|
---|
| 118 | - node["scale"] = [scale, scale, scale * zscale];
|
---|
| 119 | + node["scale"] = [scale, scale, scale * matrixscale];
|
---|
| 120 | node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
|
---|
| 121 | node["modelMatrix"] = recalculateModelMatrix(node);
|
---|
| 122 | node["drawMode"] = gl.LINES;
|
---|
| 123 | @@ -95,7 +96,7 @@
|
---|
| 124 | if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) continue;
|
---|
| 125 | //Scale vertices
|
---|
| 126 | xyz1 = vec3.fromValues(x[i], y[i], z[i]);
|
---|
| 127 | - magnitude = vec3.length(xyz1) + md.geometry.surface[i] * surfacescale;
|
---|
| 128 | + magnitude = vec3.length(xyz1) + md.geometry.surface[i] * vertexscale;
|
---|
| 129 | vec3.normalize(direction, xyz1);
|
---|
| 130 | vec3.scale(vertex, direction, magnitude);
|
---|
| 131 | vertices[vertices.length] = vertex[0];
|
---|
| 132 | Index: ../trunk-jpl/src/m/plot/plot_overlay.js
|
---|
| 133 | ===================================================================
|
---|
| 134 | --- ../trunk-jpl/src/m/plot/plot_overlay.js (revision 20564)
|
---|
| 135 | +++ ../trunk-jpl/src/m/plot/plot_overlay.js (revision 20565)
|
---|
| 136 | @@ -15,7 +15,7 @@
|
---|
| 137 | var xmin,xmax;
|
---|
| 138 | var ymin,ymax;
|
---|
| 139 | var zmin,zmax;
|
---|
| 140 | - var scale,zscale,surfacescale;
|
---|
| 141 | + var scale,matrixscale,vertexscale;
|
---|
| 142 |
|
---|
| 143 | //Process data and model
|
---|
| 144 | var meshresults = processmesh(md,data,options);
|
---|
| 145 | @@ -26,19 +26,20 @@
|
---|
| 146 | var is2d = meshresults[4];
|
---|
| 147 | var isplanet = meshresults[5];
|
---|
| 148 |
|
---|
| 149 | + //Compue scaling through matrices for 2d meshes and vertices for 3d meshes
|
---|
| 150 | if (!md.geometry.surface) {
|
---|
| 151 | md.geometry.surface=NewArrayFill(md.mesh.x.length,0);
|
---|
| 152 | }
|
---|
| 153 | if (md.mesh.classname() == 'mesh3dsurface') {
|
---|
| 154 | - zscale = 1;
|
---|
| 155 | - surfacescale = options.getfieldvalue('heightscale',1);
|
---|
| 156 | + matrixscale = 1;
|
---|
| 157 | + vertexscale = options.getfieldvalue('heightscale',1);
|
---|
| 158 | }
|
---|
| 159 | else {
|
---|
| 160 | if (md.geometry.surface) {
|
---|
| 161 | z=md.geometry.surface;
|
---|
| 162 | }
|
---|
| 163 | - zscale = options.getfieldvalue('heightscale',1);
|
---|
| 164 | - surfacescale = 0;
|
---|
| 165 | + matrixscale = options.getfieldvalue('heightscale',1);
|
---|
| 166 | + vertexscale = 0;
|
---|
| 167 | }
|
---|
| 168 | //}}}
|
---|
| 169 |
|
---|
| 170 | @@ -56,11 +57,11 @@
|
---|
| 171 | zmin = zlim[0];
|
---|
| 172 | zmax = zlim[1];
|
---|
| 173 |
|
---|
| 174 | - //Compute scaling:
|
---|
| 175 | + //Compute gl variables:
|
---|
| 176 | scale = 1 / (xmax - xmin);
|
---|
| 177 | node["shaderName"] = "unlit_textured";
|
---|
| 178 | node["shader"] = gl["shaders"][node["shaderName"]]["program"];
|
---|
| 179 | - node["scale"] = [scale, scale, scale * zscale];
|
---|
| 180 | + node["scale"] = [scale, scale, scale * matrixscale];
|
---|
| 181 | node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
|
---|
| 182 | node["modelMatrix"] = recalculateModelMatrix(node);
|
---|
| 183 | node["texture"] = initTexture(gl,options.getfieldvalue('image'));
|
---|
| 184 | @@ -117,20 +118,30 @@
|
---|
| 185 | vertices[vertices.length] = vertex[2];
|
---|
| 186 | continue;
|
---|
| 187 | }
|
---|
| 188 | - //Scale vertices
|
---|
| 189 | - xyz = vec3.fromValues(x[i], y[i], z[i]);
|
---|
| 190 | - magnitude = vec3.length(xyz);
|
---|
| 191 | - vec3.normalize(direction, xyz);
|
---|
| 192 | - vec3.scale(vertex, direction, magnitude);
|
---|
| 193 | - vertices[vertices.length] = vertex[0];
|
---|
| 194 | - vertices[vertices.length] = vertex[1];
|
---|
| 195 | - vertices[vertices.length] = vertex[2];
|
---|
| 196 | -
|
---|
| 197 | +
|
---|
| 198 | if (md.mesh.classname() == 'mesh3dsurface') {
|
---|
| 199 | - texcoords[texcoords.length] = degrees(Math.atan2(y[i], x[i])) / 360 + 0.5;
|
---|
| 200 | - texcoords[texcoords.length] = degrees(Math.asin(z[i] / magnitude)) / 180 + 0.5;
|
---|
| 201 | + //Scale vertices
|
---|
| 202 | + xyz = vec3.fromValues(x[i], y[i], z[i]);
|
---|
| 203 | + magnitude = vec3.length(xyz) + md.geometry.surface[i] * vertexscale;
|
---|
| 204 | + vec3.normalize(direction, xyz);
|
---|
| 205 | + vec3.scale(vertex, direction, magnitude);
|
---|
| 206 | + vertices[vertices.length] = vertex[0];
|
---|
| 207 | + vertices[vertices.length] = vertex[1];
|
---|
| 208 | + vertices[vertices.length] = vertex[2];
|
---|
| 209 | +
|
---|
| 210 | + texcoords[texcoords.length] = degrees(Math.atan2(vertex[1], vertex[0])) / 360 + 0.5;
|
---|
| 211 | + texcoords[texcoords.length] = degrees(Math.asin(vertex[2] / magnitude)) / 180 + 0.5;
|
---|
| 212 | }
|
---|
| 213 | else {
|
---|
| 214 | + //Scale vertices
|
---|
| 215 | + xyz = vec3.fromValues(x[i], y[i], z[i]);
|
---|
| 216 | + magnitude = vec3.length(xyz);
|
---|
| 217 | + vec3.normalize(direction, xyz);
|
---|
| 218 | + vec3.scale(vertex, direction, magnitude);
|
---|
| 219 | + vertices[vertices.length] = vertex[0];
|
---|
| 220 | + vertices[vertices.length] = vertex[1];
|
---|
| 221 | + vertices[vertices.length] = vertex[2];
|
---|
| 222 | +
|
---|
| 223 | texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
|
---|
| 224 | texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
|
---|
| 225 | }
|
---|
| 226 | Index: ../trunk-jpl/src/m/plot/plot_mesh.js
|
---|
| 227 | ===================================================================
|
---|
| 228 | --- ../trunk-jpl/src/m/plot/plot_mesh.js (revision 20564)
|
---|
| 229 | +++ ../trunk-jpl/src/m/plot/plot_mesh.js (revision 20565)
|
---|
| 230 | @@ -12,7 +12,7 @@
|
---|
| 231 | var xmin,xmax;
|
---|
| 232 | var ymin,ymax;
|
---|
| 233 | var zmin,zmax;
|
---|
| 234 | - var scale,zscale,surfacescale;
|
---|
| 235 | + var scale,matrixscale,vertexscale;
|
---|
| 236 |
|
---|
| 237 | //Process data and model
|
---|
| 238 | var meshresults = processmesh(md,[],options);
|
---|
| 239 | @@ -23,19 +23,20 @@
|
---|
| 240 | var is2d = meshresults[4];
|
---|
| 241 | var isplanet = meshresults[5];
|
---|
| 242 |
|
---|
| 243 | + //Compue scaling through matrices for 2d meshes and vertices for 3d meshes
|
---|
| 244 | if (!md.geometry.surface) {
|
---|
| 245 | md.geometry.surface=NewArrayFill(md.mesh.x.length,0);
|
---|
| 246 | }
|
---|
| 247 | if (md.mesh.classname() == 'mesh3dsurface') {
|
---|
| 248 | - zscale = 1;
|
---|
| 249 | - surfacescale = options.getfieldvalue('heightscale',1);
|
---|
| 250 | + matrixscale = 1;
|
---|
| 251 | + vertexscale = options.getfieldvalue('heightscale',1);
|
---|
| 252 | }
|
---|
| 253 | else {
|
---|
| 254 | if (md.geometry.surface) {
|
---|
| 255 | z=md.geometry.surface;
|
---|
| 256 | }
|
---|
| 257 | - zscale = options.getfieldvalue('heightscale',1);
|
---|
| 258 | - surfacescale = 0;
|
---|
| 259 | + matrixscale = options.getfieldvalue('heightscale',1);
|
---|
| 260 | + vertexscale = 0;
|
---|
| 261 | }
|
---|
| 262 | //}}}
|
---|
| 263 |
|
---|
| 264 | @@ -53,11 +54,11 @@
|
---|
| 265 | zmin = zlim[0];
|
---|
| 266 | zmax = zlim[1];
|
---|
| 267 |
|
---|
| 268 | - //Compute scaling:
|
---|
| 269 | + //Compute gl variables:
|
---|
| 270 | var scale = 1 / (xmax - xmin);
|
---|
| 271 | node["shaderName"] = "colored";
|
---|
| 272 | node["shader"] = gl["shaders"][node["shaderName"]]["program"];
|
---|
| 273 | - node["scale"] = [scale, scale, scale * zscale];
|
---|
| 274 | + node["scale"] = [scale, scale, scale * matrixscale];
|
---|
| 275 | node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
|
---|
| 276 | node["modelMatrix"] = recalculateModelMatrix(node);
|
---|
| 277 | node["drawMode"] = gl.LINES;
|
---|
| 278 | @@ -96,7 +97,7 @@
|
---|
| 279 | }
|
---|
| 280 | //Scale vertices
|
---|
| 281 | xyz = vec3.fromValues(x[i], y[i], z[i]);
|
---|
| 282 | - magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
|
---|
| 283 | + magnitude = vec3.length(xyz) + md.geometry.surface[i] * vertexscale;
|
---|
| 284 | vec3.normalize(direction, xyz);
|
---|
| 285 | vec3.scale(vertex, direction, magnitude);
|
---|
| 286 | vertices[vertices.length] = vertex[0];
|
---|