diff options
Diffstat (limited to 'js/controllers/elements/shapes-controller.js')
-rwxr-xr-x | js/controllers/elements/shapes-controller.js | 47 |
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 | }); |