Error in Point3D normalize function
by Scott Richards · in Torque Game Engine · 09/04/2005 (12:02 am) · 4 replies
In math/mMath_C.cc @ line 85:
The Z component is missing. It should read:
Not that anybody uses Point3D::normalize anyway, but still...
static void m_point3D_normalize_f_C(F64 *p, F64 val)
{
F64 factor = val / mSqrtD([b]p[0]*p[0] + p[1]*p[1][/b] );
p[0] *= factor;
p[1] *= factor;
p[2] *= factor;
}The Z component is missing. It should read:
static void m_point3D_normalize_f_C(F64 *p, F64 val)
{
F64 factor = val / mSqrtD(p[0]*p[0] + p[1]*p[1] + [b]p[2]*p[2][/b]);
p[0] *= factor;
p[1] *= factor;
p[2] *= factor;
}Not that anybody uses Point3D::normalize anyway, but still...
About the author
I am an artist, a programmer, and a rogue developer, subbornly chasing a dream, trying to make the game I want to play.
Torque 3D Owner Scott Richards
static void m_point2F_normalize_C(F32 *p) { F32 squared = p[0]*p[0] + p[1]*p[1]; if (squared > 0.0f) { F32 factor = 1.0f / mSqrt(squared); p[0] *= factor; p[1] *= factor; } else { p[0] = 0; p[1] = 1; } } //-------------------------------------- static void m_point2F_normalize_f_C(F32 *p, F32 val) { F32 squared = p[0]*p[0] + p[1]*p[1]; if (squared > 0.0f) { F32 factor = val / mSqrt(squared); p[0] *= factor; p[1] *= factor; } else { p[0] = 0; p[1] = [b]val[/b]; } } //-------------------------------------- static void m_point2D_normalize_C(F64 *p) { F64 squared = p[0]*p[0] + p[1]*p[1]; if (squared > 0.0f) { F64 factor = 1.0f / mSqrt(squared); p[0] *= factor; p[1] *= factor; } else { p[0] = 0; p[1] = 1; } } //-------------------------------------- static void m_point2D_normalize_f_C(F64 *p, F64 val) { F64 squared = p[0]*p[0] + p[1]*p[1]; if (squared > 0.0f) { F64 factor = val / mSqrt(squared); p[0] *= factor; p[1] *= factor; } else { p[0] = 0; p[1] = [b]val[/b]; } } //-------------------------------------- static void m_point3F_normalize_C(F32 *p) { F32 squared = p[0]*p[0] + p[1]*p[1] + p[2]*p[2]; if (squared > 0.0f) { F32 factor = 1.0f / mSqrt(squared); p[0] *= factor; p[1] *= factor; p[2] *= factor; } else { p[0] = 0; p[1] = 0; p[2] = 1; } } //-------------------------------------- static void m_point3F_normalize_f_C(F32 *p, F32 val) { F32 squared = p[0]*p[0] + p[1]*p[1] + p[2]*p[2]; if (squared > 0.0f) { F32 factor = val / mSqrt(squared); p[0] *= factor; p[1] *= factor; p[2] *= factor; } else { p[0] = 0; p[1] = 0; p[2] = [b]val[/b]; } } //-------------------------------------- static void m_point3D_normalize_C(F64 *p) { F64 squared = p[0]*p[0] + p[1]*p[1] + p[2]*p[2]; if (squared > 0.0f) { F64 factor = 1.0f / mSqrtD(squared); p[0] *= factor; p[1] *= factor; p[2] *= factor; } else { p[0] = 0; p[1] = 0; p[2] = 1; } } //-------------------------------------- static void m_point3D_normalize_f_C(F64 *p, F64 val) { F64 squared = p[0]*p[0] + p[1]*p[1] + p[2]*p[2]; if (squared > 0.0f) { F64 factor = val / mSqrt(squared); p[0] *= factor; p[1] *= factor; p[2] *= factor; } else { p[0] = 0; p[1] = 0; p[2] = [b]val[/b]; } }