From 4bdb951f2dab6d132ed28ab17888cc819ed811ee Mon Sep 17 00:00:00 2001 From: Jose Antonio Marquez Date: Thu, 8 Mar 2012 16:07:02 -0800 Subject: Adding I/O functionality to RDGE Added webGL/Canvas file I/O for Ninja, it also created routine for saving data for runtime, however, the runtime RDGE library needs an update for runtime to work, so right now I/O will only work for Ninja. --- assets/CanvasDataManager.js | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 assets/CanvasDataManager.js (limited to 'assets/CanvasDataManager.js') diff --git a/assets/CanvasDataManager.js b/assets/CanvasDataManager.js new file mode 100644 index 00000000..8afc9de0 --- /dev/null +++ b/assets/CanvasDataManager.js @@ -0,0 +1,83 @@ +/* +This file contains proprietary software owned by Motorola Mobility, Inc.
+No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ + + +var GeomObj = require("js/lib/geom/geom-obj").GeomObj; +var ShapePrimitive = require("js/lib/geom/shape-primitive").ShapePrimitive; +var MaterialsModel = require("js/models/materials-model").MaterialsModel; +var GLRuntime = require("js/lib/rdge/runtime/GLRuntime").GLRuntime; + +/////////////////////////////////////////////////////////////////////// +// Class ShapeRuntime +// Manages runtime shape display +/////////////////////////////////////////////////////////////////////// +var CanvasDataManager = function CanvasDataManager() +{ + this.loadGLData = function(root, valueArray ) + { + var value = valueArray; + 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 ); + var canvas = this.findCanvasWithID( id, root ); + if (canvas) + { + var rt = new GLRuntime( canvas, importStr ); + } + } + } + } + } + + this.collectGLData = function( elt, dataArray ) + { + if (elt.elementModel && elt.elementModel.shapeModel && elt.elementModel.shapeModel.GLWorld) + { + var data = elt.elementModel.shapeModel.GLWorld.export( true ); + dataArray.push( data ); + } + + if (elt.children) + { + var nKids = elt.children.length; + for (var i=0; i