diff options
Diffstat (limited to 'js/helper-classes')
30 files changed, 639 insertions, 329 deletions
diff --git a/js/helper-classes/3D/draw-utils.js b/js/helper-classes/3D/draw-utils.js index 3fd6e8fc..fd96af4d 100644 --- a/js/helper-classes/3D/draw-utils.js +++ b/js/helper-classes/3D/draw-utils.js | |||
@@ -107,6 +107,7 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
107 | 107 | ||
108 | this.eventManager.addEventListener("elementAdded", this, false); | 108 | this.eventManager.addEventListener("elementAdded", this, false); |
109 | this.eventManager.addEventListener("elementDeleted", this, false); | 109 | this.eventManager.addEventListener("elementDeleted", this, false); |
110 | this.eventManager.addEventListener("elementChange", this, false); | ||
110 | } | 111 | } |
111 | }, | 112 | }, |
112 | 113 | ||
@@ -124,6 +125,27 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
124 | }, | 125 | }, |
125 | 126 | ||
126 | 127 | ||
128 | handleElementChange: { | ||
129 | value: function(event) { | ||
130 | var els = event.detail.data.els; | ||
131 | if(els) | ||
132 | { | ||
133 | var len = els.length, | ||
134 | i = 0, | ||
135 | item, | ||
136 | el; | ||
137 | |||
138 | for(i=0; i < len; i++) { | ||
139 | item = els[i]; | ||
140 | el = item._element || item; | ||
141 | el.elementModel.props3D.elementPlane.init(); | ||
142 | } | ||
143 | |||
144 | this.drawWorkingPlane(); | ||
145 | } | ||
146 | } | ||
147 | }, | ||
148 | |||
127 | /////////////////////////////////////////////////////////////////////// | 149 | /////////////////////////////////////////////////////////////////////// |
128 | // Methods | 150 | // Methods |
129 | /////////////////////////////////////////////////////////////////////// | 151 | /////////////////////////////////////////////////////////////////////// |
@@ -150,6 +172,7 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
150 | plane.setElement( elt ); | 172 | plane.setElement( elt ); |
151 | plane.init(); | 173 | plane.init(); |
152 | this._planesArray.push( plane ); | 174 | this._planesArray.push( plane ); |
175 | elt.elementModel.props3D.elementPlane = plane; | ||
153 | } | 176 | } |
154 | }, | 177 | }, |
155 | 178 | ||
@@ -166,6 +189,8 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
166 | 189 | ||
167 | // Then remove the element | 190 | // Then remove the element |
168 | this._eltArray.splice(i, 1); | 191 | this._eltArray.splice(i, 1); |
192 | |||
193 | // TODO - May need to delete props3D and elementPlane as well | ||
169 | return; | 194 | return; |
170 | } | 195 | } |
171 | } | 196 | } |
@@ -1064,7 +1089,8 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, { | |||
1064 | var resMat = glmat4.multiply( tMat, mat, [] ); | 1089 | var resMat = glmat4.multiply( tMat, mat, [] ); |
1065 | var origin = [0,0,0,1]; | 1090 | var origin = [0,0,0,1]; |
1066 | 1091 | ||
1067 | var arrowSize = 50; | 1092 | var zoomFactor = this.application.ninja.documentBar.zoomFactor/100.0; |
1093 | var arrowSize = 50 / zoomFactor; | ||
1068 | var xAxis = [arrowSize,0,0,1]; | 1094 | var xAxis = [arrowSize,0,0,1]; |
1069 | //var rO = resMat.multiply(origin); | 1095 | //var rO = resMat.multiply(origin); |
1070 | var rO = glmat4.multiplyVec3( resMat, origin, []); | 1096 | var rO = glmat4.multiplyVec3( resMat, origin, []); |
diff --git a/js/helper-classes/3D/snap-manager.js b/js/helper-classes/3D/snap-manager.js index 3ed96082..8819f637 100644 --- a/js/helper-classes/3D/snap-manager.js +++ b/js/helper-classes/3D/snap-manager.js | |||
@@ -1780,7 +1780,7 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
1780 | var mergedSnap = this.mergeHitRecords( hitRecs ); | 1780 | var mergedSnap = this.mergeHitRecords( hitRecs ); |
1781 | if (mergedSnap) | 1781 | if (mergedSnap) |
1782 | { | 1782 | { |
1783 | while (hitRecs.length > 0) hitRecs.pop(); | 1783 | while (hitRecs.length > 0) hitRecs.pop(); |
1784 | hitRecs.push( mergedSnap ); | 1784 | hitRecs.push( mergedSnap ); |
1785 | //console.log( "merged snaps" ); | 1785 | //console.log( "merged snaps" ); |
1786 | } | 1786 | } |
@@ -1836,6 +1836,9 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
1836 | hSnap.setLocalPoint( localPt ); | 1836 | hSnap.setLocalPoint( localPt ); |
1837 | hSnap.setScreenPoint( scrPt ); | 1837 | hSnap.setScreenPoint( scrPt ); |
1838 | hSnap.setType( hSnap.SNAP_TYPE_ALIGN_MERGED ); | 1838 | hSnap.setType( hSnap.SNAP_TYPE_ALIGN_MERGED ); |
1839 | hSnap.setElement( stage ); | ||
1840 | hSnap.setPlane( [0,0,1,0] ); | ||
1841 | hSnap.setPlaneMatrix( Matrix.I(4) ); | ||
1839 | if (vSnap.hasAssociatedScreenPoint() ) | 1842 | if (vSnap.hasAssociatedScreenPoint() ) |
1840 | hSnap.setAssociatedScreenPoint( vSnap.getAssociatedScreenPoint() ); | 1843 | hSnap.setAssociatedScreenPoint( vSnap.getAssociatedScreenPoint() ); |
1841 | if (vSnap.hasAssociatedScreenPoint2() ) | 1844 | if (vSnap.hasAssociatedScreenPoint2() ) |
@@ -1882,6 +1885,9 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
1882 | hSnap.setLocalPoint( localPt ); | 1885 | hSnap.setLocalPoint( localPt ); |
1883 | hSnap.setScreenPoint( scrPt ); | 1886 | hSnap.setScreenPoint( scrPt ); |
1884 | hSnap.setType( hSnap.SNAP_TYPE_ALIGN_MERGED ); | 1887 | hSnap.setType( hSnap.SNAP_TYPE_ALIGN_MERGED ); |
1888 | hSnap.setElement( stage ); | ||
1889 | hSnap.setPlane( [0,0,1,0] ); | ||
1890 | hSnap.setPlaneMatrix( Matrix.I(4) ); | ||
1885 | if (vSnap.hasAssociatedScreenPoint() ) | 1891 | if (vSnap.hasAssociatedScreenPoint() ) |
1886 | hSnap.setAssociatedScreenPoint( vSnap.getAssociatedScreenPoint() ); | 1892 | hSnap.setAssociatedScreenPoint( vSnap.getAssociatedScreenPoint() ); |
1887 | if (vSnap.hasAssociatedScreenPoint2() ) | 1893 | if (vSnap.hasAssociatedScreenPoint2() ) |
@@ -1934,6 +1940,9 @@ var SnapManager = exports.SnapManager = Montage.create(Component, { | |||
1934 | hSnap.setLocalPoint( localPt ); | 1940 | hSnap.setLocalPoint( localPt ); |
1935 | hSnap.setScreenPoint( scrPt ); | 1941 | hSnap.setScreenPoint( scrPt ); |
1936 | hSnap.setType( hSnap.SNAP_TYPE_ALIGN_MERGED ); | 1942 | hSnap.setType( hSnap.SNAP_TYPE_ALIGN_MERGED ); |
1943 | hSnap.setElement( stage ); | ||
1944 | hSnap.setPlane( [0,0,1,0] ); | ||
1945 | hSnap.setPlaneMatrix( Matrix.I(4) ); | ||
1937 | if (vSnap.hasAssociatedScreenPoint() ) | 1946 | if (vSnap.hasAssociatedScreenPoint() ) |
1938 | hSnap.setAssociatedScreenPoint( vSnap.getAssociatedScreenPoint() ); | 1947 | hSnap.setAssociatedScreenPoint( vSnap.getAssociatedScreenPoint() ); |
1939 | if (vSnap.hasAssociatedScreenPoint2() ) | 1948 | if (vSnap.hasAssociatedScreenPoint2() ) |
diff --git a/js/helper-classes/Properties3D.js b/js/helper-classes/Properties3D.js deleted file mode 100644 index 42499877..00000000 --- a/js/helper-classes/Properties3D.js +++ /dev/null | |||
@@ -1,82 +0,0 @@ | |||
1 | /* <copyright> | ||
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | ||
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | ||
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | ||
5 | </copyright> */ | ||
6 | |||
7 | /* Class that holds all 3d properties per element. | ||
8 | */ | ||
9 | |||
10 | exports.Properties3D = Object.create(Object.prototype, { | ||
11 | m_element : {value : null, writable:true, enumerable:true, configurable:true}, | ||
12 | |||
13 | // m_upVector : {value : Vector.create( [0,1,0] ), writable: true, enumerable: true, configurable: true}, | ||
14 | m_azimuth : {value : 0.0, writable: true, enumerable: true, configurable: true}, | ||
15 | m_altitude : {value : 0.0, writable: true, enumerable: true, configurable: true}, | ||
16 | |||
17 | m_transformCtr : {value : null, writable: true, enumerable: true, configurable: true}, | ||
18 | // m_targetPos : {value : Vector.create( [0,0,0] ), writable: true, enumerable: true, configurable: true}, | ||
19 | |||
20 | m_endAzimuth : {value : 0, writable: true, enumerable: true, configurable: true}, | ||
21 | m_endAltitude : {value : 0, writable: true, enumerable: true, configurable: true}, | ||
22 | |||
23 | // m_objStartPos : {value : Vector.create( [0,0,0] ), writable: true, enumerable: true, configurable: true}, | ||
24 | |||
25 | //TODO - not sure if this should be part of the tool or stage or a utility | ||
26 | perspectiveDist : { value : 1400, writable: true, enumerable: true, configurable: true}, | ||
27 | |||
28 | // keep a referenceto the GLWorld (if any) | ||
29 | _world : {value : null, writable:true, enumerable:true, configurable:true}, | ||
30 | |||
31 | // keep a flag indicating the element is in the 2D snap cache | ||
32 | _eltIsIn2DSnapCache : { value: false, writable: true, enumerable: true, configurable: true}, | ||
33 | |||
34 | Init : { | ||
35 | value : function(elt) | ||
36 | { | ||
37 | this.m_element = elt; | ||