diff options
Diffstat (limited to 'js/helper-classes')
-rwxr-xr-x | js/helper-classes/3D/draw-utils.js | 21 | ||||
-rwxr-xr-x | js/helper-classes/3D/snap-manager.js | 13 | ||||
-rwxr-xr-x | js/helper-classes/3D/view-utils.js | 53 |
3 files changed, 42 insertions, 45 deletions
diff --git a/js/helper-classes/3D/draw-utils.js b/js/helper-classes/3D/draw-utils.js index 871b832d..a793b643 100755 --- a/js/helper-classes/3D/draw-utils.js +++ b/js/helper-classes/3D/draw-utils.js | |||
@@ -112,7 +112,6 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
112 | this.eventManager.addEventListener("elementsRemoved", this, false); | 112 | this.eventManager.addEventListener("elementsRemoved", this, false); |
113 | this.eventManager.addEventListener("elementChange", this, false); | 113 | this.eventManager.addEventListener("elementChange", this, false); |
114 | this.eventManager.addEventListener("elementChanging", this, false); | 114 | this.eventManager.addEventListener("elementChanging", this, false); |
115 | this.eventManager.addEventListener("closeDocument", this, false); | ||
116 | this.eventManager.addEventListener("elementReplaced", this, false); | 115 | this.eventManager.addEventListener("elementReplaced", this, false); |
117 | } | 116 | } |
118 | }, | 117 | }, |
@@ -126,7 +125,7 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
126 | //initialize with current document | 125 | //initialize with current document |
127 | this._eltArray = []; | 126 | this._eltArray = []; |
128 | this._planesArray = []; | 127 | this._planesArray = []; |
129 | this.setDrawingSurfaceElement(stage.canvas); | 128 | this.setDrawingSurfaceElement(stage.gridCanvas); |
130 | this.setSourceSpaceElement( this.application.ninja.currentDocument.model.documentRoot); | 129 | this.setSourceSpaceElement( this.application.ninja.currentDocument.model.documentRoot); |
131 | this.setWorkingPlane( [0,0,1,0] ); | 130 | this.setWorkingPlane( [0,0,1,0] ); |
132 | 131 | ||
@@ -164,15 +163,6 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
164 | } | 163 | } |
165 | }, | 164 | }, |
166 | 165 | ||
167 | handleCloseDocument:{ | ||
168 | value: function() { | ||
169 | if(this.application.ninja.documentController._documents.length === 0){ | ||
170 | this._eltArray.length = 0; | ||
171 | this._planesArray.length = 0; | ||
172 | } | ||
173 | } | ||
174 | }, | ||
175 | |||
176 | handleElementAdded: { | 166 | handleElementAdded: { |
177 | value: function(event) { | 167 | value: function(event) { |
178 | var elements = event.detail; | 168 | var elements = event.detail; |
@@ -276,8 +266,8 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
276 | stage = this.application.ninja.stage, | 266 | stage = this.application.ninja.stage, |
277 | minLeft = stage.userPaddingLeft, | 267 | minLeft = stage.userPaddingLeft, |
278 | minTop = stage.userPaddingTop, | 268 | minTop = stage.userPaddingTop, |
279 | docLeft = stage.documentOffsetLeft, | 269 | docLeft = stage.userContentLeft, |
280 | docTop = stage.documentOffsetTop, | 270 | docTop = stage.userContentTop, |
281 | l, | 271 | l, |
282 | t, | 272 | t, |
283 | plane, | 273 | plane, |
@@ -307,7 +297,6 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
307 | } | 297 | } |
308 | 298 | ||
309 | if(!changed) { | 299 | if(!changed) { |
310 | stage.layout.draw(); | ||
311 | this.drawWorkingPlane(); | 300 | this.drawWorkingPlane(); |
312 | this.draw3DCompass(); | 301 | this.draw3DCompass(); |
313 | } | 302 | } |
@@ -628,11 +617,11 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
628 | { | 617 | { |
629 | value: function () | 618 | value: function () |
630 | { | 619 | { |
620 | this.application.ninja.stage.clearGridCanvas(); | ||
631 | if (!this.isDrawingGrid()) return; | 621 | if (!this.isDrawingGrid()) return; |
632 | 622 | ||
633 | var saveContext = this.getDrawingSurfaceElement(); | 623 | var saveContext = this.getDrawingSurfaceElement(); |
634 | //this.setDrawingSurfaceElement(window.stageManager.layoutCanvas); | 624 | this.setDrawingSurfaceElement(this.application.ninja.stage.gridCanvas); |
635 | this.setDrawingSurfaceElement(this.application.ninja.stage.layoutCanvas); | ||
636 | 625 | ||
637 | // 3 coordinate axes for the plane | 626 | // 3 coordinate axes for the plane |
638 | var zAxis = [this._workingPlane[0], this._workingPlane[1], this._workingPlane[2]]; | 627 | var zAxis = [this._workingPlane[0], this._workingPlane[1], this._workingPlane[2]]; |
diff --git a/js/helper-classes/3D/snap-manager.js b/js/helper-classes/3D/snap-manager.js index 069c6022..e3756f32 100755 --- a/js/helper-classes/3D/snap-manager.js +++ b/js/helper-classes/3D/snap-manager.js | |||
@@ -21,8 +21,9 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
21 | /////////////////////////////////////////////////////////////////////// | 21 | /////////////////////////////////////////////////////////////////////// |
22 | // Instance variables | 22 | // Instance variables |
23 | /////////////////////////////////////////////////////////////////////// | 23 | /////////////////////////////////////////////////////////////////////// |
24 | drawingCanvas: { value: null, writable: true}, | 24 | |
25 | 25 | currentStage: { value: null }, | |
26 | |||
26 | // we keep a stack of working planes to facilitate working on other planes temporarily | 27 | // we keep a stack of working planes to facilitate working on other planes temporarily |
27 | _workingPlaneStack : { value: [], writable: true }, | 28 | _workingPlaneStack : { value: [], writable: true }, |
28 | 29 | ||
@@ -83,14 +84,14 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
83 | popWorkingPlane : { value: function () { workingPlane = this._workingPlaneStack.pop(); return workingPlane; }}, | 84 | popWorkingPlane : { value: function () { workingPlane = this._workingPlaneStack.pop(); return workingPlane; }}, |
84 | 85 | ||
85 | getStageWidth : { value: function () { | 86 | getStageWidth : { value: function () { |
86 | return parseInt(this.application.ninja.currentDocument.model.documentRoot.offsetWidth); | 87 | return parseInt(this.currentStage.offsetWidth); |
87 | }}, | 88 | }}, |
88 | 89 | ||
89 | getStageHeight : { value: function () { | 90 | getStageHeight : { value: function () { |
90 | return parseInt(this.application.ninja.currentDocument.model.documentRoot.offsetHeight); | 91 | return parseInt(this.currentStage.offsetHeight); |
91 | }}, | 92 | }}, |
92 | 93 | ||
93 | getStage : { value: function() { return this.application.ninja.currentDocument.model.documentRoot; }}, | 94 | getStage : { value: function() { return this.currentStage; }}, |
94 | 95 | ||
95 | getGridVertexHitRad : { value: function() { return this._gridVertexHitRad; }}, | 96 | getGridVertexHitRad : { value: function() { return this._gridVertexHitRad; }}, |
96 | getGridEdgeHitRad : { value: function() { return this._gridEdgeHitRad; }}, | 97 | getGridEdgeHitRad : { value: function() { return this._gridEdgeHitRad; }}, |
@@ -2124,7 +2125,7 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
2124 | if (hitRec) | 2125 | if (hitRec) |
2125 | { | 2126 | { |
2126 | var saveContext = drawUtils.getDrawingSurfaceElement(); | 2127 | var saveContext = drawUtils.getDrawingSurfaceElement(); |
2127 | drawUtils.setDrawingSurfaceElement(this.drawingCanvas); | 2128 | drawUtils.setDrawingSurfaceElement(this.application.ninja.stage.drawingCanvas); |
2128 | var context = drawUtils.getDrawingContext(); | 2129 | var context = drawUtils.getDrawingContext(); |
2129 | if (context) | 2130 | if (context) |
2130 | { | 2131 | { |
diff --git a/js/helper-classes/3D/view-utils.js b/js/helper-classes/3D/view-utils.js index a3d09404..5a128408 100755 --- a/js/helper-classes/3D/view-utils.js +++ b/js/helper-classes/3D/view-utils.js | |||
@@ -24,6 +24,9 @@ exports.ViewUtils = Montage.create(Component, { | |||
24 | // keep a stack of viewport objects | 24 | // keep a stack of viewport objects |
25 | _viewportObjStack: { value: []}, | 25 | _viewportObjStack: { value: []}, |
26 | 26 | ||
27 | _rootElement: { value: null}, | ||
28 | _stageElement: { value: null}, | ||
29 | |||
27 | /////////////////////////////////////////////////////////////////////// | 30 | /////////////////////////////////////////////////////////////////////// |
28 | // Property accessors | 31 | // Property accessors |
29 | /////////////////////////////////////////////////////////////////////// | 32 | /////////////////////////////////////////////////////////////////////// |
@@ -36,6 +39,13 @@ exports.ViewUtils = Montage.create(Component, { | |||
36 | }, | 39 | }, |
37 | getViewportObj: { value: function() { return this.m_viewportObj; } }, | 40 | getViewportObj: { value: function() { return this.m_viewportObj; } }, |
38 | 41 | ||
42 | setRootElement: { value: function( elt ) { this._rootElement = elt; } }, | ||
43 | getRootElement: { value: function () { return this._rootElement; } }, | ||
44 | |||
45 | setStageElement: { value: function( elt ) { this._stageElement = elt; } }, | ||
46 | getStageElement: { value: function () { return this._stageElement; } }, | ||
47 | |||
48 | |||
39 | getPerspectiveDistance: { value: function () { return this._perspectiveDist; } }, | 49 | getPerspectiveDistance: { value: function () { return this._perspectiveDist; } }, |
40 | 50 | ||
41 | /////////////////////////////////////////////////////////////////////// | 51 | /////////////////////////////////////////////////////////////////////// |
@@ -195,7 +205,12 @@ exports.ViewUtils = Montage.create(Component, { | |||
195 | 205 | ||
196 | getPerspectiveDistFromElement: { | 206 | getPerspectiveDistFromElement: { |
197 | value: function( elt ) { | 207 | value: function( elt ) { |
198 | return ElementsMediator.getPerspectiveDist(elt); | 208 | var pDist = ElementsMediator.getPerspectiveDist(elt); |
209 | if(pDist === "none") { | ||
210 | return null; | ||
211 | } else { | ||
212 | return pDist; | ||
213 | } | ||
199 | } | 214 | } |
200 | }, | 215 | }, |
201 | 216 | ||
@@ -280,7 +295,7 @@ exports.ViewUtils = Montage.create(Component, { | |||
280 | // into stage world space. | 295 | // into stage world space. |
281 | postViewToStageWorld: { | 296 | postViewToStageWorld: { |
282 | value: function( localPt, elt ) { | 297 | value: function( localPt, elt ) { |
283 | if ((elt == null) || (elt === this.application.ninja.currentDocument.model.documentRoot)) return localPt; | 298 | if ((elt == null) || (elt === this._stageElement)) return localPt; |
284 | 299 | ||
285 | // get the 3D transformation and 2D offset from the element | 300 | // get the 3D transformation and 2D offset from the element |
286 | var pt = localPt.slice(0); | 301 | var pt = localPt.slice(0); |
@@ -307,7 +322,7 @@ exports.ViewUtils = Montage.create(Component, { | |||
307 | this.popViewportObj(); | 322 | this.popViewportObj(); |
308 | 323 | ||
309 | // check if we are done | 324 | // check if we are done |
310 | if (parent === this.application.ninja.currentDocument.model.documentRoot) break; | 325 | if (parent === this._stageElement) break; |
311 | 326 | ||
312 | if (this.elementHas3D( parent )) | 327 | if (this.elementHas3D( parent )) |
313 | { | 328 | { |
@@ -339,10 +354,10 @@ exports.ViewUtils = Montage.create(Component, { | |||
339 | // if (child === this.application.ninja.currentDocument.model.documentRoot) break; | 354 | // if (child === this.application.ninja.currentDocument.model.documentRoot) break; |
340 | // child = child.offsetParent; | 355 | // child = child.offsetParent; |
341 | 356 | ||
342 | if (child === this.application.ninja.currentDocument.model.documentRoot) break; | 357 | if (child === this._stageElement) break; |
343 | if (child === this.application.ninja.currentDocument.model.documentRoot.parentNode) break; | 358 | if (child === this._rootElement) break; |
344 | child = child.offsetParent; | 359 | child = child.offsetParent; |
345 | if (child === this.application.ninja.currentDocument.model.documentRoot.parentNode) break; | 360 | if (child === this._rootElement) |