diff options
| author | Don Kjer <don@lindenlab.com> | 2009-07-07 18:30:20 +0000 | 
|---|---|---|
| committer | Don Kjer <don@lindenlab.com> | 2009-07-07 18:30:20 +0000 | 
| commit | a05617a65472b94b0b0f02f26fc396d8584faa4f (patch) | |
| tree | 91e481f49145080babd6600ce6739b1723524474 | |
| parent | e588d1f28419745ee1e1ee98dc1852e0364a4088 (diff) | |
svn merge -r 126003:126087   svn+ssh://svn/svn/linden/qa/light-texture-params/light-texture-params-2 into trunk
| -rw-r--r-- | indra/llprimitive/llprimitive.cpp | 78 | ||||
| -rw-r--r-- | indra/llprimitive/llprimitive.h | 25 | 
2 files changed, 102 insertions, 1 deletions
| diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp index 13facc0d58..58aaf97a76 100644 --- a/indra/llprimitive/llprimitive.cpp +++ b/indra/llprimitive/llprimitive.cpp @@ -1314,6 +1314,8 @@ BOOL LLNetworkData::isValid(U16 param_type, U32 size)  		return (size == 16);  	case PARAMS_SCULPT:  		return (size == 17); +	case PARAMS_LIGHT_IMAGE: +		return (size == 28);  	}  	return FALSE; @@ -1646,3 +1648,79 @@ bool LLSculptParams::fromLLSD(LLSD& sd)  	return false;  } +//============================================================================ + +LLLightImageParams::LLLightImageParams() +{ +	mType = PARAMS_LIGHT_IMAGE; +	mParams.setVec(F_PI*0.5f, 0.f, 0.f); +} + +BOOL LLLightImageParams::pack(LLDataPacker &dp) const +{ +	dp.packUUID(mLightTexture, "texture"); +	dp.packVector3(mParams, "params"); + +	return TRUE; +} + +BOOL LLLightImageParams::unpack(LLDataPacker &dp) +{ +	dp.unpackUUID(mLightTexture, "texture"); +	dp.unpackVector3(mParams, "params"); +	 +	return TRUE; +} + +bool LLLightImageParams::operator==(const LLNetworkData& data) const +{ +	if (data.mType != PARAMS_LIGHT_IMAGE) +	{ +		return false; +	} +	 +	const LLLightImageParams *param = (const LLLightImageParams*)&data; +	if ( (param->mLightTexture != mLightTexture) ) +	{ +		return false; +	} + +	if ( (param->mParams != mParams ) ) +	{ +		return false; +	} +	 +	return true; +} + +void LLLightImageParams::copy(const LLNetworkData& data) +{ +	const LLLightImageParams *param = (LLLightImageParams*)&data; +	mLightTexture = param->mLightTexture; +	mParams = param->mParams; +} + + + +LLSD LLLightImageParams::asLLSD() const +{ +	LLSD sd; +	 +	sd["texture"] = mLightTexture; +	sd["params"] = mParams.getValue(); +		 +	return sd; +} + +bool LLLightImageParams::fromLLSD(LLSD& sd) +{ +	if (sd.has("texture")) +	{ +		setLightTexture( sd["texture"] ); +		setParams( sd["params"] ); +		return true; +	}  +	 +	return false; +} + diff --git a/indra/llprimitive/llprimitive.h b/indra/llprimitive/llprimitive.h index c25df0a40f..01389a0e04 100644 --- a/indra/llprimitive/llprimitive.h +++ b/indra/llprimitive/llprimitive.h @@ -107,7 +107,8 @@ public:  	{  		PARAMS_FLEXIBLE = 0x10,  		PARAMS_LIGHT    = 0x20, -		PARAMS_SCULPT   = 0x30 +		PARAMS_SCULPT   = 0x30, +		PARAMS_LIGHT_IMAGE = 0x40,  	};  public: @@ -267,6 +268,28 @@ public:  	U8 getSculptType()                      { return mSculptType; }  }; +class LLLightImageParams : public LLNetworkData +{ +protected: +	LLUUID mLightTexture; +	LLVector3 mParams; +	 +public: +	LLLightImageParams(); +	/*virtual*/ BOOL pack(LLDataPacker &dp) const; +	/*virtual*/ BOOL unpack(LLDataPacker &dp); +	/*virtual*/ bool operator==(const LLNetworkData& data) const; +	/*virtual*/ void copy(const LLNetworkData& data); +	LLSD asLLSD() const; +	operator LLSD() const { return asLLSD(); } +	bool fromLLSD(LLSD& sd); + +	void setLightTexture(const LLUUID& id) { mLightTexture = id; } +	LLUUID getLightTexture() const         { return mLightTexture; } +	void setParams(const LLVector3& params) { mParams = params; } +	LLVector3 getParams() const			   { return mParams; } +	 +};  class LLPrimitive : public LLXform | 
