summaryrefslogtreecommitdiffstats
path: root/src/math/Vector2D.h
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-08-09 19:42:18 +0200
committeraap <aap@papnet.eu>2019-08-09 19:42:18 +0200
commit0bd681abc514d5a3627edea40b24347696ac8908 (patch)
treecbfcb61874c34a4e44ad1151cf44fc13650f1197 /src/math/Vector2D.h
parentMerge pull request #184 from erorcun/erorcun (diff)
downloadre3-0bd681abc514d5a3627edea40b24347696ac8908.tar
re3-0bd681abc514d5a3627edea40b24347696ac8908.tar.gz
re3-0bd681abc514d5a3627edea40b24347696ac8908.tar.bz2
re3-0bd681abc514d5a3627edea40b24347696ac8908.tar.lz
re3-0bd681abc514d5a3627edea40b24347696ac8908.tar.xz
re3-0bd681abc514d5a3627edea40b24347696ac8908.tar.zst
re3-0bd681abc514d5a3627edea40b24347696ac8908.zip
Diffstat (limited to '')
-rw-r--r--src/math/Vector2D.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/math/Vector2D.h b/src/math/Vector2D.h
index 76664522..a090155c 100644
--- a/src/math/Vector2D.h
+++ b/src/math/Vector2D.h
@@ -18,7 +18,7 @@ public:
x *= invsqrt;
y *= invsqrt;
}else
- x = 0.0f;
+ x = 1.0f;
}
const CVector2D &operator+=(CVector2D const &right) {
x += right.x;
@@ -52,6 +52,9 @@ public:
CVector2D operator*(float t) const {
return CVector2D(x*t, y*t);
}
+ CVector2D operator/(float t) const {
+ return CVector2D(x/t, y/t);
+ }
};
inline float
@@ -65,3 +68,26 @@ CrossProduct2D(const CVector2D &v1, const CVector2D &v2)
{
return v1.x*v2.y - v1.y*v2.x;
}
+
+inline float
+Distance2D(const CVector2D &v, float x, float y)
+{
+ return Sqrt((v.x-x)*(v.x-x) + (v.y-y)*(v.y-y));
+}
+
+inline float
+DistanceSqr2D(const CVector2D &v, float x, float y)
+{
+ return (v.x-x)*(v.x-x) + (v.y-y)*(v.y-y);
+}
+
+inline void
+NormalizeXY(float &x, float &y)
+{
+ float l = Sqrt(x*x + y*y);
+ if(l != 0.0f){
+ x /= l;
+ y /= l;
+ }else
+ x = 1.0f;
+}