diff options
Diffstat (limited to 'indra/llprimitive')
| -rw-r--r-- | indra/llprimitive/llmaterial.cpp | 20 | ||||
| -rwxr-xr-x | indra/llprimitive/llmodel.cpp | 8 | ||||
| -rwxr-xr-x | indra/llprimitive/llprimitive.cpp | 30 | ||||
| -rwxr-xr-x | indra/llprimitive/llprimitive.h | 2 | ||||
| -rwxr-xr-x | indra/llprimitive/llprimtexturelist.cpp | 10 | ||||
| -rwxr-xr-x | indra/llprimitive/llprimtexturelist.h | 2 | ||||
| -rwxr-xr-x | indra/llprimitive/llvolumemessage.cpp | 64 | ||||
| -rwxr-xr-x | indra/llprimitive/object_flags.h | 1 | 
8 files changed, 76 insertions, 61 deletions
diff --git a/indra/llprimitive/llmaterial.cpp b/indra/llprimitive/llmaterial.cpp index 7f3c8da434..57ceb3e11b 100644 --- a/indra/llprimitive/llmaterial.cpp +++ b/indra/llprimitive/llmaterial.cpp @@ -119,18 +119,18 @@ LLSD LLMaterial::asLLSD() const  	LLSD material_data;  	material_data[MATERIALS_CAP_NORMAL_MAP_FIELD] = mNormalID; -	material_data[MATERIALS_CAP_NORMAL_MAP_OFFSET_X_FIELD] = llround(mNormalOffsetX * MATERIALS_MULTIPLIER); -	material_data[MATERIALS_CAP_NORMAL_MAP_OFFSET_Y_FIELD] = llround(mNormalOffsetY * MATERIALS_MULTIPLIER); -	material_data[MATERIALS_CAP_NORMAL_MAP_REPEAT_X_FIELD] = llround(mNormalRepeatX * MATERIALS_MULTIPLIER); -	material_data[MATERIALS_CAP_NORMAL_MAP_REPEAT_Y_FIELD] = llround(mNormalRepeatY * MATERIALS_MULTIPLIER); -	material_data[MATERIALS_CAP_NORMAL_MAP_ROTATION_FIELD] = llround(mNormalRotation * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_NORMAL_MAP_OFFSET_X_FIELD] = ll_round(mNormalOffsetX * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_NORMAL_MAP_OFFSET_Y_FIELD] = ll_round(mNormalOffsetY * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_NORMAL_MAP_REPEAT_X_FIELD] = ll_round(mNormalRepeatX * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_NORMAL_MAP_REPEAT_Y_FIELD] = ll_round(mNormalRepeatY * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_NORMAL_MAP_ROTATION_FIELD] = ll_round(mNormalRotation * MATERIALS_MULTIPLIER);  	material_data[MATERIALS_CAP_SPECULAR_MAP_FIELD] = mSpecularID; -	material_data[MATERIALS_CAP_SPECULAR_MAP_OFFSET_X_FIELD] = llround(mSpecularOffsetX * MATERIALS_MULTIPLIER); -	material_data[MATERIALS_CAP_SPECULAR_MAP_OFFSET_Y_FIELD] = llround(mSpecularOffsetY * MATERIALS_MULTIPLIER); -	material_data[MATERIALS_CAP_SPECULAR_MAP_REPEAT_X_FIELD] = llround(mSpecularRepeatX * MATERIALS_MULTIPLIER); -	material_data[MATERIALS_CAP_SPECULAR_MAP_REPEAT_Y_FIELD] = llround(mSpecularRepeatY * MATERIALS_MULTIPLIER); -	material_data[MATERIALS_CAP_SPECULAR_MAP_ROTATION_FIELD] = llround(mSpecularRotation * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_SPECULAR_MAP_OFFSET_X_FIELD] = ll_round(mSpecularOffsetX * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_SPECULAR_MAP_OFFSET_Y_FIELD] = ll_round(mSpecularOffsetY * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_SPECULAR_MAP_REPEAT_X_FIELD] = ll_round(mSpecularRepeatX * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_SPECULAR_MAP_REPEAT_Y_FIELD] = ll_round(mSpecularRepeatY * MATERIALS_MULTIPLIER); +	material_data[MATERIALS_CAP_SPECULAR_MAP_ROTATION_FIELD] = ll_round(mSpecularRotation * MATERIALS_MULTIPLIER);  	material_data[MATERIALS_CAP_SPECULAR_COLOR_FIELD]     = mSpecularLightColor.getValue();  	material_data[MATERIALS_CAP_SPECULAR_EXP_FIELD]       = mSpecularLightExponent; diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp index aa8dd7697c..1571427d51 100755 --- a/indra/llprimitive/llmodel.cpp +++ b/indra/llprimitive/llmodel.cpp @@ -191,7 +191,7 @@ LLModel::EModelStatus load_face_from_dom_triangles(std::vector<LLVolumeFace>& fa  	U32 tc_count     = (tc_source && tc_source->getFloat_array()) 		? tc.getCount()	: 0;  	U32 norm_count   = (norm_source && norm_source->getFloat_array()) 	? n.getCount(): 0; -	if ((vertex_count == 0)) +	if (vertex_count == 0)  	{  		LL_WARNS() << "Unable to process mesh with empty position array; invalid model." << LL_ENDL;  		return LLModel::BAD_ELEMENT; @@ -1681,11 +1681,11 @@ LLSD LLModel::writeModel(  						}  					} -					F32* src_tc = (F32*) face.mTexCoords[j].mV; -  					//texcoord  					if (face.mTexCoords)  					{ +						F32* src_tc = (F32*) face.mTexCoords[j].mV; +  						for (U32 k = 0; k < 2; ++k)  						{ //for each component  							//convert to 16-bit normalized @@ -2012,7 +2012,7 @@ bool LLModel::loadModel(std::istream& is)  		}  	} -	std::string nm[] =  +	static const std::string nm[] =   	{  		"lowest_lod",  		"low_lod", diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp index a505ea04a7..29747cb09c 100755 --- a/indra/llprimitive/llprimitive.cpp +++ b/indra/llprimitive/llprimitive.cpp @@ -107,8 +107,6 @@ const F32 FLEXIBLE_OBJECT_DEFAULT_LENGTH = 1.0f;  const BOOL FLEXIBLE_OBJECT_DEFAULT_USING_COLLISION_SPHERE = FALSE;  const BOOL FLEXIBLE_OBJECT_DEFAULT_RENDERING_COLLISION_SPHERE = FALSE; -const S32 MAX_FACE_BITS = 9; -  const char *SCULPT_DEFAULT_TEXTURE = "be293869-d0d9-0a69-5989-ad27f1946fd4"; // old inverted texture: "7595d345-a24c-e7ef-f0bd-78793792133e";  // Texture rotations are sent over the wire as a S16.  This is used to scale the actual float @@ -324,6 +322,11 @@ S32 LLPrimitive::setTEMaterialParams(const U8 index, const LLMaterialPtr pMateri  	return mTextureList.setMaterialParams(index, pMaterialParams);  } +LLMaterialPtr LLPrimitive::getTEMaterialParams(const U8 index) +{ +	return mTextureList.getMaterialParams(index); +} +  //===============================================================  S32  LLPrimitive::setTEBumpShinyFullbright(const U8 index, const U8 bump)  { @@ -993,8 +996,6 @@ BOOL LLPrimitive::setMaterial(U8 material)  	}  } -const F32 LL_MAX_SCALE_S = 100.0f; -const F32 LL_MAX_SCALE_T = 100.0f;  S32 LLPrimitive::packTEField(U8 *cur_ptr, U8 *data_ptr, U8 data_size, U8 last_face_index, EMsgVariableType type) const  {  	S32 face_index; @@ -1148,12 +1149,12 @@ BOOL LLPrimitive::packTEMessage(LLMessageSystem *mesgsys) const  			const LLTextureEntry* te = getTE(face_index);  			scale_s[face_index] = (F32) te->mScaleS;  			scale_t[face_index] = (F32) te->mScaleT; -			offset_s[face_index] = (S16) llround((llclamp(te->mOffsetS,-1.0f,1.0f) * (F32)0x7FFF)) ; -			offset_t[face_index] = (S16) llround((llclamp(te->mOffsetT,-1.0f,1.0f) * (F32)0x7FFF)) ; -			image_rot[face_index] = (S16) llround(((fmod(te->mRotation, F_TWO_PI)/F_TWO_PI) * TEXTURE_ROTATION_PACK_FACTOR)); +			offset_s[face_index] = (S16) ll_round((llclamp(te->mOffsetS,-1.0f,1.0f) * (F32)0x7FFF)) ; +			offset_t[face_index] = (S16) ll_round((llclamp(te->mOffsetT,-1.0f,1.0f) * (F32)0x7FFF)) ; +			image_rot[face_index] = (S16) ll_round(((fmod(te->mRotation, F_TWO_PI)/F_TWO_PI) * TEXTURE_ROTATION_PACK_FACTOR));  			bump[face_index] = te->getBumpShinyFullbright();  			media_flags[face_index] = te->getMediaTexGen(); -			glow[face_index] = (U8) llround((llclamp(te->getGlow(), 0.0f, 1.0f) * (F32)0xFF)); +			glow[face_index] = (U8) ll_round((llclamp(te->getGlow(), 0.0f, 1.0f) * (F32)0xFF));  			// Directly sending material_ids is not safe!  			memcpy(&material_data[face_index*16],getTE(face_index)->getMaterialID().get(),16);	/* Flawfinder: ignore */  @@ -1233,12 +1234,12 @@ BOOL LLPrimitive::packTEMessage(LLDataPacker &dp) const  			const LLTextureEntry* te = getTE(face_index);  			scale_s[face_index] = (F32) te->mScaleS;  			scale_t[face_index] = (F32) te->mScaleT; -			offset_s[face_index] = (S16) llround((llclamp(te->mOffsetS,-1.0f,1.0f) * (F32)0x7FFF)) ; -			offset_t[face_index] = (S16) llround((llclamp(te->mOffsetT,-1.0f,1.0f) * (F32)0x7FFF)) ; -			image_rot[face_index] = (S16) llround(((fmod(te->mRotation, F_TWO_PI)/F_TWO_PI) * TEXTURE_ROTATION_PACK_FACTOR)); +			offset_s[face_index] = (S16) ll_round((llclamp(te->mOffsetS,-1.0f,1.0f) * (F32)0x7FFF)) ; +			offset_t[face_index] = (S16) ll_round((llclamp(te->mOffsetT,-1.0f,1.0f) * (F32)0x7FFF)) ; +			image_rot[face_index] = (S16) ll_round(((fmod(te->mRotation, F_TWO_PI)/F_TWO_PI) * TEXTURE_ROTATION_PACK_FACTOR));  			bump[face_index] = te->getBumpShinyFullbright();  			media_flags[face_index] = te->getMediaTexGen(); -            glow[face_index] = (U8) llround((llclamp(te->getGlow(), 0.0f, 1.0f) * (F32)0xFF)); +            glow[face_index] = (U8) ll_round((llclamp(te->getGlow(), 0.0f, 1.0f) * (F32)0xFF));  			// Directly sending material_ids is not safe!  			memcpy(&material_data[face_index*16],getTE(face_index)->getMaterialID().get(),16);	/* Flawfinder: ignore */  @@ -1360,9 +1361,8 @@ S32 LLPrimitive::applyParsedTEMessage(LLTEContents& tec)  		retval |= setTEBumpShinyFullbright(i, tec.bump[i]);  		retval |= setTEMediaTexGen(i, tec.media_flags[i]);  		retval |= setTEGlow(i, (F32)tec.glow[i] / (F32)0xFF); -		 -                retval |= setTEMaterialID(i, tec.material_ids[i]); -		 +		retval |= setTEMaterialID(i, tec.material_ids[i]); +  		coloru = LLColor4U(tec.colors + 4*i);  		// Note:  This is an optimization to send common colors (1.f, 1.f, 1.f, 1.f) diff --git a/indra/llprimitive/llprimitive.h b/indra/llprimitive/llprimitive.h index cdb3f273c2..1bf83e36b4 100755 --- a/indra/llprimitive/llprimitive.h +++ b/indra/llprimitive/llprimitive.h @@ -389,6 +389,8 @@ public:  	virtual BOOL setMaterial(const U8 material); // returns TRUE if material changed  	virtual void setTESelected(const U8 te, bool sel); +	LLMaterialPtr getTEMaterialParams(const U8 index); +  	void copyTEs(const LLPrimitive *primitive);  	S32 packTEField(U8 *cur_ptr, U8 *data_ptr, U8 data_size, U8 last_face_index, EMsgVariableType type) const;  	S32 unpackTEField(U8 *cur_ptr, U8 *buffer_end, U8 *data_ptr, U8 data_size, U8 face_count, EMsgVariableType type); diff --git a/indra/llprimitive/llprimtexturelist.cpp b/indra/llprimitive/llprimtexturelist.cpp index dfae9699ec..f4f08248b8 100755 --- a/indra/llprimitive/llprimtexturelist.cpp +++ b/indra/llprimitive/llprimtexturelist.cpp @@ -377,6 +377,16 @@ S32 LLPrimTextureList::setMaterialParams(const U8 index, const LLMaterialPtr pMa  	return TEM_CHANGE_NONE;  } +LLMaterialPtr LLPrimTextureList::getMaterialParams(const U8 index) +{ +	if (index < mEntryList.size()) +	{ +		return mEntryList[index]->getMaterialParams(); +	} +	 +	return LLMaterialPtr(); +} +  S32 LLPrimTextureList::size() const  {  	return mEntryList.size(); diff --git a/indra/llprimitive/llprimtexturelist.h b/indra/llprimitive/llprimtexturelist.h index d7fabbbb79..49c636e40f 100755 --- a/indra/llprimitive/llprimtexturelist.h +++ b/indra/llprimitive/llprimtexturelist.h @@ -107,6 +107,8 @@ public:  	S32 setMaterialID(const U8 index, const LLMaterialID& pMaterialID);  	S32 setMaterialParams(const U8 index, const LLMaterialPtr pMaterialParams); +	LLMaterialPtr getMaterialParams(const U8 index); +  	S32 size() const;  //	void forceResize(S32 new_size); diff --git a/indra/llprimitive/llvolumemessage.cpp b/indra/llprimitive/llvolumemessage.cpp index a2c2666146..8d47a7147f 100755 --- a/indra/llprimitive/llvolumemessage.cpp +++ b/indra/llprimitive/llvolumemessage.cpp @@ -52,13 +52,13 @@ bool LLVolumeMessage::packProfileParams(  	tempU8 = params->getCurveType();  	mesgsys->addU8Fast(_PREHASH_ProfileCurve, tempU8); -	tempU16 = (U16) llround( params->getBegin() / CUT_QUANTA); +	tempU16 = (U16) ll_round( params->getBegin() / CUT_QUANTA);  	mesgsys->addU16Fast(_PREHASH_ProfileBegin, tempU16); -	tempU16 = 50000 - (U16) llround(params->getEnd() / CUT_QUANTA); +	tempU16 = 50000 - (U16) ll_round(params->getEnd() / CUT_QUANTA);  	mesgsys->addU16Fast(_PREHASH_ProfileEnd, tempU16); -	tempU16 = (U16) llround(params->getHollow() / HOLLOW_QUANTA); +	tempU16 = (U16) ll_round(params->getHollow() / HOLLOW_QUANTA);  	mesgsys->addU16Fast(_PREHASH_ProfileHollow, tempU16);  	return true; @@ -80,13 +80,13 @@ bool LLVolumeMessage::packProfileParams(  	tempU8 = params->getCurveType();  	dp.packU8(tempU8, "Curve"); -	tempU16 = (U16) llround( params->getBegin() / CUT_QUANTA); +	tempU16 = (U16) ll_round( params->getBegin() / CUT_QUANTA);  	dp.packU16(tempU16, "Begin"); -	tempU16 = 50000 - (U16) llround(params->getEnd() / CUT_QUANTA); +	tempU16 = 50000 - (U16) ll_round(params->getEnd() / CUT_QUANTA);  	dp.packU16(tempU16, "End"); -	tempU16 = (U16) llround(params->getHollow() / HOLLOW_QUANTA); +	tempU16 = (U16) ll_round(params->getHollow() / HOLLOW_QUANTA);  	dp.packU16(tempU16, "Hollow");  	return true;  } @@ -217,46 +217,46 @@ bool LLVolumeMessage::packPathParams(  	U8 curve = params->getCurveType();  	mesgsys->addU8Fast(_PREHASH_PathCurve, curve); -	U16 begin = (U16) llround(params->getBegin() / CUT_QUANTA); +	U16 begin = (U16) ll_round(params->getBegin() / CUT_QUANTA);  	mesgsys->addU16Fast(_PREHASH_PathBegin, begin); -	U16 end = 50000 - (U16) llround(params->getEnd() / CUT_QUANTA); +	U16 end = 50000 - (U16) ll_round(params->getEnd() / CUT_QUANTA);  	mesgsys->addU16Fast(_PREHASH_PathEnd, end);  	// Avoid truncation problem with direct F32->U8 cast.  	// (e.g., (U8) (0.50 / 0.01) = (U8) 49.9999999 = 49 not 50. -	U8 pack_scale_x = 200 - (U8) llround(params->getScaleX() / SCALE_QUANTA); +	U8 pack_scale_x = 200 - (U8) ll_round(params->getScaleX() / SCALE_QUANTA);  	mesgsys->addU8Fast(_PREHASH_PathScaleX, pack_scale_x ); -	U8 pack_scale_y = 200 - (U8) llround(params->getScaleY() / SCALE_QUANTA); +	U8 pack_scale_y = 200 - (U8) ll_round(params->getScaleY() / SCALE_QUANTA);  	mesgsys->addU8Fast(_PREHASH_PathScaleY, pack_scale_y ); -	U8 pack_shear_x = (U8) llround(params->getShearX() / SHEAR_QUANTA); +	U8 pack_shear_x = (U8) ll_round(params->getShearX() / SHEAR_QUANTA);  	mesgsys->addU8Fast(_PREHASH_PathShearX, pack_shear_x ); -	U8 pack_shear_y = (U8) llround(params->getShearY() / SHEAR_QUANTA); +	U8 pack_shear_y = (U8) ll_round(params->getShearY() / SHEAR_QUANTA);  	mesgsys->addU8Fast(_PREHASH_PathShearY, pack_shear_y ); -	S8 twist = (S8) llround(params->getTwist() / SCALE_QUANTA); +	S8 twist = (S8) ll_round(params->getTwist() / SCALE_QUANTA);  	mesgsys->addS8Fast(_PREHASH_PathTwist, twist); -	S8 twist_begin = (S8) llround(params->getTwistBegin() / SCALE_QUANTA); +	S8 twist_begin = (S8) ll_round(params->getTwistBegin() / SCALE_QUANTA);  	mesgsys->addS8Fast(_PREHASH_PathTwistBegin, twist_begin); -	S8 radius_offset = (S8) llround(params->getRadiusOffset() / SCALE_QUANTA); +	S8 radius_offset = (S8) ll_round(params->getRadiusOffset() / SCALE_QUANTA);  	mesgsys->addS8Fast(_PREHASH_PathRadiusOffset, radius_offset); -	S8 taper_x = (S8) llround(params->getTaperX() / TAPER_QUANTA); +	S8 taper_x = (S8) ll_round(params->getTaperX() / TAPER_QUANTA);  	mesgsys->addS8Fast(_PREHASH_PathTaperX, taper_x); -	S8 taper_y = (S8) llround(params->getTaperY() / TAPER_QUANTA); +	S8 taper_y = (S8) ll_round(params->getTaperY() / TAPER_QUANTA);  	mesgsys->addS8Fast(_PREHASH_PathTaperY, taper_y); -	U8 revolutions = (U8) llround( (params->getRevolutions() - 1.0f) / REV_QUANTA); +	U8 revolutions = (U8) ll_round( (params->getRevolutions() - 1.0f) / REV_QUANTA);  	mesgsys->addU8Fast(_PREHASH_PathRevolutions, revolutions); -	S8 skew = (S8) llround(params->getSkew() / SCALE_QUANTA); +	S8 skew = (S8) ll_round(params->getSkew() / SCALE_QUANTA);  	mesgsys->addS8Fast(_PREHASH_PathSkew, skew);  	return true; @@ -274,46 +274,46 @@ bool LLVolumeMessage::packPathParams(  	U8 curve = params->getCurveType();  	dp.packU8(curve, "Curve"); -	U16 begin = (U16) llround(params->getBegin() / CUT_QUANTA); +	U16 begin = (U16) ll_round(params->getBegin() / CUT_QUANTA);  	dp.packU16(begin, "Begin"); -	U16 end = 50000 - (U16) llround(params->getEnd() / CUT_QUANTA); +	U16 end = 50000 - (U16) ll_round(params->getEnd() / CUT_QUANTA);  	dp.packU16(end, "End");  	// Avoid truncation problem with direct F32->U8 cast.  	// (e.g., (U8) (0.50 / 0.01) = (U8) 49.9999999 = 49 not 50. -	U8 pack_scale_x = 200 - (U8) llround(params->getScaleX() / SCALE_QUANTA); +	U8 pack_scale_x = 200 - (U8) ll_round(params->getScaleX() / SCALE_QUANTA);  	dp.packU8(pack_scale_x, "ScaleX"); -	U8 pack_scale_y = 200 - (U8) llround(params->getScaleY() / SCALE_QUANTA); +	U8 pack_scale_y = 200 - (U8) ll_round(params->getScaleY() / SCALE_QUANTA);  	dp.packU8(pack_scale_y, "ScaleY"); -	S8 pack_shear_x = (S8) llround(params->getShearX() / SHEAR_QUANTA); +	S8 pack_shear_x = (S8) ll_round(params->getShearX() / SHEAR_QUANTA);  	dp.packU8(*(U8 *)&pack_shear_x, "ShearX"); -	S8 pack_shear_y = (S8) llround(params->getShearY() / SHEAR_QUANTA); +	S8 pack_shear_y = (S8) ll_round(params->getShearY() / SHEAR_QUANTA);  	dp.packU8(*(U8 *)&pack_shear_y, "ShearY"); -	S8 twist = (S8) llround(params->getTwist() / SCALE_QUANTA); +	S8 twist = (S8) ll_round(params->getTwist() / SCALE_QUANTA);  	dp.packU8(*(U8 *)&twist, "Twist"); -	S8 twist_begin = (S8) llround(params->getTwistBegin() / SCALE_QUANTA); +	S8 twist_begin = (S8) ll_round(params->getTwistBegin() / SCALE_QUANTA);  	dp.packU8(*(U8 *)&twist_begin, "TwistBegin"); -	S8 radius_offset = (S8) llround(params->getRadiusOffset() / SCALE_QUANTA); +	S8 radius_offset = (S8) ll_round(params->getRadiusOffset() / SCALE_QUANTA);  	dp.packU8(*(U8 *)&radius_offset, "RadiusOffset"); -	S8 taper_x = (S8) llround(params->getTaperX() / TAPER_QUANTA); +	S8 taper_x = (S8) ll_round(params->getTaperX() / TAPER_QUANTA);  	dp.packU8(*(U8 *)&taper_x, "TaperX"); -	S8 taper_y = (S8) llround(params->getTaperY() / TAPER_QUANTA); +	S8 taper_y = (S8) ll_round(params->getTaperY() / TAPER_QUANTA);  	dp.packU8(*(U8 *)&taper_y, "TaperY"); -	U8 revolutions = (U8) llround( (params->getRevolutions() - 1.0f) / REV_QUANTA); +	U8 revolutions = (U8) ll_round( (params->getRevolutions() - 1.0f) / REV_QUANTA);  	dp.packU8(*(U8 *)&revolutions, "Revolutions"); -	S8 skew = (S8) llround(params->getSkew() / SCALE_QUANTA); +	S8 skew = (S8) ll_round(params->getSkew() / SCALE_QUANTA);  	dp.packU8(*(U8 *)&skew, "Skew");  	return true; diff --git a/indra/llprimitive/object_flags.h b/indra/llprimitive/object_flags.h index 31dbd15ae0..88eaeb034a 100755 --- a/indra/llprimitive/object_flags.h +++ b/indra/llprimitive/object_flags.h @@ -69,6 +69,7 @@ const U32   FLAGS_TEMPORARY_ON_REZ     = (1U << 29);  //const U32 FLAGS_UNUSED_007           = (1U << 31); // was FLAGS_ZLIB_COMPRESSED  const U32   FLAGS_LOCAL                = FLAGS_ANIM_SOURCE | FLAGS_CAMERA_SOURCE; +const U32   FLAGS_WORLD                = FLAGS_USE_PHYSICS | FLAGS_PHANTOM | FLAGS_TEMPORARY_ON_REZ;  typedef enum e_havok_joint_type  {  | 
