diff options
author | Nivesh Rajbhandari | 2012-02-08 15:13:25 -0800 |
---|---|---|
committer | Nivesh Rajbhandari | 2012-02-08 15:13:25 -0800 |
commit | 529463fad4cf0a13293187b47e6b5081f3446cad (patch) | |
tree | b8321fca75077eb8941b646fd0fa83f38e1acd57 /js/helper-classes | |
parent | 5d4002b7a920a53ea02b0e8caeaec80b804995e4 (diff) | |
download | ninja-529463fad4cf0a13293187b47e6b5081f3446cad.tar.gz |
Merging snap manager fix for infinite projection errors when stage view is changed to top or side.
Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com>
Diffstat (limited to 'js/helper-classes')
-rw-r--r-- | js/helper-classes/3D/snap-manager.js | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/js/helper-classes/3D/snap-manager.js b/js/helper-classes/3D/snap-manager.js index 3af7d8cf..0a950658 100644 --- a/js/helper-classes/3D/snap-manager.js +++ b/js/helper-classes/3D/snap-manager.js | |||
@@ -970,13 +970,12 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
970 | value: function( screenPt, hitRecs ) { | 970 | value: function( screenPt, hitRecs ) { |
971 | // start at the stage. | 971 | // start at the stage. |
972 | var stage = this.getStage(); | 972 | var stage = this.getStage(); |
973 | //var stagePt = viewUtils.parentToChild( screenPt, stage ); | ||
974 | 973 | ||
975 | // the root should be the 'view' canvas, so the first matrix is the camera | 974 | // the root should be the 'view' canvas, so the first matrix is the camera |
976 | viewUtils.setViewportObj( stage ); | 975 | viewUtils.setViewportObj( stage ); |
977 | 976 | ||
978 | MathUtils.makeDimension3( screenPt ); | 977 | MathUtils.makeDimension3( screenPt ); |
979 | this.hSnapToElements( stage, screenPt, hitRecs, 0, screenPt ); | 978 | this.hSnapToElements( stage, hitRecs, 0, screenPt ); |
980 | 979 | ||
981 | return; | 980 | return; |
982 | } | 981 | } |
@@ -984,7 +983,7 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
984 | 983 | ||
985 | hSnapToElements : | 984 | hSnapToElements : |
986 | { | 985 | { |
987 | value: function( elt, parentPt, hitRecs, depth, globalScrPt ) | 986 | value: function( elt, hitRecs, depth, globalScrPt ) |
988 | { | 987 | { |
989 | // hit test the current object | 988 | // hit test the current object |
990 | var hit; | 989 | var hit; |
@@ -993,11 +992,9 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
993 | // if the element is in the 2D cache snapping is done there | 992 | // if the element is in the 2D cache snapping is done there |
994 | if (elt.elementModel && !elt.elementModel.isIn2DSnapCache) | 993 | if (elt.elementModel && !elt.elementModel.isIn2DSnapCache) |
995 | { | 994 | { |
996 | var scrPt = viewUtils.parentToChild( parentPt, elt, false ); | 995 | hit = this.snapToElement( elt, globalScrPt ); |
997 | hit = this.snapToElement( elt, scrPt, globalScrPt ); | ||
998 | if (hit) | 996 | if (hit) |
999 | { | 997 | { |
1000 | //hitRecs.push( hit ); | ||
1001 | if (!hit.checkType()) | 998 | if (!hit.checkType()) |
1002 | { | 999 | { |
1003 | console.log( "invalid hit record: " + hit.getTypeString() ); | 1000 | console.log( "invalid hit record: " + hit.getTypeString() ); |
@@ -1016,17 +1013,14 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
1016 | } | 1013 | } |
1017 | // test the rest of the tree | 1014 | // test the rest of the tree |
1018 | var n = elt.childElementCount; | 1015 | var n = elt.childElementCount; |
1019 | var eltPt = viewUtils.parentToChild( parentPt, elt, true ); | ||
1020 | if (n > 0) | 1016 | if (n > 0) |
1021 | { | 1017 | { |
1022 | for (var i=0; i<n; i++) | 1018 | for (var i=0; i<n; i++) |
1023 | { | 1019 | { |
1024 | var child = elt.children[i]; | 1020 | var child = elt.children[i]; |
1025 | //var childPt = viewUtils.parentToChild( scrPt, child ); | 1021 | hit = this.hSnapToElements( child, hitRecs, (depth+1), globalScrPt ); |
1026 | hit = this.hSnapToElements( child, eltPt, hitRecs, (depth+1), globalScrPt ); | ||
1027 | if (hit) | 1022 | if (hit) |
1028 | { | 1023 | { |
1029 | //hitRecs.push( hit ); | ||
1030 | if (!hit.checkType()) | 1024 | if (!hit.checkType()) |
1031 | { | 1025 | { |
1032 | console.log( "invalid hit record: " + hit.getTypeString() ); | 1026 | console.log( "invalid hit record: " + hit.getTypeString() ); |
@@ -1034,7 +1028,6 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
1034 | } | 1028 | } |
1035 | else | 1029 | else |
1036 | hitRecs.push( hit ); | 1030 | hitRecs.push( hit ); |
1037 | |||
1038 | } | 1031 | } |
1039 | } | 1032 | } |
1040 | } | 1033 | } |
@@ -1043,7 +1036,7 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
1043 | 1036 | ||
1044 | snapToElement : | 1037 | snapToElement : |
1045 | { | 1038 | { |
1046 | value: function( elt, scrPt, globalScrPt ) | 1039 | value: function( elt, globalScrPt ) |
1047 | { | 1040 | { |
1048 | if (this.isAvoidedElement(elt) ) return null; | 1041 | if (this.isAvoidedElement(elt) ) return null; |
1049 | 1042 | ||