aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/3D
diff options
context:
space:
mode:
Diffstat (limited to 'js/helper-classes/3D')
-rwxr-xr-xjs/helper-classes/3D/ParseUtils.js84
-rwxr-xr-xjs/helper-classes/3D/Rectangle.js2
-rwxr-xr-xjs/helper-classes/3D/StageLine.js8
-rwxr-xr-xjs/helper-classes/3D/draw-utils.js12
-rwxr-xr-xjs/helper-classes/3D/element-planes.js2
-rwxr-xr-xjs/helper-classes/3D/glUtils.js319
-rwxr-xr-xjs/helper-classes/3D/math-utils.js87
-rwxr-xr-xjs/helper-classes/3D/snap-2d-record.js2
-rwxr-xr-xjs/helper-classes/3D/snap-manager.js78
-rwxr-xr-xjs/helper-classes/3D/vec-utils.js16
-rwxr-xr-xjs/helper-classes/3D/view-utils.js12
11 files changed, 131 insertions, 491 deletions
diff --git a/js/helper-classes/3D/ParseUtils.js b/js/helper-classes/3D/ParseUtils.js
deleted file mode 100755
index 556253e9..00000000
--- a/js/helper-classes/3D/ParseUtils.js
+++ /dev/null
@@ -1,84 +0,0 @@
1/* <copyright>
2This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3No 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///////////////////////////////////////////////////////////////////////
8// Class Utils
9// Vector Utility functions
10///////////////////////////////////////////////////////////////////////
11function ParseUtils( theStr )
12{
13 ///////////////////////////////////////////////////////////////////////
14 // Instance variables
15 ///////////////////////////////////////////////////////////////////////
16 this._strBuffer = theStr;
17
18 ///////////////////////////////////////////////////////////////////////
19 // Property accessors
20 ///////////////////////////////////////////////////////////////////////
21 this.getBuffer = function() { return this._strBuffer; }
22 this.setBuffer = function(b) { this._strBuffer = b; }
23
24 ///////////////////////////////////////////////////////////////////////
25 // Methods
26 ///////////////////////////////////////////////////////////////////////
27 this.nextValue = function( prop, endKeyArg, advanceBufferArg )
28 {
29 if (!this._strBuffer) return;
30
31 // make the 2 & 3rd argument optional. default is to advance the string
32 var endKey = "\n", advanceBuffer = true;
33 if (endKeyArg)
34 endKey = endKeyArg;
35 if (advanceBufferArg)
36 advanceBuffer = advanceBufferArg;
37
38 var iStart = this._strBuffer.indexOf( prop );
39 if (iStart < 0) return;
40
41 var iEnd = this._strBuffer.indexOf( endKey, iStart );
42 if (iEnd < 0) throw new Error( "property " + prop + " improperly terminated: " + this._strBuffer);
43
44 iStart += prop.length;
45 var nChars = iEnd - iStart;
46 var rtnStr = this._strBuffer.substr( iStart, nChars );
47
48 if (advanceBuffer)
49 this._strBuffer = this._strBuffer.substr( iEnd + endKey.length );
50
51 return rtnStr;
52 }
53
54 this.nextToken = function()
55 {
56 if (!this._strBuffer) return;
57
58 // find the limits
59 var index = this._strBuffer.search( /\S/ ); // first non-whitespace character
60 if (index > 0) this._strBuffer = this._strBuffer.slice(index);
61 index = this._strBuffer.search( /\s/ ); // first whitespace character marking the end of the token
62
63 var token;
64 if (index > 0)
65 {
66 token = this._strBuffer.slice(0, index);
67 this._strBuffer = this._strBuffer.slice( index );
68 }
69
70 return token;
71 }
72
73 this.advancePastToken = function( token )
74 {
75 var index = this._strBuffer.indexOf( token );
76 if (index < 0)
77 console.log( "could not find token: " + token + " in string: " + this._strBuffer );
78 else
79 this._strBuffer = this._strBuffer.substr( index + token.length );
80 }
81
82}
83
84
diff --git a/js/helper-classes/3D/Rectangle.js b/js/helper-classes/3D/Rectangle.js
index e797eedf..b8906f18 100755
--- a/js/helper-classes/3D/Rectangle.js
+++ b/js/helper-classes/3D/Rectangle.js
@@ -35,7 +35,7 @@ var Rectangle = exports.Rectangle = Object.create(Object.prototype, {
35 getTop: { value: function() { return this.m_top; } }, 35 getTop: { value: function() { return this.m_top; } },
36 setTop: { value: function(t) { this.m_top = t; } }, 36 setTop: { value: function(t) { this.m_top = t; } },
37 37
38 getCenter: { value: function() { return Vector.create( [this.m_left + 0.5*this.m_width, this.m_top + 0.5*this.m_height] ); } }, 38 getCenter: { value: function() { return [this.m_left + 0.5*this.m_width, this.m_top + 0.5*this.m_height]; } },
39 39
40 getWidth: { value: function() { return this.m_width; } }, 40 getWidth: { value: function() { return this.m_width; } },
41 setWidth: { value: function(w) { this.m_width = w; } }, 41 setWidth: { value: function(w) { this.m_width = w; } },
diff --git a/js/helper-classes/3D/StageLine.js b/js/helper-classes/3D/StageLine.js
index e0e7a8e3..b86673d1 100755
--- a/js/helper-classes/3D/StageLine.js
+++ b/js/helper-classes/3D/StageLine.js
@@ -149,8 +149,8 @@ var StageLine = exports.StageLine = Object.create(Object.prototype, {
149 var vec = vecUtils.vecSubtract(3, bPt1, bPt0); 149 var vec = vecUtils.vecSubtract(3, bPt1, bPt0);
150 if (plane.isBackFacing()) 150 if (plane.isBackFacing())
151 MathUtils.negate( vec ); 151 MathUtils.negate( vec );
152 planeEq = Vector.create( [-vec[1], vec[0], 0] ); 152 planeEq = [-vec[1], vec[0], 0];
153 var normal = Vector.create( [planeEq[0], planeEq[1], planeEq[2]] ); 153 var normal = [planeEq[0], planeEq[1], planeEq[2]];
154// var d = -planeEq.dot(bPt0); 154// var d = -planeEq.dot(bPt0);
155 var d = -vecUtils.vecDot(3, planeEq, bPt0); 155 var d = -vecUtils.vecDot(3, planeEq, bPt0);
156 planeEq[3] = d; 156 planeEq[3] = d;
@@ -414,8 +414,8 @@ var StageLine = exports.StageLine = Object.create(Object.prototype, {
414 if (pt0[1] < pt1[1]) { yMin = pt0[1]; yMax = pt1[1]; } else { yMin = pt1[1]; yMax = pt0[1]; } 414 if (pt0[1] < pt1[1]) { yMin = pt0[1]; yMax = pt1[1]; } else { yMin = pt1[1]; yMax = pt0[1]; }
415 if (pt0[2] < pt1[2]) { zMin = pt0[2]; zMax = pt1[2]; } else { zMin = pt1[2]; zMax = pt0[2]; } 415 if (pt0[2] < pt1[2]) { zMin = pt0[2]; zMax = pt1[2]; } else { zMin = pt1[2]; zMax = pt0[2]; }
416 416
417 this._minPt = Vector.create( [xMin, yMin, zMin] ); 417 this._minPt = [xMin, yMin, zMin];
418 this._maxPt = Vector.create( [xMax, yMax, zMax] ); 418 this._maxPt = [xMax, yMax, zMax];
419 } 419 }
420 }//, 420 }//,
421 421
diff --git a/js/helper-classes/3D/draw-utils.js b/js/helper-classes/3D/draw-utils.js
index 85870097..63e7799a 100755
--- a/js/helper-classes/3D/draw-utils.js
+++ b/js/helper-classes/3D/draw-utils.js
@@ -112,6 +112,7 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, {
112 this.eventManager.addEventListener("elementDeleted", this, false); 112 this.eventManager.addEventListener("elementDeleted", this, false);
113 this.eventManager.addEventListener("deleteSelection", this, false); 113 this.eventManager.addEventListener("deleteSelection", this, false);
114 this.eventManager.addEventListener("elementChange", this, false); 114 this.eventManager.addEventListener("elementChange", this, false);
115 this.eventManager.addEventListener("closeDocument", this, false);
115 } 116 }
116 }, 117 },
117 118
@@ -123,7 +124,7 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, {
123 this._planesArray = []; 124 this._planesArray = [];
124 this.setDrawingSurfaceElement(this.application.ninja.stage.canvas); 125 this.setDrawingSurfaceElement(this.application.ninja.stage.canvas);
125 this.setSourceSpaceElement( this.application.ninja.stage.stageDeps.currentStage ); 126 this.setSourceSpaceElement( this.application.ninja.stage.stageDeps.currentStage );
126 this.setWorkingPlane( Vector.create( [0,0,1,0] ) ); 127 this.setWorkingPlane( [0,0,1,0] );
127 128
128 //Loop through all the top-level children of the current document and call drawUtils.addElement on them 129 //Loop through all the top-level children of the current document and call drawUtils.addElement on them
129 if(this.application.ninja.currentDocument._liveNodeList.length > 0){ 130 if(this.application.ninja.currentDocument._liveNodeList.length > 0){
@@ -135,6 +136,15 @@ var DrawUtils = exports.DrawUtils = Montage.create(Component, {
135 } 136 }
136 }, 137 },
137 138
139 handleCloseDocument:{
140 value: function() {
141 if(this.application.ninja.documentController._documents.length === 0){
142 this._eltArray = [];
143 this._planesArray = [];
144 }
145 }
146 },
147
138 handleElementAdded: { 148 handleElementAdded: {
139 value: function(event) { 149 value: function(event) {
140 this.addElement(event.detail); 150 this.addElement(event.detail);
diff --git a/js/helper-classes/3D/element-planes.js b/js/helper-classes/3D/element-planes.js
index 7ccf311e..38a7bf47 100755
--- a/js/helper-classes/3D/element-planes.js
+++ b/js/helper-classes/3D/element-planes.js
@@ -88,7 +88,7 @@ var ElementPlanes = exports.ElementPlanes = Object.create(Object.prototype, {
88 // create the plane equation 88 // create the plane equation
89 //var d = -( nrm.dot( this._boundaryPts[0]) ); 89 //var d = -( nrm.dot( this._boundaryPts[0]) );
90 var d = -vecUtils.vecDot(3, nrm, this._boundaryPts[0]); 90 var d = -vecUtils.vecDot(3, nrm, this._boundaryPts[0]);
91 var planeEq = Vector.create( [nrm[0], nrm[1], nrm[2], d] ); 91 var planeEq = [nrm[0], nrm[1], nrm[2], d] ;
92 this.setPlaneEq( planeEq ); 92 this.setPlaneEq( planeEq );
93 93
94 // get the 2D rectangle 94 // get the 2D rectangle
diff --git a/js/helper-classes/3D/glUtils.js b/js/helper-classes/3D/glUtils.js
deleted file mode 100755
index f6d075f8..00000000
--- a/js/helper-classes/3D/glUtils.js
+++ /dev/null
@@ -1,319 +0,0 @@
1/* <copyright>
2This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3No 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// Constructor function
8function Vector() {}
9Vector.create = function(elements)
10{
11 var rtn;
12 if (elements)
13 rtn = elements.slice( 0 );
14 else
15 rtn = [];
16
17 return rtn;
18};
19
20Vector.dup = function(srcPt)
21{
22 return srcPt.slice(0);
23}
24
25
26