From 232784ffafe834f75a46ca7fc311e8ca2ff5eec9 Mon Sep 17 00:00:00 2001 From: hwc487 Date: Mon, 5 Mar 2012 16:33:51 -0800 Subject: Corrections for canvas file IO --- js/document/html-document.js | 69 +++++++++++++++++++++- js/helper-classes/RDGE/Materials/PulseMaterial.js | 2 +- .../RDGE/runtime/CanvasDataManager.js | 29 +-------- js/helper-classes/RDGE/runtime/RuntimeGeomObj.js | 3 + js/helper-classes/RDGE/runtime/RuntimeMaterial.js | 22 +------ 5 files changed, 75 insertions(+), 50 deletions(-) (limited to 'js') diff --git a/js/document/html-document.js b/js/document/html-document.js index 7dd28385..f1b99866 100755 --- a/js/document/html-document.js +++ b/js/document/html-document.js @@ -185,9 +185,51 @@ exports.HTMLDocument = Montage.create(TextDocument, { var elt = this.documentRoot; if (elt) { - //console.log( "load canvas data: " , value ); - var cdm = new CanvasDataManager(); - cdm.loadGLData(elt, value); + var loadForRuntime = true; + if (loadForRuntime) + { + //console.log( "load canvas data: " , value ); + var cdm = new CanvasDataManager(); + cdm.loadGLData(elt, value, NJUtils); + } + else + { + var nWorlds= value.length; + for (var i=0; i= 0) + { + var endIndex = importStr.indexOf( "\n", startIndex ); + if (endIndex > 0) + { + var id = importStr.substring( startIndex+4, endIndex ); + if (id) + { + var canvas = this.findCanvasWithID( id, elt ); + if (canvas) + { + if (!canvas.elementModel) + { + NJUtils.makeElementModel(canvas, "Canvas", "shape", true); + } + + if (canvas.elementModel) + { + if (canvas.elementModel.shapeModel.GLWorld) + canvas.elementModel.shapeModel.GLWorld.clearTree(); + + var world = new GLWorld( canvas ); + canvas.elementModel.shapeModel.GLWorld = world; + world.import( importStr ); + } + } + } + } + } + } + } } } }, @@ -219,6 +261,27 @@ exports.HTMLDocument = Montage.create(TextDocument, { } } }, + + /** + * search the DOM tree to find a canvas with the given id + */ + findCanvasWithID: { + value: function( id, elt ) { + var cid = elt.getAttribute( "data-RDGE-id" ); + if (cid == id) return elt; + + if (elt.children) + { + var nKids = elt.children.length; + for (var i=0; i= 0) loadForAuthoring = false; - var loadForAuthoring = false; - - if (loadForAuthoring) - { - if (!canvas.elementModel) - { - NJUtils.makeElementModel(canvas, "Canvas", "shape", true); - } - - if (canvas.elementModel) - { - if (canvas.elementModel.shapeModel.GLWorld) - canvas.elementModel.shapeModel.GLWorld.clearTree(); - - var world = new GLWorld( canvas ); - canvas.elementModel.shapeModel.GLWorld = world; - world.import( importStr ); - } - } - else - { - var rt = new GLRuntime( canvas, importStr ); - } + var rt = new GLRuntime( canvas, importStr ); } } } diff --git a/js/helper-classes/RDGE/runtime/RuntimeGeomObj.js b/js/helper-classes/RDGE/runtime/RuntimeGeomObj.js index 253154f9..fd5bf3aa 100644 --- a/js/helper-classes/RDGE/runtime/RuntimeGeomObj.js +++ b/js/helper-classes/RDGE/runtime/RuntimeGeomObj.js @@ -83,7 +83,9 @@ function RuntimeGeomObj() case "radialGradient": mat = new RuntimeRadialGradientMaterial(); break; case "linearGradient": mat = new RuntimeLinearGradientMaterial(); break; case "bumpMetal": mat = new RuntimeBumpMetalMaterial(); break; + case "uber": mat = new RuntimeUberMaterial(); break; + case "deform": case "water": case "tunnel": case "reliefTunnel": @@ -94,6 +96,7 @@ function RuntimeGeomObj() case "mandel": case "star": case "zinvert": + case "keleidoscope": case "pulse": mat = new RuntimePulseMaterial(); break; default: diff --git a/js/helper-classes/RDGE/runtime/RuntimeMaterial.js b/js/helper-classes/RDGE/runtime/RuntimeMaterial.js index ceabbaa5..0f10cfbe 100644 --- a/js/helper-classes/RDGE/runtime/RuntimeMaterial.js +++ b/js/helper-classes/RDGE/runtime/RuntimeMaterial.js @@ -274,26 +274,10 @@ function RuntimeBumpMetalMaterial() } } } - - /* - this.update = function( time ) - { - var material = this._materialNode; - if (material) - { - var technique = material.shaderProgram.default; - var renderer = g_Engine.getContext().renderer; - if (renderer && technique) - { - if (this._shader && this._shader.default) - this._shader.default.u_time.set( [this._time] ); - this._time += this._dTime; - if (this._time > 200.0) this._time = 0.0; - } - } - } - */ } +function RuntimeUberMaterial() +{ +} -- cgit v1.2.3