aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xjs/components/ui/color-chip.reel/color-chip.js2
-rwxr-xr-xjs/components/ui/input-group.reel/input-group.css15
-rwxr-xr-xjs/controllers/elements/component-controller.js2
-rwxr-xr-xjs/controllers/elements/element-controller.js59
-rwxr-xr-xjs/controllers/elements/shapes-controller.js1
-rwxr-xr-xjs/controllers/elements/stage-controller.js16
-rwxr-xr-xjs/controllers/styles-controller.js66
-rwxr-xr-xjs/document/templates/montage-html/default_html.css5
-rwxr-xr-xjs/document/templates/montage-html/index.html2
-rwxr-xr-xjs/helper-classes/3D/view-utils.js48
-rwxr-xr-xjs/lib/NJUtils.js8
-rwxr-xr-xjs/mediators/element-mediator.js15
-rwxr-xr-xjs/models/properties-3d.js50
-rwxr-xr-xjs/panels/Materials/materials-popup.reel/materials-popup.css46
-rwxr-xr-xjs/panels/Materials/materials-popup.reel/materials-popup.html2
-rwxr-xr-xjs/panels/Materials/materials-popup.reel/materials-popup.js2
-rwxr-xr-xjs/panels/properties.reel/properties.js24
-rwxr-xr-xjs/panels/properties.reel/sections/three-d-view.reel/three-d-view.html28
-rwxr-xr-xjs/panels/properties.reel/sections/three-d-view.reel/three-d-view.js14
-rwxr-xr-xjs/stage/layout.js2
-rw-r--r--js/tools/BrushTool.js2
-rwxr-xr-xjs/tools/LineTool.js2
-rwxr-xr-xjs/tools/PenTool.js2
-rwxr-xr-xjs/tools/RotateStage3DTool.js5
-rwxr-xr-xjs/tools/SelectionTool.js62
-rwxr-xr-xjs/tools/ShapeTool.js4
-rwxr-xr-xjs/tools/TagTool.js19
-rwxr-xr-xjs/tools/Translate3DToolBase.js7
-rwxr-xr-xjs/tools/drawing-tool-base.js2
29 files changed, 308 insertions, 204 deletions
diff --git a/js/components/ui/color-chip.reel/color-chip.js b/js/components/ui/color-chip.reel/color-chip.js
index 7a7411da..4e64b2e8 100755
--- a/js/components/ui/color-chip.reel/color-chip.js
+++ b/js/components/ui/color-chip.reel/color-chip.js
@@ -56,6 +56,8 @@ var ColorChip = exports.ColorChip = Montage.create(Component, {
56 if(this.hasIcon) { 56 if(this.hasIcon) {
57 var icon = this.iconType || this.mode + "Icon"; 57 var icon = this.iconType || this.mode + "Icon";
58 this.application.ninja.colorController.addButton(icon, this.icon); 58 this.application.ninja.colorController.addButton(icon, this.icon);
59 } else {
60 this.icon.style.display = "none";
59 } 61 }
60 62
61 this.chipBtn.props = {side: 'right', align: 'top', wheel: true, palette: true, gradient: true, image: true, offset: this.offset}; 63 this.chipBtn.props = {side: 'right', align: 'top', wheel: true, palette: true, gradient: true, image: true, offset: this.offset};
diff --git a/js/components/ui/input-group.reel/input-group.css b/js/components/ui/input-group.reel/input-group.css
index 0b7cd1ef..5707b17e 100755
--- a/js/components/ui/input-group.reel/input-group.css
+++ b/js/components/ui/input-group.reel/input-group.css
@@ -23,11 +23,24 @@
23 23
24.propControl .inputRow div .hottext, 24.propControl .inputRow div .hottext,
25.propControl .inputRow div .hottextInput, 25.propControl .inputRow div .hottextInput,
26.prop-controller .nj-skinned 26.prop-controller .nj-skinned,
27.prop-controller .hottext,
28.prop-controller .hottextInput
27{ 29{
28 border: 1px solid black; 30 border: 1px solid black;
29 width: 30px !important; 31 width: 30px !important;
30 float:left; 32 float:left;
31 margin: 2px 0; 33 margin: 2px 0;
32 text-align: center; 34 text-align: center;
35}
36
37.prop-controller .file-path
38{
39 width: 170px !important;
40}
41
42.propControl .inputRow div.propControl
43{
44 float:left;
45 margin: 2px 0;
33} \ No newline at end of file 46} \ No newline at end of file
diff --git a/js/controllers/elements/component-controller.js b/js/controllers/elements/component-controller.js
index 260ee8a0..d902e4a1 100755
--- a/js/controllers/elements/component-controller.js
+++ b/js/controllers/elements/component-controller.js
@@ -16,6 +16,7 @@ exports.ComponentController = Montage.create(ElementController, {
16 switch(prop) { 16 switch(prop) {
17 case "id": 17 case "id":
18 case "class": 18 case "class":
19 case "-webkit-transform-style":
19 case "left": 20 case "left":
20 case "top": 21 case "top":
21 case "width": 22 case "width":
@@ -38,6 +39,7 @@ exports.ComponentController = Montage.create(ElementController, {
38 switch(p) { 39 switch(p) {
39 case "id": 40 case "id":
40 case "class": 41 case "class":
42 case "-webkit-transform-style":
41 case "left": 43 case "left":
42 case "top": 44 case "top":
43 case "width": 45 case "width":
diff --git a/js/controllers/elements/element-controller.js b/js/controllers/elements/element-controller.js
index b35251ad..9cba6d94 100755
--- a/js/controllers/elements/element-controller.js
+++ b/js/controllers/elements/element-controller.js
@@ -223,11 +223,10 @@ var ElementController = exports.ElementController = Montage.create(NJComponent,
223 223
224 if (el) 224 if (el)
225 { 225 {
226 var xformStr = this.application.ninja.elementMediator.getProperty(el, "-webkit-transform"); 226 mat = this.application.ninja.stylesController.getMatrixFromElement(el, false);
227 if (xformStr) 227 if (!mat) {
228 mat = this.transformStringToMat( xformStr );
229 if (!mat)
230 mat = Matrix.I(4); 228 mat = Matrix.I(4);
229 }
231 } 230 }
232 231
233 el.elementModel.props3D.matrix3d = mat; 232 el.elementModel.props3D.matrix3d = mat;
@@ -244,23 +243,9 @@ var ElementController = exports.ElementController = Montage.create(NJComponent,
244 } 243 }
245 else 244 else
246 { 245 {
247 var dist = 1400; 246 var dist = this.application.ninja.stylesController.getPerspectiveDistFromElement(el, false);
248 247 if(dist == null) {
249 var str = this.getProperty(el, "-webkit-transform"); 248 dist = 1400;
250 if (str)
251 {
252 var index1 = str.indexOf( "perspective(");
253 if (index1 >= 0)
254 {
255 index1 += 12; // do not include 'perspective('
256 var index2 = str.indexOf( ")", index1 );
257 if (index2 >= 0)
258 {
259 var substr = str.substr( index1, (index2-index1));
260 if (substr && (substr.length > 0))
261 dist = MathUtils.styleToNumber( substr );
262 }
263 }
264 } 249 }
265 250
266 el.elementModel.props3D.perspectiveDist = dist; 251 el.elementModel.props3D.perspectiveDist = dist;
@@ -303,36 +288,6 @@ var ElementController = exports.ElementController = Montage.create(NJComponent,
303 elt.elementModel.props3D.z3D = ~~(elt3DInfo.translation[2]); 288 elt.elementModel.props3D.z3D = ~~(elt3DInfo.translation[2]);
304 } 289 }
305 } 290 }
306 },
307
308 transformStringToMat: {
309 value: function( str ) {
310 var rtnMat;
311
312 var index1 = str.indexOf( "matrix3d(");
313 if (index1 >= 0)
314 {
315 index1 += 9; // do not include 'matrix3d('
316 var index2 = str.indexOf( ")", index1 );
317 if (index2 >= 0)
318 {
319 var substr = str.substr( index1, (index2-index1));
320 if (substr && (substr.length > 0))
321 {
322 var numArray = substr.split(',');
323 var nNums = numArray.length;
324 if (nNums == 16)
325 {
326 // gl-matrix wants row order
327 rtnMat = numArray;
328 for (var i=0; i<16; i++)
329 rtnMat[i] = Number( rtnMat[i] );
330 }
331 }
332 }
333 }
334
335 return rtnMat;
336 }
337 } 291 }
292
338}); \ No newline at end of file 293}); \ No newline at end of file
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js
index f0e9458b..f18801fd 100755
--- a/js/controllers/elements/shapes-controller.js
+++ b/js/controllers/elements/shapes-controller.js
@@ -515,6 +515,7 @@ exports.ShapesController = Montage.create(CanvasController, {
515 world = new World(el, true); 515 world = new World(el, true);
516 el.elementModel.shapeModel.GLWorld = world; 516 el.elementModel.shapeModel.GLWorld = world;
517 el.elementModel.shapeModel.useWebGl = true; 517 el.elementModel.shapeModel.useWebGl = true;
518 el.elementModel.controller.setProperty(el, "-webkit-transform-style", "preserve-3d");
518 world.importJSON(worldData); 519 world.importJSON(worldData);
519 el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot(); 520 el.elementModel.shapeModel.GLGeomObj = world.getGeomRoot();
520 521
diff --git a/js/controllers/elements/stage-controller.js b/js/controllers/elements/stage-controller.js
index 97ea3aa5..dc916b1a 100755
--- a/js/controllers/elements/stage-c