//>>built define("dojo/_base/lang ../../util/oo ../../manager/_registry ../../stencil/Path ../../annotations/Arrow ../../annotations/Label ../../tools/custom/Vector".split(" "),function(f,g,l,m,k,h,n){g=g.declare(m,function(a){this.closePath=!1;this.xArrow=new k({stencil:this,idx1:0,idx2:1});this.yArrow=new k({stencil:this,idx1:2,idx2:1});a.data&&(this.style.zAxisEnabled=1==a.data.cosphi?!0:!1,this.setData(a.data));if(this.style.zAxisEnabled){this.data.cosphi=1;var b={};f.mixin(b,a);f.mixin(b,{container:this.container.createGroup(), style:this.style,showAngle:!1,label:null});!a.data||b.data.radius&&b.data.angle||(b.data.x2=b.data.x4,b.data.y2=b.data.y4);b.style.zAxis=!0;this.zAxis=new n(b);this.zAxis.minimumSize=5;this.connectMult([[this,"onChangeStyle",this.zAxis,"onChangeStyle"],[this,"select",this.zAxis,"select"],[this,"deselect",this.zAxis,"deselect"],[this,"onDelete",this.zAxis,"destroy"],[this,"onDrag",this,"zSet"],[this,"onTransform",this,"zSet"],[this.zAxis,"onBeforeRender",this,"zSet"],[this,"_onPostRender",this.zAxis, "render"]])}this.points&&this.points.length&&(this.setPoints=this._postSetPoints,this.render(),a.label&&this.setLabel(a.label),a.shadow&&this.addShadow(a.shadow))},{draws:!0,type:"dojox.drawing.tools.custom.Axes",minimumSize:30,showAngle:!0,closePath:!1,baseRender:!1,zScale:.5,zPoint:function(a){a.radius=this.util.length(a);a=this.util.pointOnCircle(a.start.x,a.start.y,a.radius*this.zScale,this.style.zAngle);return{x:a.x,y:a.y,skip:!0,noAnchor:!0}},zSet:function(){if(this.zAxis){var a=this.points[1], b=this.points[3],c=[{x:a.x,y:a.y},{x:b.x,y:b.y}];this.util.length({start:{x:a.x,y:a.y},x:b.x,y:b.y})>this.zAxis.minimumSize?this.zAxis.setPoints(c):!1;this.zAxis.cosphi=1}},createLabels:function(){var a={align:"middle",valign:"middle",util:this.util,annotation:!0,container:this.container,mouse:this.mouse,stencil:this};this.labelX=new h.Label(f.mixin(a,{labelPosition:this.setLabelX}));this.labelY=new h.Label(f.mixin(a,{labelPosition:this.setLabelY}));this.style.zAxisEnabled&&(this.labelZ=new h.Label(f.mixin(a, {labelPosition:this.setLabelZ})))},setLabelX:function(){var a=this.points[0],b=this.points[1],b=this.util.lineSub(b.x,b.y,a.x,a.y,40),a=this.util.lineSub(b.x,b.y,b.x+(b.y-a.y),b.y+(a.x-b.x),20);return{x:a.x,y:a.y,width:20}},setLabelY:function(){var a=this.points[1],b=this.points[2],a=this.util.lineSub(a.x,a.y,b.x,b.y,40),b=this.util.lineSub(a.x,a.y,a.x+(b.y-a.y),a.y+(a.x-b.x),20);return{x:b.x,y:b.y,width:20}},setLabelZ:function(){var a=this.points[1],b=this.points[3],a=this.util.lineSub(a.x,a.y,b.x, b.y,40),b=this.util.lineSub(a.x,a.y,a.x+(a.y-b.y),a.y+(b.x-a.x),20);return{x:b.x,y:b.y,width:20}},setLabel:function(a){if(!this._labelsCreated){!this.labelX&&this.createLabels();var b="x",c="y",d="z";a&&(this.labelZ?(a=a.match(/(.*?)(and|&)(.*?)(and|&)(.*)/i),4d||0>b?console.warn("AXES ERROR LESS THAN ZERO - ABORT"):(this.points=[{x:a.x,y:a.y},{x:a.start.x,y:a.start.y,noAnchor:!0}],this.points.push({x:d,y:b,noAnchor:!0}),e&&this.points.push(e),this.setPoints(this.points),this.onModify(this))):(this.points[0].x=d.x,this.points[0].y=d.y,b=this.points[0],d=c.x-(c.y-b.y),b=c.y-(b.x-c.x),this.points[2]={x:d,y:b,noAnchor:!0},e&&this.points.push(e),this.setPoints(this.points),this.labelX.setLabel(),this.labelY.setLabel(),this.labelZ&&this.labelZ.setLabel(), this.onModify(this))}},getBounds:function(a){var b=this.points[0],c=this.points[1],d=this.points[2];if(this.style.zAxisEnabled)var e=this.points[3];if(a)return b={x:c.x,y:c.y,x1:c.x,y1:c.y,x2:b.x,y2:b.y,x3:d.x,y3:d.y},this.style.zAxisEnabled&&(b.x4=e.x,b.y4=e.y),b;a=this.style.zAxisEnabled?d.xb||0>c||(this.points=[{x:a.x,y:a.y},{x:a.start.x,y:a.start.y,noAnchor:!0}],this.points.push({x:b,y:c,noAnchor:!0}),this.style.zAxisEnabled&& (a=this.zPoint(a),this.points.push(a)),this.render())},onUp:function(a){if(this._downOnCanvas){this._downOnCanvas=!1;var b=this.points;if(b.length){if(a=this.util.distance(b[1].x,b[1].y,b[0].x,b[0].y),b&&b.length)if(ab||0>c||(this.points=[{x:a.x,y:a.y},{x:a.start.x,y:a.start.y,noAnchor:!0}],this.points.push({x:b,y:c,noAnchor:!0}),this.style.zAxisEnabled&&this.points.push(this.zPoint(a)),this.onRender(this),this.setPoints=this._postSetPoints)}}else a=a.start,this.points=[{x:a.x+100,y:a.y+100},{x:a.x,y:a.y+100,noAnchor:!0},{x:a.x,y:a.y,noAnchor:!0}],this.style.zAxisEnabled&&(a=this.zPoint({start:{x:a.x,y:a.y+100},x:a.x+ 100,y:a.y+100}),this.points.push(a)),this.setPoints=this._postSetPoints,this.pointsToData(),this.render(),this.onRender(this)}}});f.setObject("dojox.drawing.tools.custom.Axes",g);g.setup={name:"dojox.drawing.tools.custom.Axes",tooltip:"Axes Tool",iconClass:"iconAxes"};l.register(g.setup,"tool");return g});