root / trunk / web / dojo / dojox / gfx3d / vector.js @ 12
History | View | Annotate | Download (1.54 KB)
1 | 9 | andrej.cim | /*
|
---|---|---|---|
2 | Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
||
3 | Available via Academic Free License >= 2.1 OR the modified BSD license.
|
||
4 | see: http://dojotoolkit.org/license for details
|
||
5 | */
|
||
6 | |||
7 | |||
8 | if(!dojo._hasResource["dojox.gfx3d.vector"]){ |
||
9 | dojo._hasResource["dojox.gfx3d.vector"]=true; |
||
10 | dojo.provide("dojox.gfx3d.vector");
|
||
11 | dojo.mixin(dojox.gfx3d.vector,{sum:function(){ |
||
12 | var v={x:0,y:0,z:0}; |
||
13 | dojo.forEach(arguments,function(_1){ |
||
14 | v.x+=_1.x; |
||
15 | v.y+=_1.y; |
||
16 | v.z+=_1.z; |
||
17 | }); |
||
18 | return v;
|
||
19 | },center:function(){ |
||
20 | var l=arguments.length; |
||
21 | if(l==0){ |
||
22 | return {x:0,y:0,z:0}; |
||
23 | } |
||
24 | var v=dojox.gfx3d.vector.sum(arguments); |
||
25 | return {x:v.x/l,y:v.y/l,z:v.z/l}; |
||
26 | },substract:function(a,b){ |
||
27 | return {x:a.x-b.x,y:a.y-b.y,z:a.z-b.z}; |
||
28 | },_crossProduct:function(x,y,z,u,v,w){ |
||
29 | return {x:y*w-z*v,y:z*u-x*w,z:x*v-y*u}; |
||
30 | },crossProduct:function(a,b,c,d,e,f){ |
||
31 | if(arguments.length==6&&dojo.every(arguments,function(_2){ |
||
32 | return typeof _2=="number"; |
||
33 | })){ |
||
34 | return dojox.gfx3d.vector._crossProduct(a,b,c,d,e,f);
|
||
35 | } |
||
36 | return dojox.gfx3d.vector._crossProduct(a.x,a.y,a.z,b.x,b.y,b.z);
|
||
37 | },_dotProduct:function(x,y,z,u,v,w){ |
||
38 | return x*u+y*v+z*w;
|
||
39 | },dotProduct:function(a,b,c,d,e,f){ |
||
40 | if(arguments.length==6&&dojo.every(arguments,function(_3){ |
||
41 | return typeof _3=="number"; |
||
42 | })){ |
||
43 | return dojox.gfx3d.vector._dotProduct(a,b,c,d,e,f);
|
||
44 | } |
||
45 | return dojox.gfx3d.vector._dotProduct(a.x,a.y,a.z,b.x,b.y,b.z);
|
||
46 | },normalize:function(a,b,c){ |
||
47 | var l,m,n;
|
||
48 | if(a instanceof Array){ |
||
49 | l=a[0];
|
||
50 | m=a[1];
|
||
51 | n=a[2];
|
||
52 | }else{
|
||
53 | l=a; |
||
54 | m=b; |
||
55 | n=c; |
||
56 | } |
||
57 | var u=dojox.gfx3d.vector.substract(m,l);
|
||
58 | var v=dojox.gfx3d.vector.substract(n,l);
|
||
59 | return dojox.gfx3d.vector.crossProduct(u,v);
|
||
60 | }}); |
||
61 | } |