mirror of
https://github.com/halpz/re3
synced 2024-11-17 07:48:47 +01:00
Merge remote-tracking branch 'origin/master' into Standalone
This commit is contained in:
commit
941c50ee25
3 changed files with 22 additions and 6 deletions
|
@ -11,14 +11,16 @@ public:
|
|||
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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue