Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
Merge remote-tracking branch 'origin/master' into Standalone
  • Loading branch information
Sergeanur committed Apr 17, 2020
2 parents 5991640 + 6ef7924 commit 941c50ee2573c917676c3b03f4f386d55e27396d
Showing with 22 additions and 6 deletions.
  1. +7 −5 src/math/Vector2D.h
  2. +13 −0 src/math/math.cpp
  3. +2 −1 src/render/Skidmarks.cpp
@@ -11,16 +11,18 @@ class CVector2D
float Magnitude(void) const { return Sqrt(x*x + y*y); }
float MagnitudeSqr(void) const { return x*x + y*y; }

void Normalise(void){
void Normalise(void);

void NormaliseSafe(void) {
float sq = MagnitudeSqr();
//if(sq > 0.0f){
if(sq > 0.0f){
float invsqrt = RecipSqrt(sq);
x *= invsqrt;
y *= invsqrt;
//}else
// x = 1.0f;
}else
y = 1.0f;
}

const CVector2D &operator+=(CVector2D const &right) {
x += right.x;
y += right.y;
@@ -4,6 +4,19 @@

// TODO: move more stuff into here

void
CVector2D::Normalise(void)
{
float sq = MagnitudeSqr();
assert(sq != 0.0f); // just be safe here
//if(sq > 0.0f){
float invsqrt = RecipSqrt(sq);
x *= invsqrt;
y *= invsqrt;
//}else
// x = 1.0f;
}

void
CMatrix::SetRotate(float xAngle, float yAngle, float zAngle)
{
@@ -214,7 +214,8 @@ CSkidmarks::RegisterOne(uintptr id, CVector pos, float fwdX, float fwdY, bool *i
aSkidmarks[i].m_pos[aSkidmarks[i].m_last] = pos;

CVector2D dist = aSkidmarks[i].m_pos[aSkidmarks[i].m_last] - aSkidmarks[i].m_pos[aSkidmarks[i].m_last-1];
dist.Normalise();
dist.NormaliseSafe();
fwd.NormaliseSafe();
CVector2D right(dist.y, -dist.x);
float turn = DotProduct2D(fwd, right);
turn = Abs(turn) + 1.0f;

0 comments on commit 941c50e

Please sign in to comment.