diff options
author | Nivesh Rajbhandari | 2012-04-04 17:24:27 -0700 |
---|---|---|
committer | Nivesh Rajbhandari | 2012-04-04 17:24:27 -0700 |
commit | 01cf259da7aaa7d70789d9a7c32111d88b477463 (patch) | |
tree | 0bff3395ac681e5f685d2267f7dbc03a8e32bc4a /js/helper-classes/RDGE/src/core/script/MeshManager.js | |
parent | 331ea08655245e3532e48bf160d5f68a04d8723f (diff) | |
parent | 13368ca6ebbc13adeafccd898dfffd7ce37cb28a (diff) | |
download | ninja-01cf259da7aaa7d70789d9a7c32111d88b477463.tar.gz |
Merge branch 'refs/heads/ToolFixes' into WebGLMaterials
Conflicts:
js/document/templates/montage-html/default_html.css
js/mediators/element-mediator.js
js/panels/properties.reel/properties.js
js/tools/BrushTool.js
js/tools/LineTool.js
js/tools/PenTool.js
js/tools/SelectionTool.js
js/tools/ShapeTool.js
js/tools/TranslateObject3DTool.js
Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com>
Diffstat (limited to 'js/helper-classes/RDGE/src/core/script/MeshManager.js')
-rwxr-xr-x | js/helper-classes/RDGE/src/core/script/MeshManager.js | 131 |
1 files changed, 56 insertions, 75 deletions
diff --git a/js/helper-classes/RDGE/src/core/script/MeshManager.js b/js/helper-classes/RDGE/src/core/script/MeshManager.js index 7dfc79d4..4fa3c908 100755 --- a/js/helper-classes/RDGE/src/core/script/MeshManager.js +++ b/js/helper-classes/RDGE/src/core/script/MeshManager.js | |||
@@ -4,17 +4,19 @@ 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 | function Model(name, mesh) | 7 | // RDGE namespaces |
8 | { | 8 | var RDGE = RDGE || {}; |
9 | |||
10 | RDGE.Model = function (name, mesh) { | ||
9 | this.name = name; | 11 | this.name = name; |
10 | this.mesh = mesh; | 12 | this.mesh = mesh; |
11 | this.camera = null; | 13 | this.camera = null; |
12 | } | 14 | }; |
13 | 15 | ||
14 | /* | 16 | /* |
15 | * Maintains a list of meshes to allow instancing of data | 17 | * Maintains a list of meshes to allow instancing of data |
16 | */ | 18 | */ |
17 | function MeshManager() { | 19 | RDGE.MeshManager = function () { |
18 | this.contentUrl = "assets_web/mesh/"; | 20 | this.contentUrl = "assets_web/mesh/"; |
19 | this.modelMap = {}; | 21 | this.modelMap = {}; |
20 | this.readyList = []; // meshes that have data ready | 22 | this.readyList = []; // meshes that have data ready |
@@ -22,27 +24,24 @@ function MeshManager() { | |||
22 | this.postMeshLoadCallbackList = []; | 24 | this.postMeshLoadCallbackList = []; |
23 | this.tempSphere = null; | 25 | this.tempSphere = null; |
24 | this.requestCounter = 0; | 26 | this.requestCounter = 0; |
25 | } | 27 | }; |
26 | 28 | ||
27 | /* | 29 | /* |
28 | * Pass the scene meshNode stump, loads temp object while real mesh is downloading | 30 | * Pass the scene meshNode stump, loads temp object while real mesh is downloading |
29 | */ | 31 | */ |
30 | MeshManager.prototype.loadMesh = function (meshStump, tempMesh) | 32 | RDGE.MeshManager.prototype.loadMesh = function (meshStump, tempMesh) { |
31 | { | ||
32 | // if it exists already, return the mesh requested | 33 | // if it exists already, return the mesh requested |
33 | if ( this.modelMap[meshStump.name] !== undefined ) | 34 | if ( this.modelMap[meshStump.name] !== undefined ) |
34 | return this.modelMap[meshStump.name]; | 35 | return this.modelMap[meshStump.name]; |
35 | 36 | ||
36 | meshStump.ready = false; | 37 | meshStump.ready = false; |
37 | meshStump.addr = this.contentUrl + meshStump.name + "_mesh.json"; | 38 | meshStump.addr = this.contentUrl + meshStump.name + "_mesh.json"; |
38 | meshStump.ctxID = g_Engine.getContext().renderer.id; | 39 | meshStump.ctxID = RDGE.globals.engine.getContext().renderer.id; |
39 | 40 | ||
40 | // sets a temp mesh up in place of the final mesh to load | 41 | // sets a temp mesh up in place of the final mesh to load |
41 | if (!tempMesh) | 42 | if (!tempMesh) { |
42 | { | 43 | if (this.tempSphere == null) { |
43 | if (this.tempSphere == null) | 44 | this.tempSphere = RDGE.renderUtils.makeSphere(RDGE.globals.engine.getContext().renderer.ctx, 25, 5, 5); |
44 | { | ||
45 | this.tempSphere = makeSphere(g_Engine.getContext().renderer.ctx, 25, 5, 5); | ||
46 | } | 45 | } |
47 | 46 | ||
48 | tempMesh = this.tempSphere; | 47 | tempMesh = this.tempSphere; |
@@ -54,7 +53,7 @@ MeshManager.prototype.loadMesh = function (meshStump, tempMesh) | |||
54 | // update the request counter - we now have one more mesh to load | 53 | // update the request counter - we now have one more mesh to load |
55 | this.requestCounter++; | 54 | this.requestCounter++; |
56 | 55 | ||
57 | requestMesh(meshStump); | 56 | RDGE.requestMesh(meshStump); |
58 | 57 | ||
59 | return null; | 58 | return null; |
60 | }; | 59 | }; |
@@ -62,14 +61,11 @@ MeshManager.prototype.loadMesh = function (meshStump, tempMesh) | |||
62 | /* | 61 | /* |
63 | * Deletes the passed mesh from the manager as well as all renderers | 62 | * Deletes the passed mesh from the manager as well as all renderers |
64 | */ | 63 | */ |
65 | MeshManager.prototype.deleteMesh = function (name) | 64 | RDGE.MeshManager.prototype.deleteMesh = function (name) { |
66 | { | ||
67 | var model = this.modelMap[name]; | 65 | var model = this.modelMap[name]; |
68 | 66 | ||
69 | if (model) | 67 | if (model) { |
70 | { | 68 | RDGE.globals.engine.ctxMan.forEach(function (context) { |
71 | g_Engine.ctxMan.forEach(function(context) | ||
72 | { | ||
73 | context.renderer.deletePrimitive(model.primitive); | 69 | context.renderer.deletePrimitive(model.primitive); |
74 | }); | 70 | }); |
75 | 71 | ||
@@ -77,13 +73,11 @@ MeshManager.prototype.deleteMesh = function (name) | |||
77 | } | 73 | } |
78 | }; | 74 | }; |
79 | 75 | ||
80 | MeshManager.prototype.getModelByName = function (name) | 76 | RDGE.MeshManager.prototype.getModelByName = function (name) { |
81 | { | ||
82 | return this.modelMap[name]; | 77 | return this.modelMap[name]; |
83 | }; | 78 | }; |
84 | 79 | ||
85 | MeshManager.prototype.getModelNames = function () | 80 | RDGE.MeshManager.prototype.getModelNames = function () { |
86 | { | ||
87 | var names = []; | 81 | var names = []; |
88 | for (var index in this.modelMap) { | 82 | for (var index in this.modelMap) { |
89 | names.push(this.modelList[index].name); | 83 | names.push(this.modelList[index].name); |
@@ -93,8 +87,8 @@ MeshManager.prototype.getModelNames = function () | |||
93 | }; | 87 | }; |
94 | 88 | ||
95 | 89 | ||
96 | MeshManager.prototype.processMeshData = function () { | 90 | RDGE.MeshManager.prototype.processMeshData = function () { |
97 | var renderer = g_Engine.getContext().renderer; | 91 | var renderer = RDGE.globals.engine.getContext().renderer; |
98 | 92 | ||
99 | // loop through meshes and load ready data | 93 | // loop through meshes and load ready data |
100 | for (var index in this.readyList) { | 94 | for (var index in this.readyList) { |
@@ -106,20 +100,20 @@ MeshManager.prototype.processMeshData = function () { | |||
106 | var model = this.readyList[index]; | 100 | var model = this.readyList[index]; |
107 | this.readyList.splice(index, 1); | 101 | this.readyList.splice(index, 1); |
108 | 102 | ||
109 | var primset = new rdgePrimitiveDefinition(); | 103 | var primset = new RDGE.rdgePrimitiveDefinition(); |
110 | 104 | ||
111 | primset.vertexDefinition = | 105 | primset.vertexDefinition = |
112 | { | 106 | { |
113 | // this shows two ways to map this data to an attribute | 107 | // this shows two ways to map this data to an attribute |
114 | "vert":{'type':rdgeConstants.VS_ELEMENT_POS, 'bufferIndex':0, 'bufferUsage': rdgeConstants.BUFFER_STATIC}, | 108 | "vert": { 'type': RDGE.rdgeConstants.VS_ELEMENT_POS, 'bufferIndex': 0, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }, |
115 | "a_pos":{'type':rdgeConstants.VS_ELEMENT_POS, 'bufferIndex':0, 'bufferUsage': rdgeConstants.BUFFER_STATIC}, | 109 | "a_pos": { 'type': RDGE.rdgeConstants.VS_ELEMENT_POS, 'bufferIndex': 0, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }, |
116 | "normal":{'type':rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex':1, 'bufferUsage': rdgeConstants.BUFFER_STATIC}, | 110 | "normal": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }, |
117 | "a_norm":{'type':rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex':1, 'bufferUsage': rdgeConstants.BUFFER_STATIC}, | 111 | "a_norm": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }, |
118 | "a_normal":{'type':rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex':1, 'bufferUsage': rdgeConstants.BUFFER_STATIC}, | 112 | "a_normal": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT3, 'bufferIndex': 1, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }, |
119 | "texcoord":{'type':rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex':2, 'bufferUsage': rdgeConstants.BUFFER_STATIC}, | 113 | "texcoord": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }, |
120 | "a_texcoord":{'type':rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex':2, 'bufferUsage': rdgeConstants.BUFFER_STATIC}, | 114 | "a_texcoord": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }, |
121 | "a_texcoords":{'type':rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex':2, 'bufferUsage': rdgeConstants.BUFFER_STATIC}, | 115 | "a_texcoords": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC }, |
122 | "a_uv":{'type':rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex':2, 'bufferUsage': rdgeConstants.BUFFER_STATIC} | 116 | "a_uv": { 'type': RDGE.rdgeConstants.VS_ELEMENT_FLOAT2, 'bufferIndex': 2, 'bufferUsage': RDGE.rdgeConstants.BUFFER_STATIC } |
123 | }; | 117 | }; |
124 | 118 | ||
125 | primset.bufferStreams = | 119 | primset.bufferStreams = |
@@ -131,12 +125,12 @@ MeshManager.prototype.processMeshData = function () { | |||
131 | 125 | ||
132 | primset.streamUsage = | 126 | primset.streamUsage = |
133 | [ | 127 | [ |
134 | rdgeConstants.BUFFER_STATIC, | 128 | RDGE.rdgeConstants.BUFFER_STATIC, |
135 | rdgeConstants.BUFFER_STATIC, | 129 | RDGE.rdgeConstants.BUFFER_STATIC, |
136 | rdgeConstants.BUFFER_STATIC | 130 | RDGE.rdgeConstants.BUFFER_STATIC |
137 | ]; | 131 | ]; |
138 | 132 | ||
139 | primset.indexUsage = rdgeConstants.BUFFER_STREAM; | 133 | primset.indexUsage = RDGE.rdgeConstants.BUFFER_STREAM; |
140 | 134 | ||
141 | primset.indexBuffer = model.root.data.indices; | 135 | primset.indexBuffer = model.root.data.indices; |
142 | 136 | ||
@@ -145,11 +139,10 @@ MeshManager.prototype.processMeshData = function () { | |||
145 | model.root.primitive = primset; | 139 | model.root.primitive = primset; |
146 | 140 | ||
147 | // generate a bounding box for this mesh | 141 | // generate a bounding box for this mesh |
148 | model.root.bbox = new box(); | 142 | model.root.bbox = new RDGE.box(); |
149 | 143 | ||
150 | var numCoords = model.root.data.coords.length; var idx = 0; | 144 | var numCoords = model.root.data.coords.length; var idx = 0; |
151 | while (idx < numCoords - 2) | 145 |