aboutsummaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
Diffstat (limited to 'assets')
-rw-r--r--assets/CanvasDataManager.js83
-rw-r--r--assets/canvas-runtime.js1376
-rw-r--r--assets/descriptor.json45
-rwxr-xr-xassets/rdge-compiled.js452
4 files changed, 1862 insertions, 94 deletions
diff --git a/assets/CanvasDataManager.js b/assets/CanvasDataManager.js
deleted file mode 100644
index 8afc9de0..00000000
--- a/assets/CanvasDataManager.js
+++ /dev/null
@@ -1,83 +0,0 @@
1/* <copyright>
2This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5</copyright> */
6
7
8var GeomObj = require("js/lib/geom/geom-obj").GeomObj;
9var ShapePrimitive = require("js/lib/geom/shape-primitive").ShapePrimitive;
10var MaterialsModel = require("js/models/materials-model").MaterialsModel;
11var GLRuntime = require("js/lib/rdge/runtime/GLRuntime").GLRuntime;
12
13///////////////////////////////////////////////////////////////////////
14// Class ShapeRuntime
15// Manages runtime shape display
16///////////////////////////////////////////////////////////////////////
17var CanvasDataManager = function CanvasDataManager()
18{
19 this.loadGLData = function(root, valueArray )
20 {
21 var value = valueArray;
22 var nWorlds = value.length;
23 for (var i=0; i<nWorlds; i++)
24 {
25 var importStr = value[i];
26 var startIndex = importStr.indexOf( "id: " );
27 if (startIndex >= 0)
28 {
29 var endIndex = importStr.indexOf( "\n", startIndex );
30 if (endIndex > 0)
31 {
32 var id = importStr.substring( startIndex+4, endIndex );
33 var canvas = this.findCanvasWithID( id, root );
34 if (canvas)
35 {
36 var rt = new GLRuntime( canvas, importStr );
37 }
38 }
39 }
40 }
41 }
42
43 this.collectGLData = function( elt, dataArray )
44 {
45 if (elt.elementModel && elt.elementModel.shapeModel && elt.elementModel.shapeModel.GLWorld)
46 {
47 var data = elt.elementModel.shapeModel.GLWorld.export( true );
48 dataArray.push( data );
49 }
50
51 if (elt.children)
52 {
53 var nKids = elt.children.length;
54 for (var i=0; i<nKids; i++)
55 {
56 var child = elt.children[i];
57 this.collectGLData( child, dataArray );
58 }
59 }
60 }
61
62 this.findCanvasWithID = function( id, elt )
63 {
64 var cid = elt.getAttribute( "data-RDGE-id" );
65 if (cid == id) return elt;
66
67 if (elt.children)
68 {
69 var nKids = elt.children.length;
70 for (var i=0; i<nKids; i++)
71 {
72 var child = elt.children[i];
73 var foundElt = this.findCanvasWithID( id, child );
74 if (foundElt) return foundElt;
75 }
76 }
77 }
78}
79
80
81if (typeof exports === "object") {
82 exports.CanvasDataManager = CanvasDataManager;
83}
diff --git a/assets/canvas-runtime.js b/assets/canvas-runtime.js
new file mode 100644
index 00000000..655e52fa
--- /dev/null
+++ b/assets/canvas-runtime.js
@@ -0,0 +1,1376 @@
1/* <copyright>
2This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5</copyright> */
6
7///////////////////////////////////////////////////////////////////////
8//Loading webGL/canvas data
9function initWebGl (rootElement, directory) {
10 var cvsDataMngr, ninjaWebGlData = JSON.parse((document.querySelectorAll(['script[data-ninja-webgl]'])[0].innerHTML.replace('(', '')).replace(')', ''));
11 if (ninjaWebGlData && ninjaWebGlData.data) {
12 for (var n=0; ninjaWebGlData.data[n]; n++) {
13 ninjaWebGlData.data[n] = unescape(ninjaWebGlData.data[n]);
14 }
15 }
16 //Creating data manager
17 cvsDataMngr = new CanvasDataManager();
18 //Loading data to canvas(es)
19 cvsDataMngr.loadGLData(rootElement, ninjaWebGlData.data, directory);
20}
21
22///////////////////////////////////////////////////////////////////////
23// Class ShapeRuntime
24// Manages runtime shape display
25///////////////////////////////////////////////////////////////////////
26function CanvasDataManager()
27{
28 this.loadGLData = function(root, valueArray, assetPath )
29 {
30 this._assetPath = assetPath.slice();
31
32 var value = valueArray;
33 var nWorlds = value.length;
34 for (var i=0; i<nWorlds; i++)
35 {
36 var importStr = value[i];
37 var startIndex = importStr.indexOf( "id: " );
38 if (startIndex >= 0)
39 {
40 var endIndex = importStr.indexOf( "\n", startIndex );
41 if (endIndex > 0)
42 {
43 var id = importStr.substring( startIndex+4, endIndex );
44 var canvas = this.findCanvasWithID( id, root );
45 if (canvas)
46 {
47 var rt = new GLRuntime( canvas, importStr, assetPath );
48 }
49 }
50 }
51 }
52 }
53
54 this.collectGLData = function( elt, dataArray )
55 {
56 if (elt.elementModel && elt.elementModel.shapeModel && elt.elementModel.shapeModel.GLWorld)
57 {
58 var data = elt.elementModel.shapeModel.GLWorld.export( true );
59 dataArray.push( data );
60 }
61
62 if (elt.children)
63 {
64 var nKids = elt.children.length;
65 for (var i=0; i<nKids; i++)
66 {
67 var child = elt.children[i];
68 this.collectGLData( child, dataArray );
69 }
70 }
71 }
72
73 this.findCanvasWithID = function( id, elt )
74 {
75 var cid = elt.getAttribute( "data-RDGE-id" );
76 if (cid == id) return elt;
77
78 if (elt.children)
79 {
80 var nKids = elt.children.length;
81 for (var i=0; i<nKids; i++)
82 {
83 var child = elt.children[i];
84 var foundElt = this.findCanvasWithID( id, child );
85 if (foundElt) return foundElt;
86 }
87 }
88 }
89}
90
91///////////////////////////////////////////////////////////////////////
92// Class GLRuntime
93// Manages runtime fora WebGL canvas
94///////////////////////////////////////////////////////////////////////
95function GLRuntime( canvas, importStr, assetPath )
96{
97 ///////////////////////////////////////////////////////////////////////
98 // Instance variables
99 ///////////////////////////////////////////////////////////////////////
100 this._canvas = canvas;
101 this._context = null;
102 this._importStr = importStr;
103
104 this.renderer = null;
105 this.myScene = null;
106 this.light = null;
107 this.light2 = null;
108 this._rootNode = null;
109
110 this._firstRender = true;
111 this._initialized = false;
112
113 this._useWebGL = false;
114
115 // view parameters
116 this._fov = 45.0;
117 this._zNear = 0.1;
118 this._zFar = 100.0;
119 this._viewDist = 5.0;
120
121 this._aspect = canvas.width/canvas.height;
122
123 this._geomRoot;
124
125 // all "live" materials
126 this._materials = [];
127
128 // provide the mapping for the asset directory
129 this._assetPath = assetPath.slice();
130 if (this._assetPath[this._assetPath.length-1] != '/')
131 this._assetPath += '/';
132
133 ///////////////////////////////////////////////////////////////////////
134 // accessors
135 ///////////////////////////////////////////////////////////////////////
136 this.getZNear = function() { return this._zNear; }
137 this.getZFar = function() { return this._zFar; }
138 this.getFOV = function() { return this._fov; }
139 this.getAspect = function() { return this._aspect; }
140 this.getViewDistance = function() { return this._viewDist; }
141
142 this.get2DContext = function() { return this._context; }
143
144 this.getViewportWidth = function() { return this._canvas.width; }
145 this.getViewportHeight = function() { return this._canvas.height; }
146
147 ///////////////////////////////////////////////////////////////////////
148 // accessors
149 ///////////////////////////////////////////////////////////////////////
150 this.loadScene = function()
151 {