aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/RDGE/runtime/CanvasLoader.js
blob: 12a985d372a85ff4925cafda5a92e0961bf5b5e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* <copyright>
This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
(c) Copyright 2011 Motorola Mobility, Inc.  All Rights Reserved.
</copyright> */



///////////////////////////////////////////////////////////////////////
// Class ShapeRuntime
//      Manages runtime shape display
///////////////////////////////////////////////////////////////////////
function CanvasLoader( root,  valueArray, loadForAuthoring )
{
	var value = valueArray;
	var nWorlds = value.length;
	for (var i=0;  i<nWorlds;  i++)
	{
		var importStr = value[i];
		var startIndex = importStr.indexOf( "id: " );
		if (startIndex >= 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)
				{
					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 );
					}
				}
			}
		}
	}

	this.findCanvasWithID = 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<nKids;  i++)
			{
				var child = elt.children[i];
				this.findCanvasWithID( id, child );
			}
		}
	}
}