diff options
Diffstat (limited to 'js/tools')
-rwxr-xr-x | js/tools/LineTool.js | 56 | ||||
-rwxr-xr-x | js/tools/Translate3DToolBase.js | 4 | ||||
-rwxr-xr-x | js/tools/TranslateObject3DTool.js | 19 |
3 files changed, 40 insertions, 39 deletions
diff --git a/js/tools/LineTool.js b/js/tools/LineTool.js index f0d96c3c..4ec327b5 100755 --- a/js/tools/LineTool.js +++ b/js/tools/LineTool.js | |||
@@ -97,34 +97,38 @@ exports.LineTool = Montage.create(ShapeTool, { | |||
97 | if(this.drawData) { | 97 | if(this.drawData) { |
98 | w = Math.floor(this.drawData.width); | 98 | w = Math.floor(this.drawData.width); |
99 | h = Math.floor(this.drawData.height); | 99 | h = Math.floor(this.drawData.height); |
100 | // set the dimensions | ||
101 | if(slope === "horizontal") { | ||
102 | h = Math.max(this._strokeSize, 1); | ||
103 | w = Math.max(w, 1); | ||
104 | } else if(slope === "vertical") { | ||
105 | w = Math.max(this._strokeSize, 1); | ||
106 | h = Math.max(h, 1); | ||
107 | } else { | ||
108 | // else make the line's stroke fit inside the canvas by growing the canvas | ||
109 | var theta = Math.atan(slope); | ||
110 | xAdj = Math.abs((this._strokeSize/2)*Math.sin(theta)); | ||
111 | yAdj = Math.abs((this._strokeSize/2)*Math.cos(theta)); | ||
112 | |||
113 | w += ~~(xAdj*2); | ||
114 | h += ~~(yAdj*2); | ||
115 | } | ||
116 | |||
100 | if(!this._useExistingCanvas()) { | 117 | if(!this._useExistingCanvas()) { |
101 | // set the dimensions | 118 | |
102 | if(slope === "horizontal") { | 119 | canvas = document.application.njUtils.make("canvas", {"data-RDGE-id": NJUtils.generateRandom()}, this.application.ninja.currentDocument); |
103 | h = Math.max(this._strokeSize, 1); | 120 | |
104 | w = Math.max(w, 1); | 121 | var styles = document.application.njUtils.stylesFromDraw(canvas, w, h, this.drawData); |
105 | } else if(slope === "vertical") { | 122 | this.application.ninja.elementMediator.addElements(canvas, styles); |
106 | w = Math.max(this._strokeSize, 1); | 123 | } else { |
107 | h = Math.max(h, 1); | 124 | canvas = this._targetedElement; |
108 | } else { | 125 | if (!canvas.getAttribute( "data-RDGE-id" )) |
109 | // else make the line's stroke fit inside the canvas by growing the canvas | 126 | canvas.setAttribute( "data-RDGE-id", NJUtils.generateRandom() ); |
110 | var theta = Math.atan(slope); | 127 | canvas.elementModel.controller = ShapesController; |
111 | xAdj = Math.abs((this._strokeSize/2)*Math.sin(theta)); | 128 | if(!canvas.elementModel.shapeModel) { |
112 | yAdj = Math.abs((this._strokeSize/2)*Math.cos(theta)); | 129 | canvas.elementModel.shapeModel = Montage.create(ShapeModel); |
113 | |||
114 | w += ~~(xAdj*2); | ||
115 | h += ~~(yAdj*2); | ||
116 | } | ||
117 | |||
118 | canvas = document.application.njUtils.make("canvas", {"data-RDGE-id": NJUtils.generateRandom()}, this.application.ninja.currentDocument); | ||
119 | |||
120 | var styles = document.application.njUtils.stylesFromDraw(canvas, w, h, this.drawData); | ||
121 | this.application.ninja.elementMediator.addElements(canvas, styles); | ||
122 | } else { | ||
123 | canvas = this._targetedElement; | ||
124 | canvas.elementModel.controller = ShapesController; | ||
125 | if(!canvas.elementModel.shapeModel) { | ||
126 | canvas.elementModel.shapeModel = Montage.create(ShapeModel); | ||
127 | } | 130 | } |
131 | this.RenderShape(w, h, this.drawData.planeMat, this.drawData.midPt, canvas, slope, xAdj, yAdj); | ||
128 | } | 132 | } |
129 | } | 133 | } |
130 | } | 134 | } |
diff --git a/js/tools/Translate3DToolBase.js b/js/tools/Translate3DToolBase.js index b5008666..fd275a8a 100755 --- a/js/tools/Translate3DToolBase.js +++ b/js/tools/Translate3DToolBase.js | |||
@@ -166,7 +166,7 @@ exports.Translate3DToolBase = Montage.create(ModifierToolBase, | |||
166 | 166 | ||
167 | var len = selectedElements.length, | 167 | var len = selectedElements.length, |
168 | self = this, | 168 | self = this, |
169 | target = selectedElements[0], | 169 | target = this.clickedObject, |
170 | curMat = viewUtils.getMatrixFromElement( target ), | 170 | curMat = viewUtils.getMatrixFromElement( target ), |
171 | matInv = glmat4.inverse(this._startMat, []), | 171 | matInv = glmat4.inverse(this._startMat, []), |
172 | nMat = glmat4.multiply(transMat, this._startMat, [] ); | 172 | nMat = glmat4.multiply(transMat, this._startMat, [] ); |
@@ -180,7 +180,7 @@ exports.Translate3DToolBase = Montage.create(ModifierToolBase, | |||
180 | 180 | ||
181 | var shouldUpdateStartMat = true; | 181 | var shouldUpdateStartMat = true; |
182 | 182 | ||
183 | if(this._clickedOnStage || ((this._handleMode === 2) && (len > 1))) | 183 | if(this._clickedOnStage || ((this._handleMode !== null) && (len > 1))) |
184 | { | 184 | { |
185 | shouldUpdateStartMat = false; | 185 | shouldUpdateStartMat = false; |
186 | } | 186 | } |
diff --git a/js/tools/TranslateObject3DTool.js b/js/tools/TranslateObject3DTool.js index a3ece1f9..5dfd2029 100755 --- a/js/tools/TranslateObject3DTool.js +++ b/js/tools/TranslateObject3DTool.js | |||
@@ -77,15 +77,12 @@ exports.TranslateObject3DTool = Montage.create(Translate3DToolBase, { | |||
77 | else | 77 | else |
78 | { | 78 | { |
79 | this._delta = null; | 79 | this._delta = null; |
80 | //if(this._handleMode === 2) { | 80 | this._dragPlane = viewUtils.getNormalToUnprojectedElementPlane(this._target, this._handleMode, (this._inLocalMode && (this.application.ninja.selectedElements.length === 1))); |
81 | this._dragPlane = viewUtils.getNormalToUnprojectedElementPlane(this._target, this._handleMode, this._inLocalMode); | 81 | snapManager.setupDragPlaneFromPlane(this._dragPlane); |
82 | //console.log( "dragPlane: " + this._dragPlane ); | 82 | do3DSnap = false; |
83 | snapManager.setupDragPlaneFromPlane(this._dragPlane); | 83 | |
84 | do3DSnap = false; | 84 | snapManager.enableElementSnap ( false ); |
85 | 85 | snapManager.enableGridSnap ( false ); | |
86 | snapManager.enableElementSnap ( false ); | ||
87 | snapManager.enableGridSnap ( false ); | ||
88 | //} | ||
89 | } | 86 | } |
90 | 87 | ||
91 | if(this.application.ninja.selectedElements.length) { | 88 | if(this.application.ninja.selectedElements.length) { |
@@ -95,7 +92,7 @@ exports.TranslateObject3DTool = Montage.create(Translate3DToolBase, { | |||
95 | // a snap on the mouse down | 92 | // a snap on the mouse down |
96 | var hitRec = snapManager.snap(point.x, point.y, do3DSnap); | 93 | var hitRec = snapManager.snap(point.x, point.y, do3DSnap); |
97 | 94 | ||
98 | if(this._handleMode === 2) | 95 | if(this._handleMode !== null) |
99 | { | 96 | { |
100 | // translate z doesn't snap to element so hitRec's element will always be different | 97 | // translate z doesn't snap to element so hitRec's element will always be different |
101 | // from what the browser says we clicked on. So, skip this check. | 98 | // from what the browser says we clicked on. So, skip this check. |
@@ -135,7 +132,7 @@ exports.TranslateObject3DTool = Montage.create(Translate3DToolBase, { | |||
135 | snapManager.enableSnapAlign( snapManager.snapAlignEnabledAppLevel() ); | 132 | snapManager.enableSnapAlign( snapManager.snapAlignEnabledAppLevel() ); |
136 | } | 133 | } |
137 | 134 | ||
138 | if(this._handleMode === 2) | 135 | if(this._handleMode !== null) |
139 | this.clickedObject = this._target; | 136 | this.clickedObject = this._target; |
140 | 137 | ||
141 | // parameterize the snap point on the target | 138 | // parameterize the snap point on the target |