From 4508e7569cca6103b66c5d24101dfbfff5006581 Mon Sep 17 00:00:00 2001 From: SoloArchx250 Date: Thu, 4 Jun 2020 13:48:01 -0400 Subject: [PATCH] geometry utilities --- src/Circle.cpp | 6 +++++- src/Circle.h | 3 ++- src/Vector.cpp | 10 ++++++++-- src/Vector.h | 4 +++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/Circle.cpp b/src/Circle.cpp index 8fed959..456ad46 100644 --- a/src/Circle.cpp +++ b/src/Circle.cpp @@ -44,6 +44,10 @@ void Circle::render(SDL_Renderer *renderer) { void Circle::setPosition(Vector vec) { center = vec; } + +float Circle::getOverlap(Circle c) { + return (c.center.distanceTo(center)-radius-c.radius)/2; +} /* bool Circle::isInitialized() { if(center.x == NULL) { @@ -51,4 +55,4 @@ bool Circle::isInitialized() { } else { return true; } -}*/ \ No newline at end of file +}*/ diff --git a/src/Circle.h b/src/Circle.h index f810e38..54bccef 100644 --- a/src/Circle.h +++ b/src/Circle.h @@ -29,6 +29,7 @@ class Circle { void translate(Vector vec); void setColor(Color c); void setPosition(Vector vec); + float getOverlap(Circle c); //bool isInitialized(); }; -#endif \ No newline at end of file +#endif diff --git a/src/Vector.cpp b/src/Vector.cpp index 6184e44..c6cba7a 100644 --- a/src/Vector.cpp +++ b/src/Vector.cpp @@ -12,5 +12,11 @@ Vector::Vector() { } int Vector::distanceTo(Vector vec) { - return sqrt(pow(abs(x - vec.x),2)+pow(abs(y - vec.y),2)); -} \ No newline at end of file + return sqrt(pow(abs(xDif(vec)),2)+pow(abs(yDif(vec)),2)); +} +int Vector::xDif(Vector vec) { + return x-vec.x; +} +int Vector::yDif(Vector vec) { + return y-vec.y; +} diff --git a/src/Vector.h b/src/Vector.h index 533477e..57f5014 100644 --- a/src/Vector.h +++ b/src/Vector.h @@ -6,5 +6,7 @@ class Vector { Vector(); Vector(float x, float y); int distanceTo(Vector vec); + int xDif(Vector vec); + int yDif(Vector vec); }; -#endif \ No newline at end of file +#endif