diff options
author | Andrew Meadows <andrew@lindenlab.com> | 2008-09-05 22:03:35 +0000 |
---|---|---|
committer | Andrew Meadows <andrew@lindenlab.com> | 2008-09-05 22:03:35 +0000 |
commit | 222bca24c12e162669c1a810c3102811f21cfbe4 (patch) | |
tree | 8eee52c0ffd4e9b03d624fc78d6547b8312a5c85 /indra/llmath | |
parent | 1493a212629b02a4323bf0c1f5a6960bc7b5e271 (diff) |
svn merge -r95288:95907 svn+ssh://svn.lindenlab.com/svn/linden/qa/maint-server/qar-841
this is a combined mergeback of the following branches as per QAR-841:
maint-server/maint-server-1 (absorbed by maint-server-2)
maint-server/maint-server-2
maint-server/maint-server-3
havok4/havok4-8
havok4/havok4-9
yes dataserver-is-deprecated
Diffstat (limited to 'indra/llmath')
-rw-r--r-- | indra/llmath/v3color.h | 77 | ||||
-rw-r--r-- | indra/llmath/v4color.cpp | 166 | ||||
-rw-r--r-- | indra/llmath/v4color.h | 109 | ||||
-rw-r--r-- | indra/llmath/v4coloru.cpp | 2 | ||||
-rw-r--r-- | indra/llmath/v4coloru.h | 89 |
5 files changed, 339 insertions, 104 deletions
diff --git a/indra/llmath/v3color.h b/indra/llmath/v3color.h index e2a8274839..05f6186893 100644 --- a/indra/llmath/v3color.h +++ b/indra/llmath/v3color.h @@ -82,13 +82,23 @@ public: const LLColor3& setToBlack(); // Clears LLColor3 to (0, 0, 0) const LLColor3& setToWhite(); // Zero LLColor3 to (0, 0, 0) - const LLColor3& setVec(F32 x, F32 y, F32 z); // Sets LLColor3 to (x, y, z) - const LLColor3& setVec(const LLColor3 &vec); // Sets LLColor3 to vec - const LLColor3& setVec(const F32 *vec); // Sets LLColor3 to vec + + const LLColor3& setVec(F32 x, F32 y, F32 z); // deprecated + const LLColor3& setVec(const LLColor3 &vec); // deprecated + const LLColor3& setVec(const F32 *vec); // deprecated + + const LLColor3& set(F32 x, F32 y, F32 z); // Sets LLColor3 to (x, y, z) + const LLColor3& set(const LLColor3 &vec); // Sets LLColor3 to vec + const LLColor3& set(const F32 *vec); // Sets LLColor3 to vec + + F32 magVec() const; // deprecated + F32 magVecSquared() const; // deprecated + F32 normVec(); // deprecated + + F32 length() const; // Returns magnitude of LLColor3 + F32 lengthSquared() const; // Returns magnitude squared of LLColor3 + F32 normalize(); // Normalizes and returns the magnitude of LLColor3 - F32 magVec() const; // Returns magnitude of LLColor3 - F32 magVecSquared() const; // Returns magnitude squared of LLColor3 - F32 normVec(); // Normalizes and returns the magnitude of LLColor3 F32 brightness() const; // Returns brightness of LLColor3 const LLColor3& operator=(const LLColor4 &a); @@ -214,6 +224,31 @@ inline const LLColor3& LLColor3::setToWhite(void) return (*this); } +inline const LLColor3& LLColor3::set(F32 r, F32 g, F32 b) +{ + mV[0] = r; + mV[1] = g; + mV[2] = b; + return (*this); +} + +inline const LLColor3& LLColor3::set(const LLColor3 &vec) +{ + mV[0] = vec.mV[0]; + mV[1] = vec.mV[1]; + mV[2] = vec.mV[2]; + return (*this); +} + +inline const LLColor3& LLColor3::set(const F32 *vec) +{ + mV[0] = vec[0]; + mV[1] = vec[1]; + mV[2] = vec[2]; + return (*this); +} + +// deprecated inline const LLColor3& LLColor3::setVec(F32 r, F32 g, F32 b) { mV[0] = r; @@ -222,6 +257,7 @@ inline const LLColor3& LLColor3::setVec(F32 r, F32 g, F32 b) return (*this); } +// deprecated inline const LLColor3& LLColor3::setVec(const LLColor3 &vec) { mV[0] = vec.mV[0]; @@ -230,6 +266,7 @@ inline const LLColor3& LLColor3::setVec(const LLColor3 &vec) return (*this); } +// deprecated inline const LLColor3& LLColor3::setVec(const F32 *vec) { mV[0] = vec[0]; @@ -243,16 +280,44 @@ inline F32 LLColor3::brightness(void) const return (mV[0] + mV[1] + mV[2]) / 3.0f; } +inline F32 LLColor3::length(void) const +{ + return fsqrtf(mV[0]*mV[0] + mV[1]*mV[1] + mV[2]*mV[2]); +} + +inline F32 LLColor3::lengthSquared(void) const +{ + return mV[0]*mV[0] + mV[1]*mV[1] + mV[2]*mV[2]; +} + +inline F32 LLColor3::normalize(void) +{ + F32 mag = fsqrtf(mV[0]*mV[0] + mV[1]*mV[1] + mV[2]*mV[2]); + F32 oomag; + + if (mag) + { + oomag = 1.f/mag; + mV[0] *= oomag; + mV[1] *= oomag; + mV[2] *= oomag; + } + return (mag); +} + +// deprecated inline F32 LLColor3::magVec(void) const { return fsqrtf(mV[0]*mV[0] + mV[1]*mV[1] + mV[2]*mV[2]); } +// deprecated inline F32 LLColor3::magVecSquared(void) const { return mV[0]*mV[0] + mV[1]*mV[1] + mV[2]*mV[2]; } +// deprecated inline F32 LLColor3::normVec(void) { F32 mag = fsqrtf(mV[0]*mV[0] + mV[1]*mV[1] + mV[2]*mV[2]); diff --git a/indra/llmath/v4color.cpp b/indra/llmath/v4color.cpp index 8ba329eaf2..c66fe66c92 100644 --- a/indra/llmath/v4color.cpp +++ b/indra/llmath/v4color.cpp @@ -161,6 +161,38 @@ LLColor4::LLColor4(const LLVector4& vector4) mV[VW] = vector4.mV[VW]; } +const LLColor4& LLColor4::set(const LLColor4U& color4u) +{ + const F32 SCALE = 1.f/255.f; + mV[VX] = color4u.mV[VX] * SCALE; + mV[VY] = color4u.mV[VY] * SCALE; + mV[VZ] = color4u.mV[VZ] * SCALE; + mV[VW] = color4u.mV[VW] * SCALE; + return (*this); +} + +const LLColor4& LLColor4::set(const LLColor3 &vec) +{ + mV[VX] = vec.mV[VX]; + mV[VY] = vec.mV[VY]; + mV[VZ] = vec.mV[VZ]; + +// no change to alpha! +// mV[VW] = 1.f; + + return (*this); +} + +const LLColor4& LLColor4::set(const LLColor3 &vec, F32 a) +{ + mV[VX] = vec.mV[VX]; + mV[VY] = vec.mV[VY]; + mV[VZ] = vec.mV[VZ]; + mV[VW] = a; + return (*this); +} + +// deprecated -- use set() const LLColor4& LLColor4::setVec(const LLColor4U& color4u) { const F32 SCALE = 1.f/255.f; @@ -171,6 +203,7 @@ const LLColor4& LLColor4::setVec(const LLColor4U& color4u) return (*this); } +// deprecated -- use set() const LLColor4& LLColor4::setVec(const LLColor3 &vec) { mV[VX] = vec.mV[VX]; @@ -183,6 +216,7 @@ const LLColor4& LLColor4::setVec(const LLColor3 &vec) return (*this); } +// deprecated -- use set() const LLColor4& LLColor4::setVec(const LLColor3 &vec, F32 a) { mV[VX] = vec.mV[VX]; @@ -338,270 +372,270 @@ BOOL LLColor4::parseColor(const std::string& buf, LLColor4* color) { v = v * (1.f / 255.f); } - color->setVec( v ); + color->set( v ); } else // Single value. Read as a named color. { // We have a color name if ( "red" == color_name ) { - color->setVec(LLColor4::red); + color->set(LLColor4::red); } else if ( "red1" == color_name ) { - color->setVec(LLColor4::red1); + color->set(LLColor4::red1); } else if ( "red2" == color_name ) { - color->setVec(LLColor4::red2); + color->set(LLColor4::red2); } else if ( "red3" == color_name ) { - color->setVec(LLColor4::red3); + color->set(LLColor4::red3); } else if ( "red4" == color_name ) { - color->setVec(LLColor4::red4); + color->set(LLColor4::red4); } else if ( "red5" == color_name ) { - color->setVec(LLColor4::red5); + color->set(LLColor4::red5); } else if( "green" == color_name ) { - color->setVec(LLColor4::green); + color->set(LLColor4::green); } else if( "green1" == color_name ) { - color->setVec(LLColor4::green1); + color->set(LLColor4::green1); } else if( "green2" == color_name ) { - color->setVec(LLColor4::green2); + color->set(LLColor4::green2); } else if( "green3" == color_name ) { - color->setVec(LLColor4::green3); + color->set(LLColor4::green3); } else if( "green4" == color_name ) { - color->setVec(LLColor4::green4); + color->set(LLColor4::green4); } else if( "green5" == color_name ) { - color->setVec(LLColor4::green5); + color->set(LLColor4::green5); } else if( "green6" == color_name ) { - color->setVec(LLColor4::green6); + color->set(LLColor4::green6); } else if( "blue" == color_name ) { - color->setVec(LLColor4::blue); + color->set(LLColor4::blue); } else if( "blue1" == color_name ) { - color->setVec(LLColor4::blue1); + color->set(LLColor4::blue1); } else if( "blue2" == color_name ) { - color->setVec(LLColor4::blue2); + color->set(LLColor4::blue2); } else if( "blue3" == color_name ) { - color->setVec(LLColor4::blue3); + color->set(LLColor4::blue3); } else if( "blue4" == color_name ) { - color->setVec(LLColor4::blue4); + color->set(LLColor4::blue4); } else if( "blue5" == color_name ) { - color->setVec(LLColor4::blue5); + color->set(LLColor4::blue5); } else if( "blue6" == color_name ) { - color->setVec(LLColor4::blue6); + color->set(LLColor4::blue6); } else if( "black" == color_name ) { - color->setVec(LLColor4::black); + color->set(LLColor4::black); } else if( "white" == color_name ) { - color->setVec(LLColor4::white); + color->set(LLColor4::white); } else if( "yellow" == color_name ) { - color->setVec(LLColor4::yellow); + color->set(LLColor4::yellow); } else if( "yellow1" == color_name ) { - color->setVec(LLColor4::yellow1); + color->set(LLColor4::yellow1); } else if( "yellow2" == color_name ) { - color->setVec(LLColor4::yellow2); + color->set(LLColor4::yellow2); } else if( "yellow3" == color_name ) { - color->setVec(LLColor4::yellow3); + color->set(LLColor4::yellow3); } else if( "yellow4" == color_name ) { - color->setVec(LLColor4::yellow4); + color->set(LLColor4::yellow4); } else if( "yellow5" == color_name ) { - color->setVec(LLColor4::yellow5); + color->set(LLColor4::yellow5); } else if( "yellow6" == color_name ) { - color->setVec(LLColor4::yellow6); + color->set(LLColor4::yellow6); } else if( "magenta" == color_name ) { - color->setVec(LLColor4::magenta); + color->set(LLColor4::magenta); } else if( "magenta1" == color_name ) { - color->setVec(LLColor4::magenta1); + color->set(LLColor4::magenta1); } else if( "magenta2" == color_name ) { - color->setVec(LLColor4::magenta2); + color->set(LLColor4::magenta2); } else if( "magenta3" == color_name ) { - color->setVec(LLColor4::magenta3); + color->set(LLColor4::magenta3); } else if( "magenta4" == color_name ) { - color->setVec(LLColor4::magenta4); + color->set(LLColor4::magenta4); } else if( "purple" == color_name ) { - color->setVec(LLColor4::purple); + color->set(LLColor4::purple); } else if( "purple1" == color_name ) { - color->setVec(LLColor4::purple1); + color->set(LLColor4::purple1); } else if( "purple2" == color_name ) { - color->setVec(LLColor4::purple2); + color->set(LLColor4::purple2); } else if( "purple3" == color_name ) { - color->setVec(LLColor4::purple3); + color->set(LLColor4::purple3); } else if( "purple4" == color_name ) { - color->setVec(LLColor4::purple4); + color->set(LLColor4::purple4); } else if( "purple5" == color_name ) { - color->setVec(LLColor4::purple5); + color->set(LLColor4::purple5); } else if( "purple6" == color_name ) { - color->setVec(LLColor4::purple6); + color->set(LLColor4::purple6); } else if( "pink" == color_name ) { - color->setVec(LLColor4::pink); + color->set(LLColor4::pink); } else if( "pink1" == color_name ) { - color->setVec(LLColor4::pink1); + color->set(LLColor4::pink1); } else if( "pink2" == color_name ) { - color->setVec(LLColor4::pink2); + color->set(LLColor4::pink2); } else if( "cyan" == color_name ) { - color->setVec(LLColor4::cyan); + color->set(LLColor4::cyan); } else if( "cyan1" == color_name ) { - color->setVec(LLColor4::cyan1); + color->set(LLColor4::cyan1); } else if( "cyan2" == color_name ) { - color->setVec(LLColor4::cyan2); + color->set(LLColor4::cyan2); } else if( "cyan3" == color_name ) { - color->setVec(LLColor4::cyan3); + color->set(LLColor4::cyan3); } else if( "cyan4" == color_name ) { - color->setVec(LLColor4::cyan4); + color->set(LLColor4::cyan4); } else if( "cyan5" == color_name ) { - color->setVec(LLColor4::cyan5); + color->set(LLColor4::cyan5); } else if( "cyan6" == color_name ) { - color->setVec(LLColor4::cyan6); + color->set(LLColor4::cyan6); } else if( "smoke" == color_name ) { - color->setVec(LLColor4::smoke); + color->set(LLColor4::smoke); } else if( "grey" == color_name ) { - color->setVec(LLColor4::grey); + color->set(LLColor4::grey); } else if( "grey1" == color_name ) { - color->setVec(LLColor4::grey1); + color->set(LLColor4::grey1); } else if( "grey2" == color_name ) { - color->setVec(LLColor4::grey2); + color->set(LLColor4::grey2); } else if( "grey3" == color_name ) { - color->setVec(LLColor4::grey3); + color->set(LLColor4::grey3); } else if( "grey4" == color_name ) { - color->setVec(LLColor4::grey4); + color->set(LLColor4::grey4); } else if( "orange" == color_name ) { - color->setVec(LLColor4::orange); + color->set(LLColor4::orange); } else if( "orange1" == color_name ) { - color->setVec(LLColor4::orange1); + color->set(LLColor4::orange1); } else if( "orange2" == color_name ) { - color->setVec(LLColor4::orange2); + color->set(LLColor4::orange2); } else if( "orange3" == color_name ) { - color->setVec(LLColor4::orange3); + color->set(LLColor4::orange3); } else if( "orange4" == color_name ) { - color->setVec(LLColor4::orange4); + color->set(LLColor4::orange4); } else if( "orange5" == color_name ) { - color->setVec(LLColor4::orange5); + color->set(LLColor4::orange5); } else if( "orange6" == color_name ) { - color->setVec(LLColor4::orange6); + color->set(LLColor4::orange6); } else if ( "clear" == color_name ) { - color->setVec(0.f, 0.f, 0.f, 0.f); + color->set(0.f, 0.f, 0.f, 0.f); } else { diff --git a/indra/llmath/v4color.h b/indra/llmath/v4color.h index 62c0b663b8..98f04130d6 100644 --- a/indra/llmath/v4color.h +++ b/indra/llmath/v4color.h @@ -84,20 +84,33 @@ class LLColor4 const LLColor4& setToBlack(); // zero LLColor4 to (0, 0, 0, 1) const LLColor4& setToWhite(); // zero LLColor4 to (0, 0, 0, 1) - const LLColor4& setVec(F32 r, F32 g, F32 b, F32 a); // Sets LLColor4 to (r, g, b, a) - const LLColor4& setVec(F32 r, F32 g, F32 b); // Sets LLColor4 to (r, g, b) (no change in a) - const LLColor4& setVec(const LLColor4 &vec); // Sets LLColor4 to vec - const LLColor4& setVec(const LLColor3 &vec); // Sets LLColor4 to LLColor3 vec (no change in alpha) - const LLColor4& setVec(const LLColor3 &vec, F32 a); // Sets LLColor4 to LLColor3 vec, with alpha specified - const LLColor4& setVec(const F32 *vec); // Sets LLColor4 to vec - const LLColor4& setVec(const LLColor4U& color4u); // Sets LLColor4 to color4u, rescaled. + const LLColor4& setVec(F32 r, F32 g, F32 b, F32 a); // deprecated -- use set() + const LLColor4& setVec(F32 r, F32 g, F32 b); // deprecated -- use set() + const LLColor4& setVec(const LLColor4 &vec); // deprecated -- use set() + const LLColor4& setVec(const LLColor3 &vec); // deprecated -- use set() + const LLColor4& setVec(const LLColor3 &vec, F32 a); // deprecated -- use set() + const LLColor4& setVec(const F32 *vec); // deprecated -- use set() + const LLColor4& setVec(const LLColor4U& color4u); // deprecated -- use set() + + const LLColor4& set(F32 r, F32 g, F32 b, F32 a); // Sets LLColor4 to (r, g, b, a) + const LLColor4& set(F32 r, F32 g, F32 b); // Sets LLColor4 to (r, g, b) (no change in a) + const LLColor4& set(const LLColor4 &vec); // Sets LLColor4 to vec + const LLColor4& set(const LLColor3 &vec); // Sets LLColor4 to LLColor3 vec (no change in alpha) + const LLColor4& set(const LLColor3 &vec, F32 a); // Sets LLColor4 to LLColor3 vec, with alpha specified + const LLColor4& set(const F32 *vec); // Sets LLColor4 to vec + const LLColor4& set(const LLColor4U& color4u); // Sets LLColor4 to color4u, rescaled. const LLColor4& setAlpha(F32 a); - F32 magVec() const; // Returns magnitude of LLColor4 - F32 magVecSquared() const; // Returns magnitude squared of LLColor4 - F32 normVec(); // Normalizes and returns the magnitude of LLColor4 + F32 magVec() const; // deprecated -- use length() + F32 magVecSquared() const; // deprecated -- use lengthSquared() + F32 normVec(); // deprecated -- use normalize() + + F32 length() const; // Returns magnitude of LLColor4 + F32 lengthSquared() const; // Returns magnitude squared of LLColor4 + F32 normalize(); // deprecated -- use normalize() + BOOL isOpaque() { return mV[VALPHA] == 1.f; } F32 operator[](int idx) const { return mV[idx]; } @@ -289,6 +302,47 @@ inline const LLColor4& LLColor4::setToWhite(void) return (*this); } +inline const LLColor4& LLColor4::set(F32 x, F32 y, F32 z) +{ + mV[VX] = x; + mV[VY] = y; + mV[VZ] = z; + +// no change to alpha! +// mV[VW] = 1.f; + + return (*this); +} + +inline const LLColor4& LLColor4::set(F32 x, F32 y, F32 z, F32 a) +{ + mV[VX] = x; + mV[VY] = y; + mV[VZ] = z; + mV[VW] = a; + return (*this); +} + +inline const LLColor4& LLColor4::set(const LLColor4 &vec) +{ + mV[VX] = vec.mV[VX]; + mV[VY] = vec.mV[VY]; + mV[VZ] = vec.mV[VZ]; + mV[VW] = vec.mV[VW]; + return (*this); +} + + +inline const LLColor4& LLColor4::set(const F32 *vec) +{ + mV[VX] = vec[VX]; + mV[VY] = vec[VY]; + mV[VZ] = vec[VZ]; + mV[VW] = vec[VW]; + return (*this); +} + +// deprecated inline const LLColor4& LLColor4::setVec(F32 x, F32 y, F32 z) { mV[VX] = x; @@ -301,6 +355,7 @@ inline const LLColor4& LLColor4::setVec(F32 x, F32 y, F32 z) return (*this); } +// deprecated inline const LLColor4& LLColor4::setVec(F32 x, F32 y, F32 z, F32 a) { mV[VX] = x; @@ -310,6 +365,7 @@ inline const LLColor4& LLColor4::setVec(F32 x, F32 y, F32 z, F32 a) return (*this); } +// deprecated inline const LLColor4& LLColor4::setVec(const LLColor4 &vec) { mV[VX] = vec.mV[VX]; @@ -320,6 +376,7 @@ inline const LLColor4& LLColor4::setVec(const LLColor4 &vec) } +// deprecated inline const LLColor4& LLColor4::setVec(const F32 *vec) { mV[VX] = vec[VX]; @@ -337,16 +394,44 @@ inline const LLColor4& LLColor4::setAlpha(F32 a) // LLColor4 Magnitude and Normalization Functions +inline F32 LLColor4::length(void) const +{ + return fsqrtf(mV[VX]*mV[VX] + mV[VY]*mV[VY] + mV[VZ]*mV[VZ]); +} + +inline F32 LLColor4::lengthSquared(void) const +{ + return mV[VX]*mV[VX] + mV[VY]*mV[VY] + mV[VZ]*mV[VZ]; +} + +inline F32 LLColor4::normalize(void) +{ + F32 mag = fsqrtf(mV[VX]*mV[VX] + mV[VY]*mV[VY] + mV[VZ]*mV[VZ]); + F32 oomag; + + if (mag) + { + oomag = 1.f/mag; + mV[VX] *= oomag; + mV[VY] *= oomag; + mV[VZ] *= oomag; + } + return (mag); +} + +// deprecated inline F32 LLColor4::magVec(void) const { return fsqrtf(mV[VX]*mV[VX] + mV[VY]*mV[VY] + mV[VZ]*mV[VZ]); } +// deprecated inline F32 LLColor4::magVecSquared(void) const { return mV[VX]*mV[VX] + mV[VY]*mV[VY] + mV[VZ]*mV[VZ]; } +// deprecated inline F32 LLColor4::normVec(void) { F32 mag = fsqrtf(mV[VX]*mV[VX] + mV[VY]*mV[VY] + mV[VZ]*mV[VZ]); @@ -497,13 +582,13 @@ inline const LLColor4& operator%=(LLColor4 &a, F32 k) inline F32 distVec(const LLColor4 &a, const LLColor4 &b) { LLColor4 vec = a - b; - return (vec.magVec()); + return (vec.length()); } inline F32 distVec_squared(const LLColor4 &a, const LLColor4 &b) { LLColor4 vec = a - b; - return (vec.magVecSquared()); + return (vec.lengthSquared()); } inline LLColor4 lerp(const LLColor4 &a, const LLColor4 &b, F32 u) diff --git a/indra/llmath/v4coloru.cpp b/indra/llmath/v4coloru.cpp index 26f3804209..17a198b392 100644 --- a/indra/llmath/v4coloru.cpp +++ b/indra/llmath/v4coloru.cpp @@ -120,6 +120,6 @@ BOOL LLColor4U::parseColor4U(const std::string& buf, LLColor4U* value) } } - value->setVec( U8(v[0]), U8(v[1]), U8(v[2]), U8(v[3]) ); + value->set( U8(v[0]), U8(v[1]), U8(v[2]), U8(v[3]) ); return TRUE; } diff --git a/indra/llmath/v4coloru.h b/indra/llmath/v4coloru.h index 1d3f31e968..aa830e0035 100644 --- a/indra/llmath/v4coloru.h +++ b/indra/llmath/v4coloru.h @@ -97,15 +97,23 @@ public: const LLColor4U& setToBlack(); // zero LLColor4U to (0, 0, 0, 1) const LLColor4U& setToWhite(); // zero LLColor4U to (0, 0, 0, 1) - const LLColor4U& setVec(U8 r, U8 g, U8 b, U8 a); // Sets LLColor4U to (r, g, b, a) - const LLColor4U& setVec(U8 r, U8 g, U8 b); // Sets LLColor4U to (r, g, b) (no change in a) - const LLColor4U& setVec(const LLColor4U &vec); // Sets LLColor4U to vec - const LLColor4U& setVec(const U8 *vec); // Sets LLColor4U to vec + const LLColor4U& set(U8 r, U8 g, U8 b, U8 a);// Sets LLColor4U to (r, g, b, a) + const LLColor4U& set(U8 r, U8 g, U8 b); // Sets LLColor4U to (r, g, b) (no change in a) + const LLColor4U& set(const LLColor4U &vec); // Sets LLColor4U to vec + const LLColor4U& set(const U8 *vec); // Sets LLColor4U to vec + + const LLColor4U& setVec(U8 r, U8 g, U8 b, U8 a); // deprecated -- use set() + const LLColor4U& setVec(U8 r, U8 g, U8 b); // deprecated -- use set() + const LLColor4U& setVec(const LLColor4U &vec); // deprecated -- use set() + const LLColor4U& setVec(const U8 *vec); // deprecated -- use set() const LLColor4U& setAlpha(U8 a); - F32 magVec() const; // Returns magnitude of LLColor4U - F32 magVecSquared() const; // Returns magnitude squared of LLColor4U + F32 magVec() const; // deprecated -- use length() + F32 magVecSquared() const; // deprecated -- use lengthSquared() + + F32 length() const; // Returns magnitude squared of LLColor4U + F32 lengthSquared() const; // Returns magnitude squared of LLColor4U friend std::ostream& operator<<(std::ostream& s, const LLColor4U &a); // Print a friend LLColor4U operator+(const LLColor4U &a, const LLColor4U &b); // Return vector a + b @@ -199,7 +207,7 @@ inline const LLColor4U& LLColor4U::setToWhite(void) return (*this); } -inline const LLColor4U& LLColor4U::setVec(const U8 x, const U8 y, const U8 z) +inline const LLColor4U& LLColor4U::set(const U8 x, const U8 y, const U8 z) { mV[VX] = x; mV[VY] = y; @@ -211,7 +219,7 @@ inline const LLColor4U& LLColor4U::setVec(const U8 x, const U8 y, const U8 z) return (*this); } -inline const LLColor4U& LLColor4U::setVec(const U8 r, const U8 g, const U8 b, U8 a) +inline const LLColor4U& LLColor4U::set(const U8 r, const U8 g, const U8 b, U8 a) { mV[0] = r; mV[1] = g; @@ -220,7 +228,7 @@ inline const LLColor4U& LLColor4U::setVec(const U8 r, const U8 g, const U8 b, U8 return (*this); } -inline const LLColor4U& LLColor4U::setVec(const LLColor4U &vec) +inline const LLColor4U& LLColor4U::set(const LLColor4U &vec) { mV[VX] = vec.mV[VX]; mV[VY] = vec.mV[VY]; @@ -229,17 +237,49 @@ inline const LLColor4U& LLColor4U::setVec(const LLColor4U &vec) return (*this); } -/* -inline const LLColor4U& LLColor4U::setVec(const LLColor4 &vec) +inline const LLColor4U& LLColor4U::set(const U8 *vec) { - mV[VX] = (U8) (llmin(1.f, vec.mV[VX]) * 255.f); - mV[VY] = (U8) (llmin(1.f, vec.mV[VY]) * 255.f); - mV[VZ] = (U8) (llmin(1.f, vec.mV[VZ]) * 255.f); - mV[VW] = (U8) (llmin(1.f, vec.mV[VW]) * 255.f); + mV[VX] = vec[VX]; + mV[VY] = vec[VY]; + mV[VZ] = vec[VZ]; + mV[VW] = vec[VW]; return (*this); } -*/ +// deprecated +inline const LLColor4U& LLColor4U::setVec(const U8 x, const U8 y, const U8 z) +{ + mV[VX] = x; + mV[VY] = y; + mV[VZ] = z; + +// no change to alpha! +// mV[VW] = 255; + + return (*this); +} + +// deprecated +inline const LLColor4U& LLColor4U::setVec(const U8 r, const U8 g, const U8 b, U8 a) +{ + mV[0] = r; + mV[1] = g; + mV[2] = b; + mV[3] = a; + return (*this); +} + +// deprecated +inline const LLColor4U& LLColor4U::setVec(const LLColor4U &vec) +{ + mV[VX] = vec.mV[VX]; + mV[VY] = vec.mV[VY]; + mV[VZ] = vec.mV[VZ]; + mV[VW] = vec.mV[VW]; + return (*this); +} + +// deprecated inline const LLColor4U& LLColor4U::setVec(const U8 *vec) { mV[VX] = vec[VX]; @@ -256,13 +296,24 @@ inline const LLColor4U& LLColor4U::setAlpha(U8 a) } // LLColor4U Magnitude and Normalization Functions -// bookmark +inline F32 LLColor4U::length(void) const +{ + return fsqrtf( ((F32)mV[VX]) * mV[VX] + ((F32)mV[VY]) * mV[VY] + ((F32)mV[VZ]) * mV[VZ] ); +} + +inline F32 LLColor4U::lengthSquared(void) const +{ + return ((F32)mV[VX]) * mV[VX] + ((F32)mV[VY]) * mV[VY] + ((F32)mV[VZ]) * mV[VZ]; +} + +// deprecated inline F32 LLColor4U::magVec(void) const { return fsqrtf( ((F32)mV[VX]) * mV[VX] + ((F32)mV[VY]) * mV[VY] + ((F32)mV[VZ]) * mV[VZ] ); } +// deprecated inline F32 LLColor4U::magVecSquared(void) const { return ((F32)mV[VX]) * mV[VX] + ((F32)mV[VY]) * mV[VY] + ((F32)mV[VZ]) * mV[VZ]; @@ -407,13 +458,13 @@ inline const LLColor4U& operator%=(LLColor4U &a, U8 k) inline F32 distVec(const LLColor4U &a, const LLColor4U &b) { LLColor4U vec = a - b; - return (vec.magVec()); + return (vec.length()); } inline F32 distVec_squared(const LLColor4U &a, const LLColor4U &b) { LLColor4U vec = a - b; - return (vec.magVecSquared()); + return (vec.lengthSquared()); } void LLColor4U::setVecScaleClamp(const LLColor4& color) |