aboutsummaryrefslogtreecommitdiff
path: root/js/tools/RotateStage3DTool.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tools/RotateStage3DTool.js')
-rwxr-xr-xjs/tools/RotateStage3DTool.js22
1 files changed, 11 insertions, 11 deletions
diff --git a/js/tools/RotateStage3DTool.js b/js/tools/RotateStage3DTool.js
index 2b312e53..a980bf73 100755
--- a/js/tools/RotateStage3DTool.js
+++ b/js/tools/RotateStage3DTool.js
@@ -7,10 +7,8 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
7var Montage = require("montage/core/core").Montage, 7var Montage = require("montage/core/core").Montage,
8 Rotate3DToolBase = require("js/tools/Rotate3DToolBase").Rotate3DToolBase, 8 Rotate3DToolBase = require("js/tools/Rotate3DToolBase").Rotate3DToolBase,
9 toolHandleModule = require("js/stage/tool-handle"), 9 toolHandleModule = require("js/stage/tool-handle"),
10 snapManager = require("js/helper-classes/3D/snap-manager").SnapManager,
11 viewUtils = require("js/helper-classes/3D/view-utils").ViewUtils, 10 viewUtils = require("js/helper-classes/3D/view-utils").ViewUtils,
12 vecUtils = require("js/helper-classes/3D/vec-utils").VecUtils, 11 vecUtils = require("js/helper-classes/3D/vec-utils").VecUtils,
13 drawUtils = require("js/helper-classes/3D/draw-utils").DrawUtils,
14 ElementsMediator = require("js/mediators/element-mediator").ElementMediator; 12 ElementsMediator = require("js/mediators/element-mediator").ElementMediator;
15 13
16exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, { 14exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, {
@@ -23,6 +21,7 @@ exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, {
23 21
24 _initializeToolHandles: { 22 _initializeToolHandles: {
25 value: function() { 23 value: function() {
24 this.rotateStage = true;
26 if(!this._handles) 25 if(!this._handles)
27 { 26 {
28 this._handles = []; 27 this._handles = [];
@@ -62,7 +61,6 @@ exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, {
62 61
63 _updateTargets: { 62 _updateTargets: {
64 value: function(addToUndoStack) { 63 value: function(addToUndoStack) {
65 this._targets = [];
66 var elt = this._target; 64 var elt = this._target;
67 65
68 var curMat = viewUtils.getMatrixFromElement(elt); 66 var curMat = viewUtils.getMatrixFromElement(elt);
@@ -74,16 +72,17 @@ exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, {
74 72
75 eltCtr = viewUtils.localToGlobal(eltCtr, elt); 73 eltCtr = viewUtils.localToGlobal(eltCtr, elt);
76 74
77 this._targets.push({elt:elt, mat:curMat, matInv:curMatInv, ctr:eltCtr}); 75 elt.elementModel.setProperty("mat", curMat);
76 elt.elementModel.setProperty("matInv", curMatInv);
77 elt.elementModel.setProperty("ctr", eltCtr);
78 78
79 viewUtils.setMatrixForElement( elt, curMat, false ); 79 ElementsMediator.setMatrix(elt, curMat, false, "rotateStage3DTool");
80 } 80 }
81 }, 81 },
82 82
83 captureSelectionDrawn: { 83 captureSelectionDrawn: {
84 value: function(event){ 84 value: function(event){
85 this._origin = null; 85 this._origin = null;
86 this._targets = [];
87 this._startOriginArray = null; 86 this._startOriginArray = null;
88 87
89 var stage = this.application.ninja.currentDocument.documentRoot; 88 var stage = this.application.ninja.currentDocument.documentRoot;
@@ -93,12 +92,12 @@ exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, {
93 var eltCtr = viewUtils.getCenterOfProjection(); 92 var eltCtr = viewUtils.getCenterOfProjection();
94 viewUtils.popViewportObj(); 93 viewUtils.popViewportObj();
95 94
96 this._targets = [];
97
98 var curMat = viewUtils.getMatrixFromElement(stage); 95 var curMat = viewUtils.getMatrixFromElement(stage);
99 var curMatInv = glmat4.inverse(curMat, []); 96 var curMatInv = glmat4.inverse(curMat, []);
100 97
101 this._targets.push({elt:stage, mat:curMat, matInv:curMatInv, ctr:eltCtr}); 98 stage.elementModel.setProperty("mat", curMat);
99 stage.elementModel.setProperty("matInv", curMatInv);
100 stage.elementModel.setProperty("ctr", eltCtr);
102 101
103 var ctrOffset = stage.elementModel.props3D.m_transformCtr; 102 var ctrOffset = stage.elementModel.props3D.m_transformCtr;
104 if(ctrOffset) 103 if(ctrOffset)
@@ -130,7 +129,8 @@ exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, {
130 // Reset stage to identity matrix 129 // Reset stage to identity matrix
131 var iMat = Matrix.I(4); 130 var iMat = Matrix.I(4);
132 131
133 ElementsMediator.setMatrix(this.application.ninja.currentDocument.documentRoot, iMat, false); 132 ElementsMediator.setMatrix(this.application.ninja.currentDocument.documentRoot,
133 iMat, false, "rotateStage3DTool");
134 this.application.ninja.currentDocument.documentRoot.elementModel.props3D.m_transformCtr = null; 134 this.application.ninja.currentDocument.documentRoot.elementModel.props3D.m_transformCtr = null;
135 135
136 // let the document and stage manager know about the zoom change 136 // let the document and stage manager know about the zoom change
@@ -148,6 +148,6 @@ exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, {
148// this.UpdateSelection(true); 148// this.UpdateSelection(true);
149 this.Configure(true); 149 this.Configure(true);
150 } 150 }
151 } 151 }
152 152
153}); 153});