diff options
author | Nivesh Rajbhandari | 2012-04-09 16:04:24 -0700 |
---|---|---|
committer | Nivesh Rajbhandari | 2012-04-09 16:04:24 -0700 |
commit | 952e0b2c28af081041fa8987c3e865b931d052fa (patch) | |
tree | 51a2d9a210cc89b8df8edd120d78c4fbd2480b06 /js/controllers/elements | |
parent | c62c5c4287a1ee8a276b32dc61f06abbc24818ec (diff) | |
download | ninja-952e0b2c28af081041fa8987c3e865b931d052fa.tar.gz |
Single perspective fix.
Note that rotating multiple objects when the stage is rotated still doesn't work and flatten still doesn't work.
Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com>
Diffstat (limited to 'js/controllers/elements')
-rwxr-xr-x | js/controllers/elements/element-controller.js | 10 | ||||
-rwxr-xr-x | js/controllers/elements/stage-controller.js | 20 |
2 files changed, 23 insertions, 7 deletions
diff --git a/js/controllers/elements/element-controller.js b/js/controllers/elements/element-controller.js index fda3a3c5..7ab6664f 100755 --- a/js/controllers/elements/element-controller.js +++ b/js/controllers/elements/element-controller.js | |||
@@ -249,10 +249,6 @@ exports.ElementController = Montage.create(Component, { | |||
249 | else | 249 | else |
250 | { | 250 | { |
251 | var dist = this.application.ninja.stylesController.getPerspectiveDistFromElement(el, false); | 251 | var dist = this.application.ninja.stylesController.getPerspectiveDistFromElement(el, false); |
252 | if(dist == null) { | ||
253 | dist = 1400; | ||
254 | } | ||
255 | |||
256 | el.elementModel.props3D.perspectiveDist = dist; | 252 | el.elementModel.props3D.perspectiveDist = dist; |
257 | return dist; | 253 | return dist; |
258 | } | 254 | } |
@@ -266,9 +262,13 @@ exports.ElementController = Montage.create(Component, { | |||
266 | mat = props[index]["mat"]; | 262 | mat = props[index]["mat"]; |
267 | this.application.ninja.stylesController.setElementStyle(el, | 263 | this.application.ninja.stylesController.setElementStyle(el, |
268 | "-webkit-transform", | 264 | "-webkit-transform", |
269 | "perspective(" + dist + ") " + | ||
270 | "matrix3d(" + MathUtils.scientificToDecimal(mat, 5) + ")"); | 265 | "matrix3d(" + MathUtils.scientificToDecimal(mat, 5) + ")"); |
271 | 266 | ||
267 | // TODO - We don't support perspective on individual elements yet | ||
268 | // this.application.ninja.stylesController.setElementStyle(el, | ||
269 | // "-webkit-perspective", | ||
270 | // dist); | ||
271 | |||
272 | el.elementModel.props3D.matrix3d = mat; | 272 | el.elementModel.props3D.matrix3d = mat; |
273 | el.elementModel.props3D.perspectiveDist = dist; | 273 | el.elementModel.props3D.perspectiveDist = dist; |
274 | 274 | ||
diff --git a/js/controllers/elements/stage-controller.js b/js/controllers/elements/stage-controller.js index dc916b1a..f376e40f 100755 --- a/js/controllers/elements/stage-controller.js +++ b/js/controllers/elements/stage-controller.js | |||
@@ -90,7 +90,7 @@ exports.StageController = Montage.create(ElementController, { | |||
90 | return el.elementModel.stageView.style.getProperty(p); | 90 | return el.elementModel.stageView.style.getProperty(p); |
91 | } | 91 | } |
92 | default: | 92 | default: |
93 | return ElementController.getProperty(el, p, false, true); | 93 | return ElementController.getProperty(el, p, true, true); |
94 | //console.log("Undefined Stage property ", p); | 94 | //console.log("Undefined Stage property ", p); |
95 | } | 95 | } |
96 | } | 96 | } |
@@ -119,6 +119,7 @@ exports.StageController = Montage.create(ElementController, { | |||
119 | break; | 119 | break; |
120 | case "-webkit-transform-style": | 120 | case "-webkit-transform-style": |
121 | el.elementModel.stageView.style.setProperty(p, value); | 121 | el.elementModel.stageView.style.setProperty(p, value); |
122 | this.application.ninja.stage.updatedStage = true; | ||
122 | break; | 123 | break; |
123 | default: | 124 | default: |
124 | console.log("Undefined property ", p, "for the Stage Controller"); | 125 | console.log("Undefined property ", p, "for the Stage Controller"); |
@@ -178,5 +179,20 @@ exports.StageController = Montage.create(ElementController, { | |||
178 | return mat; | 179 | return mat; |
179 | } | 180 | } |
180 | } | 181 | } |
181 | } | 182 | }, |
183 | |||
184 | getPerspectiveDist: { | ||
185 | value: function(el) { | ||
186 | if(el.elementModel && el.elementModel.props3D && el.elementModel.props3D.perspectiveDist) | ||
187 | { | ||
188 | return el.elementModel.props3D.perspectiveDist; | ||
189 | } | ||
190 | else | ||
191 | { | ||
192 | var dist = this.application.ninja.stylesController.getPerspectiveDistFromElement(el, true); | ||
193 | el.elementModel.props3D.perspectiveDist = dist; | ||
194 | return dist; | ||
195 | } | ||
196 | } | ||
197 | }, | ||
182 | }); | 198 | }); |