diff options
Diffstat (limited to 'indra/llmath/v4math.h')
| -rw-r--r-- | indra/llmath/v4math.h | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/indra/llmath/v4math.h b/indra/llmath/v4math.h index 623c8b2003..3f6d480ed9 100644 --- a/indra/llmath/v4math.h +++ b/indra/llmath/v4math.h @@ -30,6 +30,7 @@  #include "llerror.h"  #include "llmath.h"  #include "v3math.h" +#include "v2math.h"  class LLMatrix3;  class LLMatrix4; @@ -46,8 +47,11 @@ class LLVector4  		LLVector4();						// Initializes LLVector4 to (0, 0, 0, 1)  		explicit LLVector4(const F32 *vec);			// Initializes LLVector4 to (vec[0]. vec[1], vec[2], vec[3])  		explicit LLVector4(const F64 *vec);			// Initialized LLVector4 to ((F32) vec[0], (F32) vec[1], (F32) vec[3], (F32) vec[4]); +        explicit LLVector4(const LLVector2 &vec); +        explicit LLVector4(const LLVector2 &vec, F32 z, F32 w);  		explicit LLVector4(const LLVector3 &vec);			// Initializes LLVector4 to (vec, 1)  		explicit LLVector4(const LLVector3 &vec, F32 w);	// Initializes LLVector4 to (vec, w) +        explicit LLVector4(const LLSD &sd);  		LLVector4(F32 x, F32 y, F32 z);		// Initializes LLVector4 to (x. y, z, 1)  		LLVector4(F32 x, F32 y, F32 z, F32 w); @@ -61,6 +65,15 @@ class LLVector4  			return ret;  		} +        void setValue(const LLSD& sd) +        { +            mV[0] = sd[0].asReal(); +            mV[1] = sd[1].asReal(); +            mV[2] = sd[2].asReal(); +            mV[3] = sd[3].asReal(); +        } + +  		inline BOOL isFinite() const;									// checks to see if all values of LLVector3 are finite  		inline void	clear();		// Clears LLVector4 to (0, 0, 0, 1) @@ -175,6 +188,22 @@ inline LLVector4::LLVector4(const F64 *vec)  	mV[VW] = (F32) vec[VW];  } +inline LLVector4::LLVector4(const LLVector2 &vec) +{ +    mV[VX] = vec[VX]; +    mV[VY] = vec[VY]; +    mV[VZ] = 0.f; +    mV[VW] = 0.f; +} + +inline LLVector4::LLVector4(const LLVector2 &vec, F32 z, F32 w) +{ +    mV[VX] = vec[VX]; +    mV[VY] = vec[VY]; +    mV[VZ] = z; +    mV[VW] = w; +} +  inline LLVector4::LLVector4(const LLVector3 &vec)  {  	mV[VX] = vec.mV[VX]; @@ -191,6 +220,11 @@ inline LLVector4::LLVector4(const LLVector3 &vec, F32 w)  	mV[VW] = w;  } +inline LLVector4::LLVector4(const LLSD &sd) +{ +    setValue(sd); +} +  inline BOOL LLVector4::isFinite() const  { | 
