aboutsummaryrefslogtreecommitdiff
path: root/js/panels/properties.reel
diff options
context:
space:
mode:
Diffstat (limited to 'js/panels/properties.reel')
-rwxr-xr-xjs/panels/properties.reel/properties.js40
-rwxr-xr-xjs/panels/properties.reel/sections/three-d-view.reel/three-d-view.js91
2 files changed, 67 insertions, 64 deletions
diff --git a/js/panels/properties.reel/properties.js b/js/panels/properties.reel/properties.js
index 84b0d589..e99f58e9 100755
--- a/js/panels/properties.reel/properties.js
+++ b/js/panels/properties.reel/properties.js
@@ -13,6 +13,32 @@ var ElementsMediator = require("js/mediators/element-mediator").ElementMediator;
13 13
14exports.Properties = Montage.create(Component, { 14exports.Properties = Montage.create(Component, {
15 15
16 _currentDocument: {
17 value : null,
18 enumerable : false
19 },
20
21 currentDocument : {
22 get : function() {
23 return this._currentDocument;
24 },
25 set : function(value) {
26 if (value === this._currentDocument) {
27 return;
28 }
29
30 this._currentDocument = value;
31
32 if(this._currentDocument.currentView === "design") {
33 // Save a reference of the pi inside the document view to be able to clear
34 this._currentDocument.model.views.design.propertiesPanel = this;
35
36 // Display the default document root PI
37 this.displayElementProperties(this._currentDocument.model.documentRoot);
38 }
39 }
40 },
41
16 elementName: { 42 elementName: {
17 value: null 43 value: null
18 }, 44 },
@@ -46,7 +72,7 @@ exports.Properties = Montage.create(Component, {
46 72
47 prepareForDraw: { 73 prepareForDraw: {
48 value : function() { 74 value : function() {
49 this.eventManager.addEventListener("openDocument", this, false); 75 this.eventManager.addEventListener("elementChange", this, false);
50 this.eventManager.addEventListener("selectionChange", this, false); 76 this.eventManager.addEventListener("selectionChange", this, false);
51 this.eventManager.addEventListener("closeDocument", this, false); 77 this.eventManager.addEventListener("closeDocument", this, false);
52 78
@@ -65,18 +91,6 @@ exports.Properties = Montage.create(Component, {
65 } 91 }
66 }, 92 },
67 93
68 handleOpenDocument: {
69 value: function() {
70 this.eventManager.addEventListener( "elementChange", this, false);
71
72 // Save a reference of the pi inside the document view to be able to clear
73 this.application.ninja.currentDocument.model.views.design.propertiesPanel = this;
74
75 // Display the default document root PI
76 this.displayElementProperties(this.application.ninja.currentDocument.model.documentRoot);
77 }
78 },
79
80 handleCloseDocument: { 94 handleCloseDocument: {
81 value: function(){ 95 value: function(){
82 this.clear(); 96 this.clear();
diff --git a/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js b/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js
index e16e3509..0320c327 100755
--- a/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js
+++ b/js/panels/properties.reel/sections/three-d-view.reel/three-d-view.js
@@ -26,8 +26,7 @@ exports.ThreeD = Montage.create(Component, {
26 set: function(value) { 26 set: function(value) {
27 this._axisMode = value; 27 this._axisMode = value;
28 28
29 if(value === 0) 29 if(value === 0) {
30 {
31 this.inGlobalMode = false; 30 this.inGlobalMode = false;
32 this.x3D = 0; 31 this.x3D = 0;
33 this.y3D = 0; 32 this.y3D = 0;
@@ -36,13 +35,10 @@ exports.ThreeD = Montage.create(Component, {
36 this.xAngle = 0; 35 this.xAngle = 0;
37 this.yAngle = 0; 36 this.yAngle = 0;
38 this.zAngle = 0; 37 this.zAngle = 0;
39 } 38 } else {
40 else
41 {
42 this.inGlobalMode = true; 39 this.inGlobalMode = true;
43 var item = this.item; 40 var item = this.item;
44 if(item) 41 if(item) {
45 {
46 this.x3D = item.elementModel.props3D.x3D; 42 this.x3D = item.elementModel.props3D.x3D;
47 this.y3D = item.elementModel.props3D.y3D; 43 this.y3D = item.elementModel.props3D.y3D;
48 this.z3D = item.elementModel.props3D.z3D; 44 this.z3D = item.elementModel.props3D.z3D;
@@ -114,8 +110,7 @@ exports.ThreeD = Montage.create(Component, {
114 handleAction: { 110 handleAction: {
115 value: function(event) { 111 value: function(event) {
116 if(event.currentTarget.identifier === "flatten") { 112 if(event.currentTarget.identifier === "flatten") {
117 this.application.ninja.elementMediator.setProperty([this.item], 113 this.application.ninja.elementMediator.setProperty([this.item], "-webkit-transform-style",
118 "-webkit-transform-style",
119 event.currentTarget.checked ? ["flat"] : ["preserve-3d"]); 114 event.currentTarget.checked ? ["flat"] : ["preserve-3d"]);
120 } 115 }
121 } 116 }
@@ -127,11 +122,7 @@ exports.ThreeD = Montage.create(Component, {
127 return; 122 return;
128 } 123 }
129 124
130 this.apply3DProperties(event.currentTarget.identifier, 125 this.apply3DProperties(event.currentTarget.identifier, event.currentTarget, this.item, this.inGlobalMode, false);
131 event.currentTarget,
132 this.item,
133 this.inGlobalMode,
134 false);
135 126
136 this._curMat = null; 127 this._curMat = null;
137 this._curProp = null; 128 this._curProp = null;
@@ -144,28 +135,24 @@ exports.ThreeD = Montage.create(Component, {
144 return; 135 return;
145 } 136 }
146 137
147 this.apply3DProperties(event.currentTarget.identifier, 138 this.apply3DProperties(event.currentTarget.identifier, event.currentTarget, this.item, this.inGlobalMode, true);
148 event.currentTarget,
149 this.item,
150 this.inGlobalMode,
151 true);
152 } 139 }
153 }, 140 },
154 141
155 apply3DProperties : { 142 apply3DProperties : {
156 value : function(prop, value, item, inGlobalMode, isChanging){ 143 value : function(prop, value, item, inGlobalMode, isChanging){
157 if(!this._curMat) 144 if(!this._curMat) {
158 {
159 this._curMat = this.application.ninja.elementMediator.getMatrix(item); 145 this._curMat = this.application.ninja.elementMediator.getMatrix(item);
160 } 146 }
147
161 var curMat = this._curMat; 148 var curMat = this._curMat;
162 var delta = value.value; 149 var delta = value.value;
163 if(inGlobalMode) 150 if(inGlobalMode) {
164 { 151
165 if(!this._curProp) 152 if(!this._curProp) {
166 {
167 this._curProp = this.application.ninja.elementMediator.get3DProperty(item, prop); 153 this._curProp = this.application.ninja.elementMediator.get3DProperty(item, prop);
168 } 154 }
155
169 delta -= this._curProp; 156 delta -= this._curProp;
170 } 157 }
171 158
@@ -193,31 +180,47 @@ exports.ThreeD = Montage.create(Component, {
193 } 180 }
194 181
195 var mat = []; 182 var mat = [];
196 if(inGlobalMode) 183 if(inGlobalMode) {
197 {
198 glmat4.multiply(xFormMat, curMat, mat); 184 glmat4.multiply(xFormMat, curMat, mat);
199 } 185 } else {
200 else
201 {
202 glmat4.multiply(curMat, xFormMat, mat); 186 glmat4.multiply(curMat, xFormMat, mat);
203 } 187 }
204 188
205 if(isChanging) 189 if(isChanging) {
206 {
207 this.application.ninja.elementMediator.setMatrix(item, mat, true); 190 this.application.ninja.elementMediator.setMatrix(item, mat, true);
208 } 191 } else {
209 else
210 {
211 this.application.ninja.elementMediator.setMatrix(item, mat, false); 192 this.application.ninja.elementMediator.setMatrix(item, mat, false);
212 193
213 if(!inGlobalMode) 194 if(!inGlobalMode) {
214 {
215 value.value = 0; 195 value.value = 0;
216 } 196 }
217 } 197 }