diff options
-rw-r--r-- | js/controllers/elements/shapes-controller.js | 25 | ||||
-rw-r--r-- | js/helper-classes/RDGE/GLMaterial.js | 2 | ||||
-rw-r--r-- | js/helper-classes/RDGE/GLRectangle.js | 4 | ||||
-rw-r--r-- | js/helper-classes/RDGE/Materials/BumpMetalMaterial.js | 10 | ||||
-rw-r--r-- | js/helper-classes/RDGE/Materials/FlatMaterial.js | 48 | ||||
-rw-r--r-- | js/helper-classes/RDGE/Materials/UberMaterial.js | 6 | ||||
-rw-r--r-- | js/helper-classes/RDGE/MaterialsLibrary.js | 2 | ||||
-rw-r--r-- | js/panels/properties/sections/three-d-view.reel/three-d-view.html | 12 |
8 files changed, 70 insertions, 39 deletions
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js index e764de4e..b9c033aa 100644 --- a/js/controllers/elements/shapes-controller.js +++ b/js/controllers/elements/shapes-controller.js | |||
@@ -63,11 +63,11 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
63 | canvas.height = el.height; | 63 | canvas.height = el.height; |
64 | this.application.ninja.elementMediator.replaceElement(el, canvas); | 64 | this.application.ninja.elementMediator.replaceElement(el, canvas); |
65 | NJevent("elementDeleted", el); | 65 | NJevent("elementDeleted", el); |
66 | this.application.ninja.selectionController.selectElement(canvas); | ||
67 | el = canvas; | 66 | el = canvas; |
68 | this.toggleWebGlMode(el, value); | 67 | this.toggleWebGlMode(el, value); |
69 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 68 | el.elementModel.shapeModel.GLWorld.render(); |
70 | break; | 69 | this.application.ninja.selectionController.selectElement(el); |
70 | return; | ||
71 | case "strokeMaterial": | 71 | case "strokeMaterial": |
72 | var sm = Object.create(MaterialsLibrary.getMaterial(value)); | 72 | var sm = Object.create(MaterialsLibrary.getMaterial(value)); |
73 | if(sm) | 73 | if(sm) |
@@ -338,13 +338,26 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
338 | { | 338 | { |
339 | return; | 339 | return; |
340 | } | 340 | } |
341 | var world, | 341 | var sm, |
342 | fm, | ||
343 | world, | ||
342 | worldData = el.elementModel.shapeModel.GLWorld.export(); | 344 | worldData = el.elementModel.shapeModel.GLWorld.export(); |
343 | if(worldData) | 345 | if(worldData) |
344 | { | 346 | { |
345 | world = new GLWorld(el, true); | 347 | world = new GLWorld(el, true); |
346 | el.elementModel.shapeModel.GLWorld = world; | 348 | el.elementModel.shapeModel.GLWorld = world; |
349 | el.elementModel.shapeModel.GLGeomObj.setWorld(world); | ||
347 | el.elementModel.shapeModel.useWebGl = true; | 350 | el.elementModel.shapeModel.useWebGl = true; |
351 | sm = Object.create(MaterialsLibrary.getMaterial("FlatMaterial")); | ||
352 | fm = Object.create(MaterialsLibrary.getMaterial("FlatMaterial")); | ||
353 | if(sm && fm) | ||
354 | { | ||
355 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(sm); | ||
356 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(fm); | ||
357 | el.elementModel.shapeModel.strokeMaterial = sm; | ||
358 | el.elementModel.shapeModel.fillMaterial = fm; | ||
359 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | ||
360 | } | ||
348 | world.import(worldData); | 361 | world.import(worldData); |
349 | } | 362 | } |
350 | 363 | ||
@@ -365,6 +378,10 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
365 | world = new GLWorld(el, false); | 378 | world = new GLWorld(el, false); |
366 | el.elementModel.shapeModel.GLWorld = world; | 379 | el.elementModel.shapeModel.GLWorld = world; |
367 | el.elementModel.shapeModel.useWebGl = false; | 380 | el.elementModel.shapeModel.useWebGl = false; |
381 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(null); | ||
382 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(null); | ||
383 | el.elementModel.shapeModel.strokeMaterial = null; | ||
384 | el.elementModel.shapeModel.fillMaterial = null; | ||
368 | world.import(worldData); | 385 | world.import(worldData); |
369 | } | 386 | } |
370 | 387 | ||
diff --git a/js/helper-classes/RDGE/GLMaterial.js b/js/helper-classes/RDGE/GLMaterial.js index a74a74e4..642fab05 100644 --- a/js/helper-classes/RDGE/GLMaterial.js +++ b/js/helper-classes/RDGE/GLMaterial.js | |||
@@ -226,7 +226,7 @@ function GLMaterial( world ) | |||
226 | var endKey = "endMaterial\n"; | 226 | var endKey = "endMaterial\n"; |
227 | var index = importStr.indexOf( endKey ); | 227 | var index = importStr.indexOf( endKey ); |
228 | index += endKey.length; | 228 | index += endKey.length; |
229 | rtnStr = importStr.substr( index ); | 229 | var rtnStr = importStr.substr( index ); |
230 | 230 | ||
231 | return rtnStr; | 231 | return rtnStr; |
232 | } | 232 | } |
diff --git a/js/helper-classes/RDGE/GLRectangle.js b/js/helper-classes/RDGE/GLRectangle.js index 595a5b48..e34532d2 100644 --- a/js/helper-classes/RDGE/GLRectangle.js +++ b/js/helper-classes/RDGE/GLRectangle.js | |||
@@ -178,8 +178,8 @@ function GLRectangle() | |||
178 | this._strokeWidth = Number( this.getPropertyFromString( "strokeWidth: ", importStr ) ); | 178 | this._strokeWidth = Number( this.getPropertyFromString( "strokeWidth: ", importStr ) ); |
179 | this._innerRadius = Number( this.getPropertyFromString( "innerRadius: ", importStr ) ); | 179 | this._innerRadius = Number( this.getPropertyFromString( "innerRadius: ", importStr ) ); |
180 | this._strokeStyle = Number( this.getPropertyFromString( "strokeStyle: ", importStr ) ); | 180 | this._strokeStyle = Number( this.getPropertyFromString( "strokeStyle: ", importStr ) ); |
181 | var strokeMaterialName = Number( this.getPropertyFromString( "strokeMat: ", importStr ) ); | 181 | var strokeMaterialName = this.getPropertyFromString( "strokeMat: ", importStr ); |
182 | var fillMaterialName = Number( this.getPropertyFromString( "fillMat: ", importStr ) ); | 182 | var fillMaterialName = this.getPropertyFromString( "fillMat: ", importStr ); |
183 | this._strokeStyle = Number( this.getPropertyFromString( "strokeColor: ", importStr ) ); | 183 | this._strokeStyle = Number( this.getPropertyFromString( "strokeColor: ", importStr ) ); |
184 | this._fillColor = eval( "[" + this.getPropertyFromString( "fillColor: ", importStr ) + "]" ); | 184 | this._fillColor = eval( "[" + this.getPropertyFromString( "fillColor: ", importStr ) + "]" ); |
185 | this._strokeColor = eval( "[" + this.getPropertyFromString( "strokeColor: ", importStr ) + "]" ); | 185 | this._strokeColor = eval( "[" + this.getPropertyFromString( "strokeColor: ", importStr ) + "]" ); |
diff --git a/js/helper-classes/RDGE/Materials/BumpMetalMaterial.js b/js/helper-classes/RDGE/Materials/BumpMetalMaterial.js index 17be0cd7..999d4676 100644 --- a/js/helper-classes/RDGE/Materials/BumpMetalMaterial.js +++ b/js/helper-classes/RDGE/Materials/BumpMetalMaterial.js | |||
@@ -51,7 +51,7 @@ function BumpMetalMaterial() | |||
51 | /////////////////////////////////////////////////////////////////////// | 51 | /////////////////////////////////////////////////////////////////////// |
52 | // Material Property Accessors | 52 | // Material Property Accessors |
53 | /////////////////////////////////////////////////////////////////////// | 53 | /////////////////////////////////////////////////////////////////////// |
54 | this._propNames = ["lightDiff", "diffuseMap", "normalMap", "specularMap"]; | 54 | this._propNames = ["lightDiff", "diffuseTexture", "normalMap", "specularTexture"]; |
55 | this._propLabels = ["Diffuse Color", "Diffuse Map", "Bump Map", "Specular Map"]; | 55 | this._propLabels = ["Diffuse Color", "Diffuse Map", "Bump Map", "Specular Map"]; |
56 | this._propTypes = ["color", "file", "file", "file"]; | 56 | this._propTypes = ["color", "file", "file", "file"]; |
57 | this._propValues = []; | 57 | this._propValues = []; |
@@ -151,7 +151,7 @@ function BumpMetalMaterial() | |||
151 | exportStr += "lightDiff: " + this.getLightDiff() + "\n"; | 151 | exportStr += "lightDiff: " + this.getLightDiff() + "\n"; |
152 | exportStr += "diffuseTexture: " + this.getDiffuseTexture() + "\n"; | 152 | exportStr += "diffuseTexture: " + this.getDiffuseTexture() + "\n"; |
153 | exportStr += "specularTexture: " + this.getSpecularTexture() + "\n"; | 153 | exportStr += "specularTexture: " + this.getSpecularTexture() + "\n"; |
154 | exportStr += "normalTexture: " + this.getNormalTexture() + "\n"; | 154 | exportStr += "normalMap: " + this.getNormalTexture() + "\n"; |
155 | 155 | ||
156 | // every material needs to terminate like this | 156 | // every material needs to terminate like this |
157 | exportStr += "endMaterial\n"; | 157 | exportStr += "endMaterial\n"; |
@@ -172,12 +172,12 @@ function BumpMetalMaterial() | |||
172 | var lightDiff = eval( "[" + pu.nextValue( "lightDiff: " ) + "]" ), | 172 | var lightDiff = eval( "[" + pu.nextValue( "lightDiff: " ) + "]" ), |
173 | dt = pu.nextValue( "diffuseTexture: " ), | 173 | dt = pu.nextValue( "diffuseTexture: " ), |
174 | st = pu.nextValue( "specularTexture: " ), | 174 | st = pu.nextValue( "specularTexture: " ), |
175 | nt = pu.nextValue( "normalTexture: " ); | 175 | nt = pu.nextValue( "normalMap: " ); |
176 | 176 | ||
177 | this.setProperty( "lightDiff", lightDif); | 177 | this.setProperty( "lightDiff", lightDiff); |
178 | this.setProperty( "diffuseTexture", dt ); | 178 | this.setProperty( "diffuseTexture", dt ); |
179 | this.setProperty( "specularTexture", st ); | 179 | this.setProperty( "specularTexture", st ); |
180 | this.setProperty( "normalTexture", nt ); | 180 | this.setProperty( "normalMap", nt ); |
181 | 181 | ||
182 | var endKey = "endMaterial\n"; | 182 | var endKey = "endMaterial\n"; |
183 | var index = importStr.indexOf( endKey ); | 183 | var index = importStr.indexOf( endKey ); |
diff --git a/js/helper-classes/RDGE/Materials/FlatMaterial.js b/js/helper-classes/RDGE/Materials/FlatMaterial.js index de039231..a250dc0a 100644 --- a/js/helper-classes/RDGE/Materials/FlatMaterial.js +++ b/js/helper-classes/RDGE/Materials/FlatMaterial.js | |||
@@ -75,11 +75,12 @@ function FlatMaterial() | |||
75 | 75 | ||
76 | this.setProperty = function( prop, value ) | 76 | this.setProperty = function( prop, value ) |
77 | { | 77 | { |
78 | // make sure we have legitimate imput | 78 | // make sure we have legitimate input |
79 | if (this.validateProperty( prop, value )) | 79 | if (this.validateProperty( prop, value )) |
80 | { | 80 | { |
81 | this._color = value.slice(0); | 81 | this._propValues[prop] = value; |
82 | this._shader.colorMe[prop].set(value); | 82 | if (this._shader && this._shader.colorMe) |
83 | this._shader.colorMe[prop].set(value); | ||
83 | } | 84 | } |
84 | } | 85 | } |
85 | /////////////////////////////////////////////////////////////////////// | 86 | /////////////////////////////////////////////////////////////////////// |
@@ -88,7 +89,7 @@ function FlatMaterial() | |||
88 | { | 89 | { |
89 | // this function should be overridden by subclasses | 90 | // this function should be overridden by subclasses |
90 | var exportStr = "material: " + this.getShaderName() + "\n"; | 91 | var exportStr = "material: " + this.getShaderName() + "\n"; |
91 | exportStr = "name: " + this.getName() + "\n"; | 92 | exportStr += "name: " + this.getName() + "\n"; |
92 | 93 | ||
93 | if (this._shader) | 94 | if (this._shader) |
94 | exportStr += "color: " + String(this._shader.colorMe.color) + "\n"; | 95 | exportStr += "color: " + String(this._shader.colorMe.color) + "\n"; |
@@ -99,19 +100,32 @@ function FlatMaterial() | |||
99 | return exportStr; | 100 | return exportStr; |
100 | } | 101 | } |
101 | 102 | ||
102 | this.import = function( importStr ) | 103 | this.import = function( importStr ) |
103 | { | 104 | { |
104 | var pu = new ParseUtils( importStr ); | 105 | var pu = new ParseUtils( importStr ); |
105 | var material = pu.nextValue( "material: " ); | 106 | var material = pu.nextValue( "material: " ); |
106 | if (material != this.getShaderName()) throw new Error( "ill-formed material" ); | 107 | if (material != this.getShaderName()) throw new Error( "ill-formed material" ); |
107 | this.setName( pu.nextValue( "material: ") ); | 108 | this.setName( pu.nextValue( "name: ") ); |
108 | var color = pu.nextValue( "color: " ); | 109 | |
109 | 110 | var rtnStr; | |
110 | var endKey = "endMaterial\n"; | 111 | try |
111 | var index = importStr.indexOf( endKey ) + endKey.len; | 112 | { |
112 | var rtnStr = importStr.substr( index ); | 113< |