aboutsummaryrefslogtreecommitdiff
path: root/js/controllers/elements/shapes-controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/controllers/elements/shapes-controller.js')
-rwxr-xr-xjs/controllers/elements/shapes-controller.js47
1 files changed, 43 insertions, 4 deletions
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js
index b3ac9ddb..f0e9458b 100755
--- a/js/controllers/elements/shapes-controller.js
+++ b/js/controllers/elements/shapes-controller.js
@@ -105,6 +105,20 @@ exports.ShapesController = Montage.create(CanvasController, {
105 case "editFillMaterial": 105 case "editFillMaterial":
106 NJevent("showMaterialPopup",{materialId : el.elementModel.shapeModel.fillMaterial.getName()}); 106 NJevent("showMaterialPopup",{materialId : el.elementModel.shapeModel.fillMaterial.getName()});
107 break; 107 break;
108 case "animate":
109 if(value)
110 {
111 el.elementModel.shapeModel.animate = true;
112 el.elementModel.shapeModel.GLWorld._previewAnimation = true;
113 el.elementModel.shapeModel.GLWorld.restartRenderLoop();
114 }
115 else
116 {
117 el.elementModel.shapeModel.animate = false;
118 el.elementModel.shapeModel.GLWorld._previewAnimation = false;
119 el.elementModel.shapeModel.GLWorld._canvas.task.stop();
120 }
121 break;
108 default: 122 default:
109 CanvasController.setProperty(el, p, value); 123 CanvasController.setProperty(el, p, value);
110 } 124 }
@@ -123,6 +137,7 @@ exports.ShapesController = Montage.create(CanvasController, {
123 case "border": 137 case "border":
124 case "background": 138 case "background":
125 case "useWebGl": 139 case "useWebGl":
140 case "animate":
126 return this.getShapeProperty(el, p); 141 return this.getShapeProperty(el, p);
127 case "strokeMaterial": 142 case "strokeMaterial":
128 case "fillMaterial": 143 case "fillMaterial":
@@ -259,6 +274,10 @@ exports.ShapesController = Montage.create(CanvasController, {
259 color = this.getShapeProperty(el, "stroke"); 274 color = this.getShapeProperty(el, "stroke");
260 } 275 }
261 276
277 if(!css) {
278 return null;
279 }
280
262 css = this.application.ninja.colorController.colorModel.webGlToCss(color); 281 css = this.application.ninja.colorController.colorModel.webGlToCss(color);
263 return this.application.ninja.colorController.getColorObjFromCss(css); 282 return this.application.ninja.colorController.getColorObjFromCss(css);
264 } 283 }
@@ -489,13 +508,14 @@ exports.ShapesController = Montage.create(CanvasController, {
489 var sm, 508 var sm,
490 fm, 509 fm,
491 world, 510 world,
492 worldData = el.elementModel.shapeModel.GLWorld.export(); 511 worldData = el.elementModel.shapeModel.GLWorld.exportJSON();
493 if(worldData) 512 if(worldData)
494 { 513 {
514 worldData = this.flip3DSense (worldData );
495 world = new World(el, true); 515 world = new World(el, true);
496 el.elementModel.shapeModel.GLWorld = world; 516 el.elementModel.shapeModel.GLWorld = world;
497 el.elementModel.shapeModel.useWebGl = true; 517 el.elementModel.shapeModel.useWebGl = true;
498 world.import(worldData); 518 world.importJSON(worldData);
499 el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot(); 519 el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot();
500 520
501 sm = Object.create(MaterialsModel.getMaterial("FlatMaterial")); 521 sm = Object.create(MaterialsModel.getMaterial("FlatMaterial"));
@@ -525,13 +545,14 @@ exports.ShapesController = Montage.create(CanvasController, {
525 return; 545 return;
526 } 546 }
527 var world, 547 var world,
528 worldData = el.elementModel.shapeModel.GLWorld.export(); 548 worldData = el.elementModel.shapeModel.GLWorld.exportJSON();
529 if(worldData) 549 if(worldData)
530 { 550 {
551 worldData = this.flip3DSense (worldData );
531 world = new World(el, false); 552 world = new World(el, false);
532 el.elementModel.shapeModel.GLWorld = world; 553 el.elementModel.shapeModel.GLWorld = world;
533 el.elementModel.shapeModel.useWebGl = false; 554 el.elementModel.shapeModel.useWebGl = false;
534 world.import(worldData); 555 world.importJSON(worldData);
535 el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot(); 556 el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot();
536 el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(null); 557 el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(null);
537 el.elementModel.shapeModel.strokeMaterial = null; 558 el.elementModel.shapeModel.strokeMaterial = null;
@@ -543,6 +564,24 @@ exports.ShapesController = Montage.create(CanvasController, {
543 } 564 }
544 } 565 }
545 } 566 }
567 },
568
569 flip3DSense: {
570 value: function( importStr )
571 {
572 var jObj;
573 var index = importStr.indexOf( ';' );
574 if ((importStr[0] === 'v') && (index < 24))
575 {
576 // JSON format. separate the version info from the JSON info
577 //var vStr = importStr.substr( 0, index+1 );
578 var jStr = importStr.substr( index+1 );
579 jObj = JSON.parse( jStr );
580 jObj.webGL = !jObj.webGL;
581 }
582
583 return jObj;
584 }
546 } 585 }
547 586
548}); 587});