diff options
48 files changed, 1407 insertions, 473 deletions
diff --git a/assets/canvas-runtime.js b/assets/canvas-runtime.js index 655e52fa..fd823f35 100644 --- a/assets/canvas-runtime.js +++ b/assets/canvas-runtime.js | |||
@@ -4,6 +4,8 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot | |||
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | 4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. |
5 | </copyright> */ | 5 | </copyright> */ |
6 | 6 | ||
7 | |||
8 | |||
7 | /////////////////////////////////////////////////////////////////////// | 9 | /////////////////////////////////////////////////////////////////////// |
8 | //Loading webGL/canvas data | 10 | //Loading webGL/canvas data |
9 | function initWebGl (rootElement, directory) { | 11 | function initWebGl (rootElement, directory) { |
@@ -27,7 +29,8 @@ function CanvasDataManager() | |||
27 | { | 29 | { |
28 | this.loadGLData = function(root, valueArray, assetPath ) | 30 | this.loadGLData = function(root, valueArray, assetPath ) |
29 | { | 31 | { |
30 | this._assetPath = assetPath.slice(); | 32 | if (assetPath) |
33 | this._assetPath = assetPath.slice(); | ||
31 | 34 | ||
32 | var value = valueArray; | 35 | var value = valueArray; |
33 | var nWorlds = value.length; | 36 | var nWorlds = value.length; |
@@ -118,17 +121,22 @@ function GLRuntime( canvas, importStr, assetPath ) | |||
118 | this._zFar = 100.0; | 121 | this._zFar = 100.0; |
119 | this._viewDist = 5.0; | 122 | this._viewDist = 5.0; |
120 | 123 | ||
124 | this.elapsed = 0; | ||
125 | |||
121 | this._aspect = canvas.width/canvas.height; | 126 | this._aspect = canvas.width/canvas.height; |
122 | 127 | ||
123 | this._geomRoot; | 128 | this._geomRoot = null; |
124 | 129 | ||
125 | // all "live" materials | 130 | // all "live" materials |
126 | this._materials = []; | 131 | this._materials = []; |
127 | 132 | ||
128 | // provide the mapping for the asset directory | 133 | // provide the mapping for the asset directory |
129 | this._assetPath = assetPath.slice(); | 134 | if (assetPath) |
130 | if (this._assetPath[this._assetPath.length-1] != '/') | 135 | { |
131 | this._assetPath += '/'; | 136 | this._assetPath = assetPath.slice(); |
137 | if (this._assetPath[this._assetPath.length-1] != '/') | ||
138 | this._assetPath += '/'; | ||
139 | } | ||
132 | 140 | ||
133 | /////////////////////////////////////////////////////////////////////// | 141 | /////////////////////////////////////////////////////////////////////// |
134 | // accessors | 142 | // accessors |
@@ -166,6 +174,7 @@ function GLRuntime( canvas, importStr, assetPath ) | |||
166 | this.importObjects( importStr ); | 174 | this.importObjects( importStr ); |
167 | this.linkMaterials( this._geomRoot ); | 175 | this.linkMaterials( this._geomRoot ); |
168 | this.initMaterials(); | 176 | this.initMaterials(); |
177 | this.linkLights(); | ||
169 | } | 178 | } |
170 | else | 179 | else |
171 | { | 180 | { |
@@ -221,8 +230,8 @@ function GLRuntime( canvas, importStr, assetPath ) | |||
221 | rdgeGlobalParameters.u_light0Pos.set( [5*Math.cos(this.elapsed), 5*Math.sin(this.elapsed), 20]); | 230 | rdgeGlobalParameters.u_light0Pos.set( [5*Math.cos(this.elapsed), 5*Math.sin(this.elapsed), 20]); |
222 | 231 | ||
223 | // orbit the light nodes around the boxes | 232 | // orbit the light nodes around the boxes |
224 | //this.light.setPosition([1.2*Math.cos(this.elapsed*2.0), 1.2*Math.sin(this.elapsed*2.0), 1.2*Math.cos(this.elapsed*2.0)]); | 233 | if (this.light ) this.light.setPosition([1.2*Math.cos(this.elapsed*2.0), 1.2*Math.sin(this.elapsed*2.0), 1.2*Math.cos(this.elapsed*2.0)]); |
225 | //this.light2.setPosition([-1.2*Math.cos(this.elapsed*2.0), 1.2*Math.sin(this.elapsed*2.0), -1.2*Math.cos(this.elapsed)]); | 234 | if (this.light2) this.light2.setPosition([-1.2*Math.cos(this.elapsed*2.0), 1.2*Math.sin(this.elapsed*2.0), -1.2*Math.cos(this.elapsed)]); |
226 | 235 | ||
227 | this.updateMaterials(); | 236 | this.updateMaterials(); |
228 | 237 | ||
@@ -344,6 +353,16 @@ function GLRuntime( canvas, importStr, assetPath ) | |||
344 | parent.addChild( obj ); | 353 | parent.addChild( obj ); |
345 | } | 354 | } |
346 | 355 | ||
356 | this.linkLights = function() | ||
357 | { | ||
358 | var matNode = this.findMaterialNode( "lights", this.myScene.scene ); | ||
359 | if (matNode) | ||
360 | { | ||
361 | this.light = matNode.lightChannel[1]; | ||
362 | this.light2 = matNode.lightChannel[2]; | ||
363 | } | ||
364 | } | ||
365 | |||
347 | this.linkMaterials = function( obj ) | 366 | this.linkMaterials = function( obj ) |
348 | { | 367 | { |
349 | if (!obj) return; | 368 | if (!obj) return; |
@@ -377,6 +396,7 @@ function GLRuntime( canvas, importStr, assetPath ) | |||
377 | 396 | ||
378 | this.remapAssetFolder = function( url ) | 397 | this.remapAssetFolder = function( url ) |
379 | { | 398 | { |
399 | /* | ||
380 | var searchStr = "assets/"; | 400 | var searchStr = "assets/"; |
381 | var index = url.indexOf( searchStr ); | 401 | var index = url.indexOf( searchStr ); |
382 | var rtnPath = url; | 402 | var rtnPath = url; |
@@ -386,6 +406,8 @@ function GLRuntime( canvas, importStr, assetPath ) | |||
386 | rtnPath = this._assetPath + rtnPath; | 406 | rtnPath = this._assetPath + rtnPath; |
387 | } | 407 | } |
388 | return rtnPath; | 408 | return rtnPath; |
409 | */ | ||
410 | return url; | ||
389 | } | 411 | } |
390 | 412 | ||
391 | this.findMaterialNode = function( nodeName, node ) | 413 | this.findMaterialNode = function( nodeName, node ) |
@@ -482,20 +504,7 @@ function RuntimeGeomObj() | |||
482 | 504 | ||
483 | /////////////////////////////////////////////////////////////////////// | 505 | /////////////////////////////////////////////////////////////////////// |
484 | // Methods | 506 | // Methods |
485 | /////////////////////////////////////////////////////////////////////// | 507 | /////////////////////////////////////////////////////////////////////// |
486 | this.makeStrokeMaterial = function() | ||
487 | { | ||
488 | } | ||
489 | |||
490 | this.makeFillMaterial = function() | ||
491 | { | ||
492 | } | ||
493 | |||
494 | |||
495 | this.render = function() | ||
496 | { | ||
497 | } | ||
498 | |||
499 | this.addChild = function( child ) | 508 | this.addChild = function( child ) |
500 | { | 509 | { |
501 | if (!this._children) this._children = []; | 510 | if (!this._children) this._children = []; |
@@ -551,9 +560,10 @@ function RuntimeGeomObj() | |||
551 | this._materials.push( mat ); | 560 | this._materials.push( mat ); |
552 | } | 561 | } |
553 | 562 | ||
554 | var endIndex = importStr.indexOf( "endMaterial\n" ); | 563 | var endKey = "endMaterial\n"; |
564 | var endIndex = importStr.indexOf( endKey ); | ||
555 | if (endIndex < 0) break; | 565 | if (endIndex < 0) break; |
556 | importStr = importStr.substr( endIndex ); | 566 | importStr = importStr.substr( endIndex + endKey.length ); |
557 | } | 567 | } |
558 | } | 568 | } |
559 | 569 | ||
@@ -1080,7 +1090,7 @@ function RuntimeMaterial( world ) | |||
1080 | /////////////////////////////////////////////////////////////////////// | 1090 |