//>>built define("dojox/gfx3d/vector",["dojo/_base/lang","dojo/_base/array","./_base"],function(_1,_2,_3){ _3.vector={sum:function(){ var v={x:0,y:0,z:0}; _2.forEach(arguments,function(_4){ v.x+=_4.x; v.y+=_4.y; v.z+=_4.z; }); return v; },center:function(){ var l=arguments.length; if(l==0){ return {x:0,y:0,z:0}; } var v=_3.vector.sum(arguments); return {x:v.x/l,y:v.y/l,z:v.z/l}; },substract:function(a,b){ return {x:a.x-b.x,y:a.y-b.y,z:a.z-b.z}; },_crossProduct:function(x,y,z,u,v,w){ return {x:y*w-z*v,y:z*u-x*w,z:x*v-y*u}; },crossProduct:function(a,b,c,d,e,f){ if(arguments.length==6&&_2.every(arguments,function(_5){ return typeof _5=="number"; })){ return _3.vector._crossProduct(a,b,c,d,e,f); } return _3.vector._crossProduct(a.x,a.y,a.z,b.x,b.y,b.z); },_dotProduct:function(x,y,z,u,v,w){ return x*u+y*v+z*w; },dotProduct:function(a,b,c,d,e,f){ if(arguments.length==6&&_2.every(arguments,function(_6){ return typeof _6=="number"; })){ return _3.vector._dotProduct(a,b,c,d,e,f); } return _3.vector._dotProduct(a.x,a.y,a.z,b.x,b.y,b.z); },normalize:function(a,b,c){ var l,m,n; if(a instanceof Array){ l=a[0]; m=a[1]; n=a[2]; }else{ l=a; m=b; n=c; } var u=_3.vector.substract(m,l); var v=_3.vector.substract(n,l); return _3.vector.crossProduct(u,v); }}; return _3.vector; });