aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/3D/view-utils.js
diff options
context:
space:
mode:
authorValerio Virgillito2012-07-09 14:35:44 -0700
committerValerio Virgillito2012-07-09 14:35:44 -0700
commit84b3327bd92faafab7954b5eb64c7abe24a3fe13 (patch)
tree3f56cbed2f08c5a81ea79eaf0bcb9bd031d8a627 /js/helper-classes/3D/view-utils.js
parentc0a42c56f768a873ba637f5b86d5f6a84d4a3312 (diff)
parent40c6eb2c06b34f65a74d59ef9687251952858bab (diff)
downloadninja-84b3327bd92faafab7954b5eb64c7abe24a3fe13.tar.gz
Merge branch 'normalize' of https://github.com/kriskowal/ninja-internal
Conflicts: js/components/gradientpicker.reel/gradientpicker.js js/components/tools-properties/text-properties.reel/text-properties.js js/document/views/base.js js/document/views/design.js js/helper-classes/3D/StageLine.js js/helper-classes/3D/draw-utils.js js/lib/drawing/world.js js/lib/geom/circle.js js/lib/geom/line.js js/lib/geom/rectangle.js js/lib/geom/shape-primitive.js js/lib/rdge/materials/bump-metal-material.js js/lib/rdge/materials/flag-material.js js/lib/rdge/materials/fly-material.js js/lib/rdge/materials/julia-material.js js/lib/rdge/materials/keleidoscope-material.js js/lib/rdge/materials/mandel-material.js js/lib/rdge/materials/material.js js/lib/rdge/materials/plasma-material.js js/lib/rdge/materials/pulse-material.js js/lib/rdge/materials/radial-gradient-material.js js/lib/rdge/materials/taper-material.js js/lib/rdge/materials/twist-vert-material.js js/lib/rdge/materials/water-material.js js/panels/Materials/materials-library-panel.reel/materials-library-panel.html js/panels/Materials/materials-library-panel.reel/materials-library-panel.js js/panels/Materials/materials-popup.reel/materials-popup.html js/panels/Materials/materials-popup.reel/materials-popup.js js/tools/LineTool.js Signed-off-by: Valerio Virgillito <valerio@motorola.com>
Diffstat (limited to 'js/helper-classes/3D/view-utils.js')
-rwxr-xr-xjs/helper-classes/3D/view-utils.js328
1 files changed, 164 insertions, 164 deletions
diff --git a/js/helper-classes/3D/view-utils.js b/js/helper-classes/3D/view-utils.js
index 3462428f..b7070840 100755
--- a/js/helper-classes/3D/view-utils.js
+++ b/js/helper-classes/3D/view-utils.js
@@ -140,15 +140,15 @@ exports.ViewUtils = Montage.create(Component, {
140 }, 140 },
141 141
142 /* 142 /*
143 * This method will return a normal to a plane containing the Z axis and either the 143 * This method will return a normal to a plane containing the Z axis and either the
144 * x or y axis of the element. 144 * x or y axis of the element.
145 */ 145 */
146 getNormalToUnprojectedElementPlane: 146 getNormalToUnprojectedElementPlane:
147 { 147 {
148 value: function( elt, axis, localMode ) 148 value: function( elt, axis, localMode )
149 { 149 {
150 var objMat = this.getMatrixFromElement(elt); 150 var objMat = this.getMatrixFromElement(elt);
151 var objMatInv = glmat4.inverse( objMat, [] ); 151 var objMatInv = glmat4.inverse( objMat, [] );
152 152
153 var xVec = [1,0,0]; 153 var xVec = [1,0,0];
154 var yVec = [0,1,0]; 154 var yVec = [0,1,0];
@@ -157,55 +157,55 @@ exports.ViewUtils = Montage.create(Component, {
157 var stage = this.application.ninja.currentDocument.model.documentRoot; 157 var stage = this.application.ninja.currentDocument.model.documentRoot;
158 var stageMat = this.getMatrixFromElement(stage); 158 var stageMat = this.getMatrixFromElement(stage);
159 159
160 var mat = glmat4.multiply( stageMat, objMat, [] ); 160 var mat = glmat4.multiply( stageMat, objMat, [] );
161 161
162 var viewDir; 162 var viewDir;
163 if (localMode) 163 if (localMode)
164 { 164 {
165 var matInv = glmat4.inverse( mat, [] ); 165 var matInv = glmat4.inverse( mat, [] );
166 viewDir = MathUtils.transformVector( [0,0,1], matInv ); 166 viewDir = MathUtils.transformVector( [0,0,1], matInv );
167 } 167 }
168 else 168 else
169 { 169 {
170 var stageInv = glmat4.inverse( stageMat, [] ); 170 var stageInv = glmat4.inverse( stageMat, [] );
171 viewDir = MathUtils.transformVector( [0,0,1], stageInv ); 171 viewDir = MathUtils.transformVector( [0,0,1], stageInv );
172 } 172 }
173 173
174 var plane; 174 var plane;
175 var xDot, yDot, zDot; 175 var xDot, yDot, zDot;
176 switch (axis) 176 switch (axis)
177 { 177 {
178 case 0: 178 case 0:
179 yDot = Math.abs(vecUtils.vecDot(3, yVec, viewDir)); 179 yDot = Math.abs(vecUtils.vecDot(3, yVec, viewDir));
180 zDot = Math.abs(vecUtils.vecDot(3, zVec, viewDir)); 180 zDot = Math.abs(vecUtils.vecDot(3, zVec, viewDir));
181 if(yDot > zDot) 181 if(yDot > zDot)
182 plane = vecUtils.vecCross( 3, zVec, xVec ); 182 plane = vecUtils.vecCross( 3, zVec, xVec );
183 else 183 else
184 plane = vecUtils.vecCross( 3, yVec, xVec ); 184 plane = vecUtils.vecCross( 3, yVec, xVec );
185 break; 185 break;
186 186
187 case 1: 187 case 1:
188 xDot = Math.abs(vecUtils.vecDot(3, yVec, viewDir)); 188 xDot = Math.abs(vecUtils.vecDot(3, yVec, viewDir));
189 zDot = Math.abs(vecUtils.vecDot(3, zVec, viewDir)); 189 zDot = Math.abs(vecUtils.vecDot(3, zVec, viewDir));
190 if(xDot > zDot) 190 if(xDot > zDot)
191 plane = vecUtils.vecCross( 3, zVec, yVec ); 191 plane = vecUtils.vecCross( 3, zVec, yVec );
192 else 192 else
193 plane = vecUtils.vecCross( 3, xVec, yVec ); 193 plane = vecUtils.vecCross( 3, xVec, yVec );
194 break; 194 break;
195 break; 195 break;
196 196
197 case 2: 197 case 2:
198 xDot = Math.abs(vecUtils.vecDot(3, xVec, viewDir)); 198 xDot = Math.abs(vecUtils.vecDot(3, xVec, viewDir));
199 yDot = Math.abs(vecUtils.vecDot(3, yVec, viewDir)); 199 yDot = Math.abs(vecUtils.vecDot(3, yVec, viewDir));
200 200
201 if(xDot > yDot) 201 if(xDot > yDot)
202 plane = vecUtils.vecCross( 3, yVec, zVec ); 202 plane = vecUtils.vecCross( 3, yVec, zVec );
203 else 203 else
204 plane = vecUtils.vecCross( 3, xVec, zVec ); 204 plane = vecUtils.vecCross( 3, xVec, zVec );
205 break; 205 break;
206 } 206 }
207 207
208 if (localMode) plane = MathUtils.transformVector( plane, objMat ); 208 if (localMode) plane = MathUtils.transformVector( plane, objMat );
209 209
210 // The translation value is a point on the plane 210 // The translation value is a point on the plane
211 this.pushViewportObj( elt ); 211 this.pushViewportObj( elt );
@@ -332,11 +332,11 @@ exports.ViewUtils = Montage.create(Component, {
332 value: function( localPt, elt ) { 332 value: function( localPt, elt ) {
333 this.pushViewportObj( elt ); 333 this.pushViewportObj( elt );
334 var viewPt = this.screenToView( localPt[0], localPt[1], localPt[2] ); 334 var viewPt = this.screenToView( localPt[0], localPt[1], localPt[2] );
335 if ((elt == null) || (elt === this._stageElement)) 335 if ((elt == null) || (elt === this._stageElement))
336 { 336 {
337 this.popViewportObj(); 337 this.popViewportObj();
338 return viewPt; 338 return viewPt;
339 } 339 }
340 var mat = this.getMatrixFromElement( elt ); 340 var mat = this.getMatrixFromElement( elt );
341 var worldPt = MathUtils.transformPoint( viewPt, mat ); 341 var worldPt = MathUtils.transformPoint( viewPt, mat );
342 var stageWorldPt = this.postViewToStageWorld( worldPt, elt ); 342 var stageWorldPt = this.postViewToStageWorld( worldPt, elt );
@@ -571,7 +571,7 @@ exports.ViewUtils = Montage.create(Component, {
571 return localPlane; 571 return localPlane;
572 } 572 }
573 }, 573 },
574 574
575 parentToChild: { 575 parentToChild: {
576 value: function( parentPt, child, passthrough ) { 576 value: function( parentPt, child, passthrough ) {
577 var pt = parentPt.slice(0); 577 var pt = parentPt.slice(0);
@@ -620,7 +620,7 @@ exports.ViewUtils = Montage.create(Component, {
620 return childPt; 620 return childPt;
621 } 621 }
622 }, 622 },
623 623
624 parentToChildWorld: { 624 parentToChildWorld: {
625 value: function( parentPt, child ) { 625 value: function( parentPt, child ) {
626 var pt = parentPt.slice(0); 626 var pt = parentPt.slice(0);
@@ -694,7 +694,7 @@ exports.ViewUtils = Montage.create(Component, {
694 return vec; 694 return vec;
695 } 695 }
696 }, 696 },
697 697
698 getElementBounds: { 698 getElementBounds: {
699 value: function( elt, localSpace ) { 699 value: function( elt, localSpace ) {
700 // optional argument localSpace, if true, puts the top left at (0,0). 700 // optional argument localSpace, if true, puts the top left at (0,0).
@@ -876,7 +876,7 @@ exports.ViewUtils = Montage.create(Component, {
876 } 876 }
877 }, 877 },
878 878
879 879
880 unproject: { 880 unproject: {
881 value: function( pt ) { 881 value: function( pt ) {
882 if(!this._perspectiveDist) 882 if(!this._perspectiveDist)
@@ -968,7 +968,7 @@ exports.ViewUtils = Montage.create(Component, {
968 return viewPt; 968 return viewPt;
969 } 969 }
970 }, 970 },
971 971
972 globalScreenToLocalWorld: { 972 globalScreenToLocalWorld: {
973 value: function( globalPt, elt ) { 973 value: function( globalPt, elt ) {
974 var objPt = this.globalToLocal( globalPt, elt ); 974 var objPt = this.globalToLocal( globalPt, elt );
@@ -1336,40 +1336,40 @@ exports.ViewUtils = Montage.create(Component, {
1336/////////////////////////////////////////////////////////////////////////////////// 1336///////////////////////////////////////////////////////////////////////////////////
1337// Montage update map 1337// Montage update map
1338// 1338//
1339// NO LONGER SUPPORTED: 1339// NO LONGER SUPPORTED:
1340// stageManagerModule 1340// stageManagerModule
1341// drawLayoutModule 1341// drawLayoutModule
1342// 1342//
1343// STAGE ACCESSORS: 1343// STAGE ACCESSORS:
1344// activeDocument: this.application.ninja.currentDocument 1344// activeDocument: this.application.ninja.currentDocument
1345// userContent (stage): this.application.ninja.currentDocument.model.documentRoot 1345// userContent (stage): this.application.ninja.currentDocument.model.documentRoot
1346// stageManager: this.application.ninja.stage // MainApp\js\stage\stage.reel\stage.js 1346// stageManager: this.application.ninja.stage // MainApp\js\stage\stage.reel\stage.js
1347// stageManager._canvas: this.application.ninja.stage.canvas 1347// stageManager._canvas: this.application.ninja.stage.canvas
1348// stageManager.layoutCanvas: this.application.ninja.stage.layoutCanvas 1348// stageManager.layoutCanvas: this.application.ninja.stage.layoutCanvas
1349// stageManager.drawingCanvas: this.application.ninja.stage.drawingCanvas 1349// stageManager.drawingCanvas: this.application.ninja.stage.draw