// JenScript - 1.3.2 2017-06-10 // http://jenscript.io - Copyright 2017 Sébastien Janaud. All Rights reserved !function(){JenScript.RadialGaugePlugin=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.RadialGaugePlugin,JenScript.Plugin),JenScript.Model.addMethods(JenScript.RadialGaugePlugin,{_init:function(a){a=a||{},a.name="JenScript.RadialGaugePlugin",this.gauge=a.gauge,JenScript.Plugin.call(this,a)},paintPlugin:function(a,b){if(b===JenScript.ViewPart.Device){if(this.gauge.setProjection(this.getProjection()),void 0!==this.gauge.getEnvelop()&&this.gauge.getEnvelop().paintPart(a,this.gauge),void 0!==this.gauge.getBackgrounds())for(var c=0;c0&&b-d>=0?e=Math.atan((b-d)/(c-a)):c-a>0&&0>b-d?e=Math.atan((b-d)/(c-a))+2*Math.PI:0>c-a?e=Math.atan((b-d)/(c-a))+Math.PI:c-a==0&&b-d>0?e=Math.PI/2:c-a==0&&0>b-d&&(e=3*Math.PI/2),e},bindPath:function(){return this.solveIntersectionPoints()?this.createPath():void 0},createPath:function(){throw new Error("JenScript.AbstractPathAutoBinder, createPath should be supplied by override.")},solveIntersectionPoints:function(){var a=this.getMetricsPath().getBody().getGauge();this.x0=a.getCenterDevice().getX(),this.y0=a.getCenterDevice().getY(),this.r0=a.getRadius(),this.arc0=(new JenScript.SVGCircle).center(this.x0,this.y0).radius(this.r0),this.x1=this.x0+this.polarRadius*Math.cos(JenScript.Math.toRadians(this.polarDegree)),this.y1=this.y0-this.polarRadius*Math.sin(JenScript.Math.toRadians(this.polarDegree)),this.r1=this.radius,this.arc1=(new JenScript.SVGCircle).center(this.x1,this.y1).radius(this.r1);var b=this.x0,c=this.y0,d=this.r0,e=this.x1,f=this.y1,g=this.r1;if(0!=this.polarDegree&&180!=this.polarDegree){var h=(g*g-d*d-e*e+b*b-f*f+c*c)/(2*(c-f)),i=Math.pow((b-e)/(c-f),2)+1,j=2*c*(b-e)/(c-f)-2*h*(b-e)/(c-f)-2*b,k=b*b+c*c+h*h-d*d-2*c*h,l=Math.sqrt(j*j-4*i*k);if(0>l)return!1;if(l>=0){var m=(-j-l)/(2*i),n=h-m*(b-e)/(c-f);this.intersectionPointStart=new JenScript.Point2D(m,n);var o=(-j+l)/(2*i),p=h-o*(b-e)/(c-f);return this.intersectionPointEnd=new JenScript.Point2D(o,p),this.theta1Radian1=this.getPolarAngle(e,f,m,n),this.theta1Radian2=this.getPolarAngle(e,f,o,p),!0}}else if(0==this.polarDegree||180==this.polarDegree){var q=(g*g-d*d-e*e+b*b)/(2*(b-e)),i=1,j=-2*f,k=e*e+q*q-2*e*q+f*f-g*g,l=Math.sqrt(j*j-4*i*k);if(0>l)return!1;if(l>=0){var m=q,n=(-j-l)/2*i;this.intersectionPointStart=new JenScript.Point2D(m,n);var o=q,p=(-j+l)/2*i;return this.intersectionPointEnd=new JenScript.Point2D(o,p),this.theta1Radian1=this.getPolarAngle(e,f,m,n),this.theta1Radian2=this.getPolarAngle(e,f,o,p),!0}}},paintDebug:function(a){var b=this.createPath();if(void 0!==b){this.solveIntersectionPoints();var c=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.x0,this.y0);if(a.insertSVG(c.stroke("#2980b9").fillNone().toSVG()),a.insertSVG(this.arc0.stroke("black").fillNone().toSVG()),a.insertSVG(this.arc1.stroke("darkgray").fillNone().toSVG()),void 0!==this.intersectionPointStart&&void 0!==this.intersectionPointEnd){var d=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.intersectionPointStart.x,this.intersectionPointStart.y);a.insertSVG(d.stroke("yellow").fillNone().toSVG());var e=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.intersectionPointEnd.x,this.intersectionPointEnd.y);a.insertSVG(e.stroke("yellow").fillNone().toSVG());var f=(new JenScript.SVGCircle).center(this.intersectionPointStart.getX(),this.intersectionPointStart.getY()).radius(4),g=(new JenScript.SVGCircle).center(this.intersectionPointEnd.getX(),this.intersectionPointEnd.getY()).radius(4),h="Clockwise"==this.direction?"#1abc9c":"#e74c3c";this.drawPath(a,b,h),a.insertSVG(f.fill("#f1c40f").toSVG()),a.insertSVG(g.fill("#f1c40f").toSVG())}}},drawPath:function(a,b,c){if(void 0!=b){a.insertSVG(b.stroke(c).strokeWidth(2).fillNone().toSVG());var d=new JenScript.GeometryPath(b.toSVG()),e=this.creatTickDirection(b,d.lengthOfPath()/2,5),f=this.creatTickDirection(b,d.lengthOfPath()/4,4),g=this.creatTickDirection(b,3*d.lengthOfPath()/4,4);void 0!=e&&a.insertSVG(e.fill(c).toSVG()),void 0!=f&&a.insertSVG(f.fill(c).toSVG()),void 0!=g&&a.insertSVG(g.fill(c).toSVG())}},creatTickDirection:function(a,b,c){var d=new JenScript.GeometryPath(a.toSVG()),e=c;if(b-e>0&&b+2*e0&&this.polarDegree<180)if(this.theta1Radian2>this.theta1Radian1){var h=JenScript.Math.toDegrees(this.theta1Radian2)-JenScript.Math.toDegrees(this.theta1Radian1),i=h>=180||-180>=h?1:0;if("AntiClockwise"==this.direction){var j=a({x:b,y:c},d,e),k=a({x:b,y:c},d,e+JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,0,k.x,k.y)}else if("Clockwise"==this.direction){var j=a({x:b,y:c},d,f),k=a({x:b,y:c},d,f-JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,1,k.x,k.y)}}else{var h=Math.abs(JenScript.Math.toDegrees(2*Math.PI+f)-JenScript.Math.toDegrees(e)),i=h>=180||-180>=h?1:0;if("AntiClockwise"==this.direction){var j=a({x:b,y:c},d,e),k=a({x:b,y:c},d,e+JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,0,k.x,k.y)}else if("Clockwise"==this.direction){var j=a({x:b,y:c},d,f),k=a({x:b,y:c},d,f-JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,1,k.x,k.y)}}else if(this.polarDegree>180&&this.polarDegree<360)if(this.theta1Radian2>this.theta1Radian1){var h=360-(JenScript.Math.toDegrees(f)-JenScript.Math.toDegrees(e)),i=h>=180||-180>=h?1:0;if("AntiClockwise"==this.direction){var j=a({x:b,y:c},d,f),k=a({x:b,y:c},d,f+JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,0,k.x,k.y)}else if("Clockwise"==this.direction){var j=a({x:b,y:c},d,e),k=a({x:b,y:c},d,e-JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,1,k.x,k.y)}}else{var h=JenScript.Math.toDegrees(e)-JenScript.Math.toDegrees(f),i=h>=180||-180>=h?1:0;if("AntiClockwise"==this.direction){var j=a({x:b,y:c},d,f),k=a({x:b,y:c},d,f+JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,0,k.x,k.y)}else if("Clockwise"==this.direction){var j=a({x:b,y:c},d,e),k=a({x:b,y:c},d,e-JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,1,k.x,k.y)}}else if(0===this.polarDegree){var h=JenScript.Math.toDegrees(f)-JenScript.Math.toDegrees(e),i=h>=180||-180>=h?1:0;if("AntiClockwise"===this.direction){var j=a({x:b,y:c},d,e),k=a({x:b,y:c},d,e+JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,0,k.x,k.y)}else if("Clockwise"===this.direction){var j=a({x:b,y:c},d,f),k=a({x:b,y:c},d,f-JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,1,k.x,k.y)}}else if(180===this.polarDegree){var h=360-JenScript.Math.toDegrees(f)+JenScript.Math.toDegrees(e),i=h>=180||-180>=h?1:0;if("AntiClockwise"===this.direction){var j=a({x:b,y:c},d,f),k=a({x:b,y:c},d,f+JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,0,k.x,k.y)}else if("Clockwise"===this.direction){var j=a({x:b,y:c},d,e),k=a({x:b,y:c},d,e-JenScript.Math.toRadians(h));g.moveTo(j.x,j.y).arcTo(d,d,0,i,1,k.x,k.y)}}return this.intersectionArc=g,this.intersectionArc}}),JenScript.PathArcManualBinder=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.PathArcManualBinder,JenScript.PathBinder),JenScript.Model.addMethods(JenScript.PathArcManualBinder,{_init:function(a){a=a||{},this.radius=a.radius,this.startAngleDegree=a.startAngleDegree,this.extendsAngleDegree=a.extendsAngleDegree,this.shiftRadius=void 0!==a.shiftRadius?a.shiftRadius:0,this.shiftAngleDegree=void 0!==a.shiftAngleDegree?a.shiftAngleDegree:0},bindPath:function(a){var b=a.getCenterDevice().getX(),c=a.getCenterDevice().getY(),d=b+this.shiftRadius*Math.cos(JenScript.Math.toRadians(this.shiftAngleDegree)),e=c-this.shiftRadius*Math.sin(JenScript.Math.toRadians(this.shiftAngleDegree)),f=function(a,b,c){return{x:a.x+b*Math.cos(JenScript.Math.toRadians(c)),y:a.y-b*Math.sin(JenScript.Math.toRadians(c))}},g={x:d,y:e},h=f(g,this.radius,this.startAngleDegree),i=f(g,this.radius,this.startAngleDegree+this.extendsAngleDegree),j=new JenScript.SVGPath,k=this.extendsAngleDegree>=180||this.extendsAngleDegree<=-180?1:0,l=this.extendsAngleDegree<0?1:0;return j.moveTo(h.x,h.y).arcTo(this.radius,this.radius,0,k,l,i.x,i.y),j}}),JenScript.PathCubicAutoBinder=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.PathCubicAutoBinder,JenScript.AbstractPathAutoBinder),JenScript.Model.addMethods(JenScript.PathCubicAutoBinder,{__init:function(a){a=a||{},this.intersectionCubicCurve,this.controlOffsetRadius=10,this.controlOffsetAngleDegree=10,a.name="JenScript.PathCubicAutoBinder",JenScript.AbstractPathAutoBinder.call(this,a)},getIntersectionCubicCurve:function(){return this.intersectionCubicCurve},setIntersectionCubicCurve:function(a){this.intersectionCubicCurve=a},getControlOffsetRadius:function(){return this.controlOffsetRadius},setControlOffsetRadius:function(a){if(0>a)throw new Error("control offset radius must be positive");this.controlOffsetRadius=a},getControlOffsetAngleDegree:function(){return this.controlOffsetAngleDegree},setControlOffsetAngleDegree:function(a){if(0>a)throw new Error("control offset angle must be positive");this.controlOffsetAngleDegree=a},createCubicStart2End:function(){return(new JenScript.SVGPath).moveTo(this.intersectionPointStart.getX(),this.intersectionPointStart.getY()).cubicTo(this.getControlPoint1().getX(),this.getControlPoint1().getY(),this.getControlPoint2().getX(),this.getControlPoint2().getY(),this.intersectionPointEnd.getX(),this.intersectionPointEnd.getY())},createCubicEnd2Start:function(){return(new JenScript.SVGPath).moveTo(this.intersectionPointEnd.getX(),this.intersectionPointEnd.getY()).cubicTo(this.getControlPoint1().getX(),this.getControlPoint1().getY(),this.getControlPoint2().getX(),this.getControlPoint2().getY(),this.intersectionPointStart.getX(),this.intersectionPointStart.getY())},createPath:function(){return void 0===this.intersectionPointStart||void 0===this.intersectionPointEnd?void 0:(this.polarDegree>=0&&this.polarDegree<180?"AntiClockwise"===this.direction?this.intersectionCubicCurve=this.createCubicStart2End():"Clockwise"===this.direction&&(this.intersectionCubicCurve=this.createCubicEnd2Start()):this.polarDegree>=180&&this.polarDegree<360&&("AntiClockwise"===this.direction?this.intersectionCubicCurve=this.createCubicEnd2Start():"Clockwise"===this.direction&&(this.intersectionCubicCurve=this.createCubicStart2End())),this.intersectionCubicCurve)},getControlPoint1:function(){if("Clockwise"===this.direction){var a=this.x1+(this.radius+this.controlOffsetRadius)*Math.cos(JenScript.Math.toRadians(this.polarDegree)+Math.PI+JenScript.Math.toRadians(this.controlOffsetAngleDegree)),b=this.y1-(this.radius+this.controlOffsetRadius)*Math.sin(JenScript.Math.toRadians(this.polarDegree)+Math.PI+JenScript.Math.toRadians(this.controlOffsetAngleDegree));return new JenScript.Point2D(a,b)}if("AntiClockwise"===this.direction){var a=this.x1+(this.radius+this.controlOffsetRadius)*Math.cos(JenScript.Math.toRadians(this.polarDegree)+Math.PI-JenScript.Math.toRadians(this.controlOffsetAngleDegree)),b=this.y1-(this.radius+this.controlOffsetRadius)*Math.sin(JenScript.Math.toRadians(this.polarDegree)+Math.PI-JenScript.Math.toRadians(this.controlOffsetAngleDegree));return new JenScript.Point2D(a,b)}},getControlPoint2:function(){if("Clockwise"===this.direction){var a=this.x1+(this.radius+this.controlOffsetRadius)*Math.cos(JenScript.Math.toRadians(this.polarDegree)+Math.PI-JenScript.Math.toRadians(this.controlOffsetAngleDegree)),b=this.y1-(this.radius+this.controlOffsetRadius)*Math.sin(JenScript.Math.toRadians(this.polarDegree)+Math.PI-JenScript.Math.toRadians(this.controlOffsetAngleDegree));return new JenScript.Point2D(a,b)}if("AntiClockwise"===this.direction){var a=this.x1+(this.radius+this.controlOffsetRadius)*Math.cos(JenScript.Math.toRadians(this.polarDegree)+Math.PI+JenScript.Math.toRadians(this.controlOffsetAngleDegree)),b=this.y1-(this.radius+this.controlOffsetRadius)*Math.sin(JenScript.Math.toRadians(this.polarDegree)+Math.PI+JenScript.Math.toRadians(this.controlOffsetAngleDegree));return new JenScript.Point2D(a,b)}},paintDebug:function(a){var b=this.createPath();if(void 0!==b){this.solveIntersectionPoints();var c=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.x0,this.y0);if(a.insertSVG(c.stroke("#2980b9").toHexString().fillNone().toSVG()),a.insertSVG(this.arc0.stroke("black").fillNone().toSVG()),a.insertSVG(this.arc1.stroke("darkgray").fillNone().toSVG()),void 0!==this.intersectionPointStart&&void 0!==this.intersectionPointEnd){var d=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.intersectionPointStart.x,this.intersectionPointStart.y);a.insertSVG(d.stroke("yellow").fillNone().toSVG());var e=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.intersectionPointEnd.x,this.intersectionPointEnd.y);a.insertSVG(e.stroke("yellow").fillNone().toSVG());var f=(new JenScript.SVGCircle).center(this.intersectionPointStart.getX(),this.intersectionPointStart.getY()).radius(4),g=(new JenScript.SVGCircle).center(this.intersectionPointEnd.getX(),this.intersectionPointEnd.getY()).radius(4),h="Clockwise"==this.direction?"#1abc9c":"#e74c3c";this.drawPath(a,b,h),a.insertSVG(f.fill("#f1c40f").toSVG()),a.insertSVG(g.fill("#f1c40f").toSVG())}}}}),JenScript.PathQuadAutoBinder=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.PathQuadAutoBinder,JenScript.AbstractPathAutoBinder),JenScript.Model.addMethods(JenScript.PathQuadAutoBinder,{__init:function(a){a=a||{},this.intersectionQuadCurve,this.controlOffsetRadius=10,a.name="JenScript.PathQuadAutoBinder",JenScript.AbstractPathAutoBinder.call(this,a)},getIntersectionQuadCurve:function(){return this.intersectionQuadCurve},setIntersectionQuadCurve:function(a){this.intersectionQuadCurve=a},getControlOffsetRadius:function(){return this.controlOffsetRadius},setControlOffsetRadius:function(a){if(this.controlOffsetRadius<0)throw new Error("control offset radius must be positive");this.controlOffsetRadius=a},createQuadStart2End:function(){return(new JenScript.SVGPath).moveTo(this.intersectionPointStart.getX(),this.intersectionPointStart.getY()).quadTo(this.getControlPoint().getX(),this.getControlPoint().getY(),this.intersectionPointEnd.getX(),this.intersectionPointEnd.getY())},createQuadEnd2Start:function(){return(new JenScript.SVGPath).moveTo(this.intersectionPointEnd.getX(),this.intersectionPointEnd.getY()).quadTo(this.getControlPoint().getX(),this.getControlPoint().getY(),this.intersectionPointStart.getX(),this.intersectionPointStart.getY())},createPath:function(){return void 0===this.intersectionPointStart||void 0==this.intersectionPointEnd?void 0:(this.polarDegree>=0&&this.polarDegree<180?"AntiClockwise"===this.direction?this.intersectionQuadCurve=this.createQuadStart2End():this.direction==Direction.Clockwise&&(this.intersectionQuadCurve=this.createQuadEnd2Start()):this.polarDegree>=180&&this.polarDegree<360&&("AntiClockwise"===this.direction?this.intersectionQuadCurve=this.createQuadEnd2Start():this.direction==Direction.Clockwise&&(this.intersectionQuadCurve=this.createQuadStart2End())),this.intersectionQuadCurve)},getControlPoint:function(){var a=this.x1+(this.radius+this.controlOffsetRadius)*Math.cos(JenScript.Math.toRadians(this.polarDegree)+Math.PI),b=this.y1-(this.radius+this.controlOffsetRadius)*Math.sin(JenScript.Math.toRadians(this.polarDegree)+Math.PI);return new JenScript.Point2D(a,b)},paintDebug:function(a){var b=this.createPath();if(void 0!==b){this.solveIntersectionPoints();var c=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.x0,this.y0);if(a.insertSVG(c.stroke("#2980b9").fillNone().toSVG()),a.insertSVG(this.arc0.stroke("black").fillNone().toSVG()),a.insertSVG(this.arc1.stroke("darkgray").fillNone().toSVG()),void 0!==this.intersectionPointStart&&void 0!==this.intersectionPointEnd){var d=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.intersectionPointStart.x,this.intersectionPointStart.y);a.insertSVG(d.stroke("yellow").fillNone().toSVG());var e=(new JenScript.SVGPath).moveTo(this.x1,this.y1).lineTo(this.intersectionPointEnd.x,this.intersectionPointEnd.y);a.insertSVG(e.stroke("yellow").fillNone().toSVG());var f=(new JenScript.SVGCircle).center(this.intersectionPointStart.getX(),this.intersectionPointStart.getY()).radius(4),g=(new JenScript.SVGCircle).center(this.intersectionPointEnd.getX(),this.intersectionPointEnd.getY()).radius(4),h="Clockwise"==this.direction?"#1abc9c":"#e74c3c";this.drawPath(a,b,h),a.insertSVG(f.fill("#f1c40f").toSVG()),a.insertSVG(g.fill("#f1c40f").toSVG())}}}})}(),function(){JenScript.GaugeNeedlePainter=function(a){this.init(a)},JenScript.Model.addMethods(JenScript.GaugeNeedlePainter,{init:function(a){a=a||{}},paintNeedle:function(){throw new Error("JenScript.GaugeNeedlePainter, paintNeedle method should be provide by override")}}),JenScript.GaugeNeedleClassicPainter=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.GaugeNeedleClassicPainter,JenScript.GaugeNeedlePainter),JenScript.Model.addMethods(JenScript.GaugeNeedleClassicPainter,{_init:function(a){a=a||{},JenScript.GaugeNeedlePainter.call(this,a)},paintNeedle:function(a,b){var c=b.getNeedleBaseAnchorBinder().bindAnchor(b.getBody().getGauge()),d=b.getNeedleValueAnchorBinder().bindAnchor(b.getBody().getGauge()),e=(new JenScript.SVGPath).moveTo(c.x,c.y).lineTo(d.x,d.y),f=e.strokeWidth(4).strokeLineCap("round").opacity(.6).stroke("black").toSVG(),g=e.strokeWidth(10).strokeLineCap("round").opacity(.4).stroke("#2980b9").toSVG();a.insertSVG(g),a.insertSVG(f);var h=14,i={percents:["0%","100%"],colors:["#2980b9","black"]},j="gradient"+JenScript.sequenceId++,k=(new JenScript.SVGRadialGradient).Id(j).center(c.getX(),c.getY()).focus(c.getX(),c.getY()).radius(h).shade(i.percents,i.colors).toSVG();a.definesSVG(k);var l=(new JenScript.SVGCircle).center(c.getX(),c.getY()).radius(h);a.insertSVG(l.fillURL(j).fillOpacity(.6).strokeOpacity(.5).strokeWidth(2).stroke("#2980b9").toSVG())}})}(),function(){JenScript.GaugeMetricsPath=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.GaugeMetricsPath,JenScript.GeneralMetricsPath),JenScript.Model.addMethods(JenScript.GaugeMetricsPath,{_init:function(a){a=a||{},a.nature="Device",this.currentValue,this.needleBaseAnchorBinder,this.needleValueAnchorBinder,this.body,this.pathBinder,this.gaugeNeedlePainter,JenScript.GeneralMetricsPath.call(this,a)},getGaugeNeedlePainter:function(){return this.gaugeNeedlePainter},setGaugeNeedlePainter:function(a){this.gaugeNeedlePainter=a},getCurrentValue:function(){return this.currentValue},setCurrentValue:function(a){if(this.currentValuethis.getMax())throw new Error("Gauge Metrics out of range. "+this.currentValue+" [min,max] path range.");this.currentValue=a},getPathBinder:function(){ return this.pathBinder},setPathBinder:function(a){void 0!==a&&a.setMetricsPath(this),this.pathBinder=a},getNeedleBaseAnchorBinder:function(){return this.needleBaseAnchorBinder},setNeedleBaseAnchorBinder:function(a){a.setMetricsPath(this),this.needleBaseAnchorBinder=a},getNeedleValueAnchorBinder:function(){return this.needleValueAnchorBinder},setNeedleValueAnchorBinder:function(a){a.setMetricsPath(this),this.needleValueAnchorBinder=a},getBody:function(){return this.body},setBody:function(a){this.body=a},draw:function(a){this.graphicsContext=a,this.getMetrics()}})}(),function(){JenScript.RadialGauge=function(a){this.init(a)},JenScript.Model.addMethods(JenScript.RadialGauge,{init:function(a){this.x=void 0!==a.x?a.x:0,this.y=void 0!==a.y?a.y:0,this.radius=a.radius,this.projection,this.envelop,this.glasses=[],this.backgrounds=[],this.bodies=[]},getCenterDevice:function(){var a=this.getProjection().userToPixelX(this.x),b=this.getProjection().userToPixelY(this.y);return new JenScript.Point2D(a,b)},getRadialPointAt:function(a,b){var c=this.getCenterDevice(),d=c.getX(),e=c.getY(),f=d+a*Math.cos(JenScript.Math.toRadians(b)),g=e-a*Math.sin(JenScript.Math.toRadians(b));return new JenScript.Point2D(f,g)},getBackgrounds:function(){return this.backgrounds},setBackgrounds:function(a){this.backgrounds=a},addBackground:function(a){this.backgrounds[this.backgrounds.length]=a},getProjection:function(){return this.projection},setProjection:function(a){this.projection=a},getRadius:function(){return this.radius},setRadius:function(a){this.radius=a},getX:function(){return this.x},setX:function(a){this.x=a},getY:function(){return this.y},setY:function(a){this.y=a},getEnvelop:function(){return this.envelop},setEnvelop:function(a){a.setGauge(this),this.envelop=a},getGlasses:function(){return this.glasses},setGlasses:function(a){for(var b=0;b