Circle.prototype=new Extra_Graphics();Circle.prototype.constructor=Circle;function Circle(b,a){this._center=b;this._radius=a}Circle.prototype.draw=function(h){try{var b=new Point(this._center._x-this._radius,this._center._y);var i=new Point(this._center._x,this._center._y+this._radius);var c=new Point(this._center._x+this._radius,this._center._y);var g=new Point(this._center._x,this._center._y-this._radius);var f=new Arc(b,i,c);f._draw_middle_point=false;f._optimized_drawing=this._optimized_drawing;f.draw(h);var a=new Arc(c,g,b);a._draw_middle_point=false;a._optimized_drawing=this._optimized_drawing;a.draw(h)}catch(d){throw"Circle.draw(): "+d}};Circle.prototype.get_nearest_vertex_to_point=function(a){try{var c=new Point(this._center._x-this._radius,this._center._y);var i=new Point(this._center._x,this._center._y+this._radius);var d=new Point(this._center._x+this._radius,this._center._y);var h=new Point(this._center._x,this._center._y-this._radius);var g=new Arc(c,i,d);var b=new Arc(d,h,c);if(g._p2.distance(a)<b._p2.distance(a)){if(g._p1.distance(a)<=g._p2.distance(a)){if(g._p1.distance(a)<g._p3.distance(a)){return g._p1}else{return g._p3}}else{if(g._p2.distance(a)<=g._p3.distance(a)){return g._p2}else{return g._p3}}}else{if(b._p1.distance(a)<=b._p2.distance(a)){if(b._p1.distance(a)<b._p3.distance(a)){return b._p1}else{return b._p3}}else{if(b._p2.distance(a)<=b._p3.distance(a)){return b._p2}else{return b._p3}}}}catch(f){throw"Circle.get_nearest_vertex_to_point() "+f}};Circle.prototype.distance_from_point=function(i,g,f){try{var c=new Point(this._center._x-this._radius,this._center._y);var j=new Point(this._center._x,this._center._y+this._radius);var h=new Point(this._center._x+this._radius,this._center._y);var k=new Point(this._center._x,this._center._y-this._radius);var b=new Arc(c,j,h);var a=new Arc(h,k,c);if(b._p2.distance(new Point(i,g))<a._p2.distance(new Point(i,g))){return b.distance_from_point(i,g,f)}else{return a.distance_from_point(i,g,f)}}catch(d){throw"Circle.distance_from_point() "+d}};Circle.prototype.move=function(b,a){try{this._center.move(b,a)}catch(c){throw"Circle.move() "+c}};Circle.prototype.invert_points=function(){};Circle.prototype.equals=function(a){if(!(a instanceof Circle)){return false}return this._center.equals(a._center)&&this._radius==a._radius};Circle.prototype.clone=function(){return new Circle(this._center.clone(),this._radius)};Circle.prototype.to_string=function(){var a=new Point(this._center._x-this._radius,this._center._y);var d=new Point(this._center._x,this._center._y+this._radius);var b=new Point(this._center._x+this._radius,this._center._y);var c=new Point(this._center._x,this._center._y-this._radius);return"Circle: "+a._x+" "+a._y+", "+d._x+" "+d._y+", "+b._x+" "+b._y+", "+c._x+" "+c._y};Circle.prototype.to_post_request=function(){var b=new Point(this._center._x-this._radius,this._center._y);var e=new Point(this._center._x,this._center._y+this._radius);var c=new Point(this._center._x+this._radius,this._center._y);var d=new Point(this._center._x,this._center._y-this._radius);var a=new Array();a[0]=b._x+"_"+e._x+"_"+c._x+"_"+d._x;a[1]=b._y+"_"+e._y+"_"+c._y+"_"+d._y;return a};
