diff options
Diffstat (limited to 'js/helper-classes/3D')
-rwxr-xr-x | js/helper-classes/3D/LinePlaneIntersectRec.js | 30 | ||||
-rwxr-xr-x | js/helper-classes/3D/Rectangle.js | 30 | ||||
-rwxr-xr-x | js/helper-classes/3D/StageLine.js | 106 | ||||
-rwxr-xr-x | js/helper-classes/3D/draw-utils.js | 33 | ||||
-rwxr-xr-x | js/helper-classes/3D/element-planes.js | 30 | ||||
-rwxr-xr-x | js/helper-classes/3D/hit-record.js | 30 | ||||
-rwxr-xr-x | js/helper-classes/3D/math-utils.js | 33 | ||||
-rwxr-xr-x | js/helper-classes/3D/snap-2d-record.js | 30 | ||||
-rwxr-xr-x | js/helper-classes/3D/snap-manager.js | 30 | ||||
-rwxr-xr-x | js/helper-classes/3D/vec-utils.js | 32 | ||||
-rwxr-xr-x | js/helper-classes/3D/view-utils.js | 30 |
11 files changed, 345 insertions, 69 deletions
diff --git a/js/helper-classes/3D/LinePlaneIntersectRec.js b/js/helper-classes/3D/LinePlaneIntersectRec.js index cb172bf7..71ee81f4 100755 --- a/js/helper-classes/3D/LinePlaneIntersectRec.js +++ b/js/helper-classes/3D/LinePlaneIntersectRec.js | |||
@@ -1,7 +1,31 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | 2 | Copyright (c) 2012, Motorola Mobility, Inc |
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | 3 | All Rights Reserved. |
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | 4 | BSD License. |
5 | |||
6 | Redistribution and use in source and binary forms, with or without | ||
7 | modification, are permitted provided that the following conditions are met: | ||
8 | |||
9 | - Redistributions of source code must retain the above copyright notice, | ||
10 | this list of conditions and the following disclaimer. | ||
11 | - Redistributions in binary form must reproduce the above copyright | ||
12 | notice, this list of conditions and the following disclaimer in the | ||
13 | documentation and/or other materials provided with the distribution. | ||
14 | - Neither the name of Motorola Mobility nor the names of its contributors | ||
15 | may be used to endorse or promote products derived from this software | ||
16 | without specific prior written permission. | ||
17 | |||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
28 | POSSIBILITY OF SUCH DAMAGE. | ||
5 | </copyright> */ | 29 | </copyright> */ |
6 | 30 | ||
7 | /////////////////////////////////////////////////////////////////////// | 31 | /////////////////////////////////////////////////////////////////////// |
diff --git a/js/helper-classes/3D/Rectangle.js b/js/helper-classes/3D/Rectangle.js index b8906f18..1922bd91 100755 --- a/js/helper-classes/3D/Rectangle.js +++ b/js/helper-classes/3D/Rectangle.js | |||
@@ -1,7 +1,31 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | 2 | Copyright (c) 2012, Motorola Mobility, Inc |
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | 3 | All Rights Reserved. |
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | 4 | BSD License. |
5 | |||
6 | Redistribution and use in source and binary forms, with or without | ||
7 | modification, are permitted provided that the following conditions are met: | ||
8 | |||
9 | - Redistributions of source code must retain the above copyright notice, | ||
10 | this list of conditions and the following disclaimer. | ||
11 | - Redistributions in binary form must reproduce the above copyright | ||
12 | notice, this list of conditions and the following disclaimer in the | ||
13 | documentation and/or other materials provided with the distribution. | ||
14 | - Neither the name of Motorola Mobility nor the names of its contributors | ||
15 | may be used to endorse or promote products derived from this software | ||
16 | without specific prior written permission. | ||
17 | |||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
28 | POSSIBILITY OF SUCH DAMAGE. | ||
5 | </copyright> */ | 29 | </copyright> */ |
6 | 30 | ||
7 | /////////////////////////////////////////////////////////////////////// | 31 | /////////////////////////////////////////////////////////////////////// |
diff --git a/js/helper-classes/3D/StageLine.js b/js/helper-classes/3D/StageLine.js index 23e8cf5b..aaa9f95d 100755 --- a/js/helper-classes/3D/StageLine.js +++ b/js/helper-classes/3D/StageLine.js | |||
@@ -1,7 +1,31 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | 2 | Copyright (c) 2012, Motorola Mobility, Inc |
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | 3 | All Rights Reserved. |
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | 4 | BSD License. |
5 | |||
6 | Redistribution and use in source and binary forms, with or without | ||
7 | modification, are permitted provided that the following conditions are met: | ||
8 | |||
9 | - Redistributions of source code must retain the above copyright notice, | ||
10 | this list of conditions and the following disclaimer. | ||
11 | - Redistributions in binary form must reproduce the above copyright | ||
12 | notice, this list of conditions and the following disclaimer in the | ||
13 | documentation and/or other materials provided with the distribution. | ||
14 | - Neither the name of Motorola Mobility nor the names of its contributors | ||
15 | may be used to endorse or promote products derived from this software | ||
16 | without specific prior written permission. | ||
17 | |||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
28 | POSSIBILITY OF SUCH DAMAGE. | ||
5 | </copyright> */ | 29 | </copyright> */ |
6 | 30 | ||
7 | /////////////////////////////////////////////////////////////////////// | 31 | /////////////////////////////////////////////////////////////////////// |
@@ -222,49 +246,59 @@ var StageLine = exports.StageLine = Object.create(Object.prototype, { | |||
222 | if (s0 != s1) | 246 | if (s0 != s1) |
223 | { | 247 | { |
224 | var t = Math.abs(d0)/( Math.abs(d0) + Math.abs(d1) ); | 248 | var t = Math.abs(d0)/( Math.abs(d0) + Math.abs(d1) ); |
225 | if (t == 0) | 249 | if (MathUtils.fpSign(t) === 0) |
226 | { | 250 | { |
227 | if (s1 > 0) // entering the material from the beginning of the line that is to be drawn | 251 | // the first point of the line is on the (infinite) extension of a side of the boundary. |
252 | // Make sure the point (pt0) is within the range of the polygon edge | ||
253 | var vt0 = vecUtils.vecSubtract(3, pt0, bp0), | ||
254 | vt1 = vecUtils.vecSubtract(3, bp1, pt0); | ||
255 | var dt0 = vecUtils.vecDot(3, vec, vt0), | ||
256 | dt1 = vecUtils.vecDot(3, vec, vt1); | ||
257 | var st0 = MathUtils.fpSign(dt0), st1 = MathUtils.fpSign(dt1); | ||
258 | if ((st0 >= 0) && (st1 >= 0)) | ||
228 | { | 259 | { |
229 | // see if the start point of the line is at a corner of the bounded plane | 260 | if (s1 > 0) // entering the material from the beginning of the line that is to be drawn |
230 | var lineDir = vecUtils.vecSubtract(3, pt1, pt0); | ||
231 | vecUtils.vecNormalize(3, lineDir); | ||
232 | var dist = vecUtils.vecDist( 3, pt0, bp1 ); | ||
233 | var bp2, bv0, bv1, cross1, cross2, cross3; | ||
234 | if ( MathUtils.fpSign(dist) == 0) | ||
235 | { | 261 | { |
236 | bp2 = boundaryPts[(i+1) % 4]; | 262 | // see if the start point of the line is at a corner of the bounded plane |
237 | bv0 = vecUtils.vecSubtract(3, bp2, bp1); | 263 | var lineDir = vecUtils.vecSubtract(3, pt1, pt0); |
238 | bv1 = vecUtils.vecSubtract(3, bp0, bp1); | 264 | vecUtils.vecNormalize(3, lineDir); |
239 | cross1 = vecUtils.vecCross(3, bv0, lineDir); | 265 | var dist = vecUtils.vecDist( 3, pt0, bp1 ); |
240 | cross2 = vecUtils.vecCross(3, lineDir, bv1); | 266 | var bp2, bv0, bv1, cross1, cross2, cross3; |
241 | cross3 = vecUtils.vecCross(3, bv0, bv1); | 267 | if ( MathUtils.fpSign(dist) == 0) |
242 | if ( (MathUtils.fpSign(vecUtils.vecDot(3, cross1, cross3)) == 0) && (MathUtils.fpSign(vecUtils.vecDot(3, cross2, cross3)) == 0)) | ||
243 | { | 268 | { |
244 | gotEnter = true; | 269 | bp2 = boundaryPts[(i+1) % 4]; |
245 | this.addIntersection( plane, t, 1 ); | 270 | bv0 = vecUtils.vecSubtract(3, bp2, bp1); |
271 | bv1 = vecUtils.vecSubtract(3, bp0, bp1); | ||
272 | cross1 = vecUtils.vecCross(3, bv0, lineDir); | ||
273 | cross2 = vecUtils.vecCross(3, lineDir, bv1); | ||
274 | cross3 = vecUtils.vecCross(3, bv0, bv1); | ||
275 | if ( (MathUtils.fpSign(vecUtils.vecDot(3, cross1, cross3)) == 0) && (MathUtils.fpSign(vecUtils.vecDot(3, cross2, cross3)) == 0)) | ||
276 | { | ||
277 | gotEnter = true; | ||
278 | this.addIntersection( plane, t, 1 ); | ||
279 | } | ||
246 | } | 280 | } |
247 | } | 281 | else if (MathUtils.fpSign( vecUtils.vecDist(3, pt0, bp0)) === 0) |
248 | else if (MathUtils.fpSign( vecUtils.vecDist(3, pt0, bp0)) === 0) | ||
249 | { | ||
250 | bp2 = boundaryPts[(i+2) % 4]; | ||
251 | bv0 = vecUtils.vecSubtract(3, bp2, bp0); | ||
252 | bv1 = vecUtils.vecSubtract(3, bp1, bp0); | ||
253 | cross1 = vecUtils.vecCross(3, bv0, lineDir); | ||
254 | cross2 = vecUtils.vecCross(3, lineDir, bv1); | ||
255 | cross3 = vecUtils.vecCross(3, bv0, bv1); | ||
256 | if ( (MathUtils.fpSign(vecUtils.vecDot(3, cross1, cross3)) == 0) && (MathUtils.fpSign(vecUtils.vecDot(3, cross2, cross3)) == 0)) | ||
257 | { | 282 | { |
283 | bp2 = boundaryPts[(i+2) % 4]; | ||
284 | bv0 = vecUtils.vecSubtract(3, bp2, bp0); | ||
285 | bv1 = vecUtils.vecSubtract(3, bp1, bp0); | ||
286 | cross1 = vecUtils.vecCross(3, bv0, lineDir); | ||
287 | cross2 = vecUtils.vecCross(3, lineDir, bv1); | ||
288 | cross3 = vecUtils.vecCross(3, bv0, bv1); | ||
289 | if ( (MathUtils.fpSign(vecUtils.vecDot(3, cross1, cross3)) == 0) && (MathUtils.fpSign(vecUti |