module math.geometry.circle; import vec_ = math.linear.vector; import point_ = math.linear.point; alias PRCircle = PointRadiusCircle; alias PointRCircle = PointRadiusCircle; alias RCircle = PointRadiusCircle; alias Circle = PointRadiusCircle; struct PointRadiusCircle(T) { PVec2!T pos; alias point=pos; alias p=pos; T radius; alias r=radius; } T distance(T)(Circle!T a, Circle!T b) { return vec_.distance(a.pos,b.pos) - a.r - b.r; }