diff options
| -rw-r--r-- | .hgtags | 3 | ||||
| -rw-r--r-- | indra/llprimitive/llmodel.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llagentcamera.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llfloatermodelpreview.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llfloaterregioninfo.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llfloatersearch.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llpanelobject.cpp | 88 | ||||
| -rw-r--r-- | indra/newview/llpanelobject.h | 5 | ||||
| -rw-r--r-- | indra/newview/llpanelvolume.cpp | 94 | ||||
| -rw-r--r-- | indra/newview/llpanelvolume.h | 6 | ||||
| -rw-r--r-- | indra/newview/llselectmgr.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llviewerobject.cpp | 17 | ||||
| -rw-r--r-- | indra/newview/llviewerobject.h | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_model_preview.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_model_wizard.xml | 4 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_tools.xml | 80 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_inventory_add.xml | 14 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_region_general.xml | 1 | 
19 files changed, 200 insertions, 180 deletions
| @@ -111,3 +111,6 @@ d7fcefabdf32bb61a9ea6d6037c1bb26190a85bc 2.6.3-beta1  bb1075286b3b147b1dae2e3d6b2d56f04ff03f35 DRTVWR-52_2.6.6-beta1  bb1075286b3b147b1dae2e3d6b2d56f04ff03f35 2.6.6-beta1  5e349dbe9cc84ea5795af8aeb6d473a0af9d4953 2.6.8-start +11d5d8080e67c3955914caf98f2eb116af30e55a 2.6.9-start +11d5d8080e67c3955914caf98f2eb116af30e55a 2.6.9-start +e67da2c6e3125966dd49eef98b36317afac1fcfe 2.6.9-start diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp index 794cdb83d5..57ac7a143f 100644 --- a/indra/llprimitive/llmodel.cpp +++ b/indra/llprimitive/llmodel.cpp @@ -991,6 +991,9 @@ void LLModel::normalizeVolumeFaces()  		scale.splat(1.f);  		scale.div(size); +		LLVector4a inv_scale(1.f); +		inv_scale.div(scale); +  		for (U32 i = 0; i < mVolumeFaces.size(); ++i)  		{  			LLVolumeFace& face = mVolumeFaces[i]; @@ -1007,10 +1010,14 @@ void LLModel::normalizeVolumeFaces()  			// For all the positions, we scale  			// the positions to fit within the unit cube.  			LLVector4a* pos = (LLVector4a*) face.mPositions; +			LLVector4a* norm = (LLVector4a*) face.mNormals; +  			for (U32 j = 0; j < face.mNumVertices; ++j)  			{  			 	pos[j].add(trans);  				pos[j].mul(scale); +				norm[j].mul(inv_scale); +				norm[j].normalize3();  			}  		} diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 071fcd2a3f..78db307d64 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3982,17 +3982,6 @@        <key>Value</key>        <string>http://search.secondlife.com/viewer/[CATEGORY]/?q=[QUERY]&p=[AUTH_TOKEN]&r=[MATURITY]&lang=[LANGUAGE]&g=[GODLIKE]&sid=[SESSION_ID]&rid=[REGION_ID]&pid=[PARCEL_ID]&channel=[CHANNEL]&version=[VERSION]&major=[VERSION_MAJOR]&minor=[VERSION_MINOR]&patch=[VERSION_PATCH]&build=[VERSION_BUILD]</string>      </map> -    <key>SearchURLBeta</key> -    <map> -      <key>Comment</key> -      <string>URL for Search website, displayed in the Find floater</string> -      <key>Persist</key> -      <integer>0</integer> -      <key>Type</key> -      <string>String</string> -      <key>Value</key> -      <string>http://beta.search.secondlife.com/viewer/[CATEGORY]/?q=[QUERY]&p=[AUTH_TOKEN]&r=[MATURITY]&lang=[LANGUAGE]&g=[GODLIKE]&sid=[SESSION_ID]&rid=[REGION_ID]&pid=[PARCEL_ID]&channel=[CHANNEL]&version=[VERSION]&major=[VERSION_MAJOR]&minor=[VERSION_MINOR]&patch=[VERSION_PATCH]&build=[VERSION_BUILD]</string> -    </map>      <key>WebProfileURL</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index c6b5a0113f..80085dad9d 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -394,7 +394,9 @@ LLVector3 LLAgentCamera::calcFocusOffset(LLViewerObject *object, LLVector3 origi  	LLQuaternion inv_obj_rot = ~obj_rot; // get inverse of rotation  	LLVector3 object_extents;	  	const LLVector4a* oe4 = object->mDrawable->getSpatialExtents(); -	object_extents.set( oe4[1][0], oe4[1][1], oe4[1][2] ); +	LLVector4a size; +	size.setSub(oe4[1], oe4[0]); +	object_extents.set( size[0], size[1], size[2] );  	// make sure they object extents are non-zero  	object_extents.clamp(0.001f, F32_MAX); diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index b7e9865228..241e908d8c 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -3848,6 +3848,18 @@ void LLModelPreview::updateStatusMessages()  		}  	} + +	//make sure no hulls have more than 256 points in them +	for (U32 i = 0; upload_ok && i < mModel[LLModel::LOD_PHYSICS].size(); ++i) +	{ +		LLModel* mdl = mModel[LLModel::LOD_PHYSICS][i]; + +		for (U32 j = 0; upload_ok && j < mdl->mPhysics.mHull.size(); ++j) +		{ +			upload_ok = upload_ok && mdl->mPhysics.mHull[i].size() <= 256; +		} +	} +  	bool errorStateFromLoader = getLoadState() >= LLModelLoader::ERROR_PARSING ? true : false;  	bool skinAndRigOk = true; @@ -3871,6 +3883,10 @@ void LLModelPreview::updateStatusMessages()  	{  		mFMP->childEnable("ok_btn");  	} +	else +	{ +		mFMP->childDisable("ok_btn"); +	}  	//add up physics triangles etc  	S32 start = 0; diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 34fda49375..fc6976755f 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -590,6 +590,11 @@ bool LLPanelRegionGeneralInfo::refreshFromRegion(LLViewerRegion* region)  	getChildView("im_btn")->setEnabled(allow_modify);  	getChildView("manage_telehub_btn")->setEnabled(allow_modify); +	const bool enable_mesh = gSavedSettings.getBOOL("MeshEnabled") &&  +		gAgent.getRegion() && +		!gAgent.getRegion()->getCapability("GetMesh").empty(); +	getChildView("mesh_rez_enabled_check")->setVisible(enable_mesh); +	getChildView("mesh_rez_enabled_check")->setEnabled(getChildView("mesh_rez_enabled_check")->getEnabled() && enable_mesh);  	// Data gets filled in by processRegionInfo  	return LLPanelRegionInfo::refreshFromRegion(region); diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index c8fe380710..d5806e375c 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -38,7 +38,6 @@  #include "llui.h"  #include "llviewercontrol.h"  #include "llweb.h" -#include "llversioninfo.h"  // support secondlife:///app/search/{CATEGORY}/{QUERY} SLapps  class LLSearchHandler : public LLCommandHandler @@ -204,15 +203,7 @@ void LLFloaterSearch::search(const LLSD &key)  	// get the search URL and expand all of the substitutions  	// (also adds things like [LANGUAGE], [VERSION], [OS], etc.) -	std::string url; -	if (LLVersionInfo::getChannel().find("Beta") != std::string::npos) -	{ -		url = gSavedSettings.getString("SearchURLBeta"); -	} -	else -	{ -		url = gSavedSettings.getString("SearchURL"); -	} +	std::string url = gSavedSettings.getString("SearchURL");  	url = LLWeb::expandURLSubstitutions(url, subs);  	// and load the URL in the web view diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 64af6c2157..204c146f3c 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -33,11 +33,9 @@  #include "lleconomy.h"  #include "llerror.h"  #include "llfontgl.h" -#include "llmaterialtable.h"  #include "llpermissionsflags.h"  #include "llstring.h"  #include "llvolume.h" -#include "material_codes.h"  #include "m3math.h"  // project includes @@ -57,7 +55,6 @@  #include "lltool.h"  #include "lltoolcomp.h"  #include "lltoolmgr.h" -#include "lltrans.h"  #include "llui.h"  #include "llviewerobject.h"  #include "llviewerregion.h" @@ -101,17 +98,6 @@ BOOL	LLPanelObject::postBuild()  {  	setMouseOpaque(FALSE); -	std::map<std::string, std::string> material_name_map; -	material_name_map["Stone"]= LLTrans::getString("Stone"); -	material_name_map["Metal"]= LLTrans::getString("Metal");	 -	material_name_map["Glass"]= LLTrans::getString("Glass");	 -	material_name_map["Wood"]= LLTrans::getString("Wood");	 -	material_name_map["Flesh"]= LLTrans::getString("Flesh"); -	material_name_map["Plastic"]= LLTrans::getString("Plastic"); -	material_name_map["Rubber"]= LLTrans::getString("Rubber");	 -	material_name_map["Light"]= LLTrans::getString("Light");		 -	 -	LLMaterialTable::basic.initTableTransNames(material_name_map);  	//--------------------------------------------------------  	// Top  	//-------------------------------------------------------- @@ -166,22 +152,6 @@ BOOL	LLPanelObject::postBuild()  	//-------------------------------------------------------- -	// material type popup -	mComboMaterial = getChild<LLComboBox>("material"); -	childSetCommitCallback("material",onCommitMaterial,this); -	mComboMaterial->removeall(); - -	for (LLMaterialTable::info_list_t::iterator iter = LLMaterialTable::basic.mMaterialInfoList.begin(); -		 iter != LLMaterialTable::basic.mMaterialInfoList.end(); ++iter) -	{ -		LLMaterialInfo* minfop = *iter; -		if (minfop->mMCode != LL_MCODE_LIGHT) -		{ -			mComboMaterial->add(minfop->mName);   -		} -	} -	mComboMaterialItemCount = mComboMaterial->getItemCount(); -  	// Base Type  	mComboBaseType = getChild<LLComboBox>("comboBaseType");  	childSetCommitCallback("comboBaseType",onCommitParametric,this); @@ -309,7 +279,6 @@ BOOL	LLPanelObject::postBuild()  LLPanelObject::LLPanelObject()  :	LLPanel(), -	mComboMaterialItemCount(0),  	mIsPhysical(FALSE),  	mIsTemporary(FALSE),  	mIsPhantom(FALSE), @@ -527,43 +496,6 @@ void LLPanelObject::getState( )  	mCheckCastShadows->setEnabled( roots_selected==1 && editable );  #endif -	// Update material part -	// slightly inefficient - materials are unique per object, not per TE -	U8 material_code = 0; -	struct f : public LLSelectedTEGetFunctor<U8> -	{ -		U8 get(LLViewerObject* object, S32 te) -		{ -			return object->getMaterial(); -		} -	} func; -	bool material_same = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, material_code ); -	std::string LEGACY_FULLBRIGHT_DESC = LLTrans::getString("Fullbright"); -	if (editable && single_volume && material_same) -	{ -		mComboMaterial->setEnabled( TRUE ); -		if (material_code == LL_MCODE_LIGHT) -		{ -			if (mComboMaterial->getItemCount() == mComboMaterialItemCount) -			{ -				mComboMaterial->add(LEGACY_FULLBRIGHT_DESC); -			} -			mComboMaterial->setSimple(LEGACY_FULLBRIGHT_DESC); -		} -		else -		{ -			if (mComboMaterial->getItemCount() != mComboMaterialItemCount) -			{ -				mComboMaterial->remove(LEGACY_FULLBRIGHT_DESC); -			} -			 -			mComboMaterial->setSimple(std::string(LLMaterialTable::basic.getName(material_code))); -		} -	} -	else -	{ -		mComboMaterial->setEnabled( FALSE ); -	}  	//----------------------------------------------------------------------------  	S32 selected_item	= MI_BOX; @@ -1245,25 +1177,6 @@ void LLPanelObject::sendCastShadows()  }  // static -void LLPanelObject::onCommitMaterial( LLUICtrl* ctrl, void* userdata ) -{ -	//LLPanelObject* self = (LLPanelObject*) userdata; -	LLComboBox* box = (LLComboBox*) ctrl; - -	if (box) -	{ -		// apply the currently selected material to the object -		const std::string& material_name = box->getSimple(); -		std::string LEGACY_FULLBRIGHT_DESC = LLTrans::getString("Fullbright"); -		if (material_name != LEGACY_FULLBRIGHT_DESC) -		{ -			U8 material_code = LLMaterialTable::basic.getMCode(material_name); -			LLSelectMgr::getInstance()->selectionSetMaterial(material_code); -		} -	} -} - -// static  void LLPanelObject::onCommitParametric( LLUICtrl* ctrl, void* userdata )  {  	LLPanelObject* self = (LLPanelObject*) userdata; @@ -1937,7 +1850,6 @@ void LLPanelObject::clearCtrls()  	mCheckCastShadows->set(FALSE);  	mCheckCastShadows->setEnabled( FALSE );  #endif -	mComboMaterial	->setEnabled( FALSE );  	// Disable text labels  	mLabelPosition	->setEnabled( FALSE );  	mLabelSize		->setEnabled( FALSE ); diff --git a/indra/newview/llpanelobject.h b/indra/newview/llpanelobject.h index e2f2a4400d..475dfdaedb 100644 --- a/indra/newview/llpanelobject.h +++ b/indra/newview/llpanelobject.h @@ -66,7 +66,6 @@ public:  	static void 	onCommitPhantom(		LLUICtrl* ctrl, void* userdata);  	static void 	onCommitCastShadows(	LLUICtrl* ctrl, void* userdata);  	static void 	onCommitPhysics(		LLUICtrl* ctrl, void* userdata); -	static void 	onCommitMaterial(		LLUICtrl* ctrl, void* userdata);  	static void 	onCommitParametric(LLUICtrl* ctrl, void* userdata); @@ -94,10 +93,6 @@ protected:  	void 			getVolumeParams(LLVolumeParams& volume_params);  protected: -	S32				mComboMaterialItemCount; - -	LLComboBox*		mComboMaterial; -	  	// Per-object options  	LLComboBox*		mComboBaseType; diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp index c443814c89..ebddaa90bc 100644 --- a/indra/newview/llpanelvolume.cpp +++ b/indra/newview/llpanelvolume.cpp @@ -59,6 +59,7 @@  #include "lltool.h"  #include "lltoolcomp.h"  #include "lltoolmgr.h" +#include "lltrans.h"  #include "llui.h"  #include "llviewerobject.h"  #include "llviewerregion.h" @@ -156,6 +157,34 @@ BOOL	LLPanelVolume::postBuild()  		mSpinPhysicsRestitution = getChild<LLSpinCtrl>("Physics Restitution");  		mSpinPhysicsRestitution->setCommitCallback(boost::bind(&LLPanelVolume::sendPhysicsRestitution, this, _1, mSpinPhysicsRestitution));  	} + +	std::map<std::string, std::string> material_name_map; +	material_name_map["Stone"]= LLTrans::getString("Stone"); +	material_name_map["Metal"]= LLTrans::getString("Metal");	 +	material_name_map["Glass"]= LLTrans::getString("Glass");	 +	material_name_map["Wood"]= LLTrans::getString("Wood");	 +	material_name_map["Flesh"]= LLTrans::getString("Flesh"); +	material_name_map["Plastic"]= LLTrans::getString("Plastic"); +	material_name_map["Rubber"]= LLTrans::getString("Rubber");	 +	material_name_map["Light"]= LLTrans::getString("Light");		 +	 +	LLMaterialTable::basic.initTableTransNames(material_name_map); + +	// material type popup +	mComboMaterial = getChild<LLComboBox>("material"); +	childSetCommitCallback("material",onCommitMaterial,this); +	mComboMaterial->removeall(); + +	for (LLMaterialTable::info_list_t::iterator iter = LLMaterialTable::basic.mMaterialInfoList.begin(); +		 iter != LLMaterialTable::basic.mMaterialInfoList.end(); ++iter) +	{ +		LLMaterialInfo* minfop = *iter; +		if (minfop->mMCode != LL_MCODE_LIGHT) +		{ +			mComboMaterial->add(minfop->mName);   +		} +	} +	mComboMaterialItemCount = mComboMaterial->getItemCount();  	// Start with everyone disabled  	clearCtrls(); @@ -164,7 +193,8 @@ BOOL	LLPanelVolume::postBuild()  }  LLPanelVolume::LLPanelVolume() -	: LLPanel() +	: LLPanel(), +	  mComboMaterialItemCount(0)  {  	setMouseOpaque(FALSE); @@ -379,6 +409,46 @@ void LLPanelVolume::getState( )  		getChildView("FlexForceZ")->setEnabled(false);  	} +	// Material properties + +	// Update material part +	// slightly inefficient - materials are unique per object, not per TE +	U8 material_code = 0; +	struct f : public LLSelectedTEGetFunctor<U8> +	{ +		U8 get(LLViewerObject* object, S32 te) +		{ +			return object->getMaterial(); +		} +	} func; +	bool material_same = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, material_code ); +	std::string LEGACY_FULLBRIGHT_DESC = LLTrans::getString("Fullbright"); +	if (editable && single_volume && material_same) +	{ +		mComboMaterial->setEnabled( TRUE ); +		if (material_code == LL_MCODE_LIGHT) +		{ +			if (mComboMaterial->getItemCount() == mComboMaterialItemCount) +			{ +				mComboMaterial->add(LEGACY_FULLBRIGHT_DESC); +			} +			mComboMaterial->setSimple(LEGACY_FULLBRIGHT_DESC); +		} +		else +		{ +			if (mComboMaterial->getItemCount() != mComboMaterialItemCount) +			{ +				mComboMaterial->remove(LEGACY_FULLBRIGHT_DESC); +			} +			 +			mComboMaterial->setSimple(std::string(LLMaterialTable::basic.getName(material_code))); +		} +	} +	else +	{ +		mComboMaterial->setEnabled( FALSE ); +	} +  	// Physics properties  	mSpinPhysicsGravity->set(objectp->getPhysicsGravity()); @@ -467,7 +537,6 @@ void LLPanelVolume::refresh()  	getChildView("label physicsshapetype")->setVisible(enable_mesh);  	getChildView("Physics Shape Type Combo Ctrl")->setVisible(enable_mesh);  	getChildView("Physics Gravity")->setVisible(enable_mesh); -	getChildView("Physics Material Override")->setVisible(enable_mesh);  	getChildView("Physics Friction")->setVisible(enable_mesh);  	getChildView("Physics Density")->setVisible(enable_mesh);  	getChildView("Physics Restitution")->setVisible(enable_mesh); @@ -522,6 +591,8 @@ void LLPanelVolume::clearCtrls()  	mSpinPhysicsFriction->setEnabled(FALSE);  	mSpinPhysicsDensity->setEnabled(FALSE);  	mSpinPhysicsRestitution->setEnabled(FALSE); + +	mComboMaterial->setEnabled( FALSE );  }  // @@ -674,6 +745,25 @@ void LLPanelVolume::onLightSelectTexture(const LLSD& data)  }  // static +void LLPanelVolume::onCommitMaterial( LLUICtrl* ctrl, void* userdata ) +{ +	//LLPanelObject* self = (LLPanelObject*) userdata; +	LLComboBox* box = (LLComboBox*) ctrl; + +	if (box) +	{ +		// apply the currently selected material to the object +		const std::string& material_name = box->getSimple(); +		std::string LEGACY_FULLBRIGHT_DESC = LLTrans::getString("Fullbright"); +		if (material_name != LEGACY_FULLBRIGHT_DESC) +		{ +			U8 material_code = LLMaterialTable::basic.getMCode(material_name); +			LLSelectMgr::getInstance()->selectionSetMaterial(material_code); +		} +	} +} + +// static  void LLPanelVolume::onCommitLight( LLUICtrl* ctrl, void* userdata )  {  	LLPanelVolume* self = (LLPanelVolume*) userdata; diff --git a/indra/newview/llpanelvolume.h b/indra/newview/llpanelvolume.h index 776a2c1f4a..0ef47db0d9 100644 --- a/indra/newview/llpanelvolume.h +++ b/indra/newview/llpanelvolume.h @@ -63,8 +63,8 @@ public:  	static void 	onCommitLight(			LLUICtrl* ctrl, void* userdata);  	static void 	onCommitIsFlexible(		LLUICtrl* ctrl, void* userdata);  	static void 	onCommitFlexible(		LLUICtrl* ctrl, void* userdata); -  	static void     onCommitPhysicsParam(       LLUICtrl* ctrl, void* userdata); +	static void 	onCommitMaterial(		LLUICtrl* ctrl, void* userdata);  	void		onLightCancelColor(const LLSD& data);  	void		onLightSelectColor(const LLSD& data); @@ -104,6 +104,10 @@ protected:  	LLSpinCtrl*		mSpinForce[3];  */ +	S32			mComboMaterialItemCount; +	LLComboBox*		mComboMaterial; +	 +  	LLColor4		mLightSavedColor;  	LLUUID			mLightSavedTexture;  	LLPointer<LLViewerObject> mObject; diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 9b264b81c7..8fa4065fa6 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -1997,7 +1997,7 @@ void LLSelectMgr::selectionSetPhysicsType(U8 type)  			if (object->permModify())  			{  				object->setPhysicsShapeType(mType); -				object->updateFlags(); +				object->updateFlags(TRUE);  			}  			return true;  		} @@ -2016,7 +2016,7 @@ void LLSelectMgr::selectionSetFriction(F32 friction)  			if (object->permModify())  			{  				object->setPhysicsFriction(mFriction); -				object->updateFlags(); +				object->updateFlags(TRUE);  			}  			return true;  		} @@ -2035,7 +2035,7 @@ void LLSelectMgr::selectionSetGravity(F32 gravity )  			if (object->permModify())  			{  				object->setPhysicsGravity(mGravity); -				object->updateFlags(); +				object->updateFlags(TRUE);  			}  			return true;  		} @@ -2054,7 +2054,7 @@ void LLSelectMgr::selectionSetDensity(F32 density )  			if (object->permModify())  			{  				object->setPhysicsDensity(mDensity); -				object->updateFlags(); +				object->updateFlags(TRUE);  			}  			return true;  		} @@ -2073,7 +2073,7 @@ void LLSelectMgr::selectionSetRestitution(F32 restitution)  			if (object->permModify())  			{  				object->setPhysicsRestitution(mRestitution); -				object->updateFlags(); +				object->updateFlags(TRUE);  			}  			return true;  		} diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 6d493bfcd5..f5fee662e6 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -5282,7 +5282,7 @@ bool LLViewerObject::specialHoverCursor() const  			|| (mClickAction != 0);  } -void LLViewerObject::updateFlags() +void LLViewerObject::updateFlags(BOOL physics_changed)  {  	LLViewerRegion* regionp = getRegion();  	if(!regionp) return; @@ -5295,12 +5295,15 @@ void LLViewerObject::updateFlags()  	gMessageSystem->addBOOL("IsTemporary", flagTemporaryOnRez() );  	gMessageSystem->addBOOL("IsPhantom", flagPhantom() );  	gMessageSystem->addBOOL("CastsShadows", flagCastShadows() ); -	gMessageSystem->nextBlock("ExtraPhysics"); -	gMessageSystem->addU8("PhysicsShapeType", getPhysicsShapeType() ); -	gMessageSystem->addF32("Density", getPhysicsDensity() ); -	gMessageSystem->addF32("Friction", getPhysicsFriction() ); -	gMessageSystem->addF32("Restitution", getPhysicsRestitution() ); -	gMessageSystem->addF32("GravityMultiplier", getPhysicsGravity() ); +	if (physics_changed) +	{ +		gMessageSystem->nextBlock("ExtraPhysics"); +		gMessageSystem->addU8("PhysicsShapeType", getPhysicsShapeType() ); +		gMessageSystem->addF32("Density", getPhysicsDensity() ); +		gMessageSystem->addF32("Friction", getPhysicsFriction() ); +		gMessageSystem->addF32("Restitution", getPhysicsRestitution() ); +		gMessageSystem->addF32("GravityMultiplier", getPhysicsGravity() ); +	}  	gMessageSystem->sendReliable( regionp->getHost() );  } diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index e417343bec..21198f7dd1 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -488,7 +488,7 @@ public:  	void			setRegion(LLViewerRegion *regionp);  	virtual void	updateRegion(LLViewerRegion *regionp); -	void updateFlags(); +	void updateFlags(BOOL physics_changed = FALSE);  	BOOL setFlags(U32 flag, BOOL state);  	void setPhysicsShapeType(U8 type);  	void setPhysicsGravity(F32 gravity); diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml index 374eeeb0de..85535c2078 100644 --- a/indra/newview/skins/default/xui/en/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml @@ -23,7 +23,7 @@    <string name="simplifying">Simplifying...</string> -  <text left="15" bottom="25" follows="top|left" height="15" name="name_label"> +  <text left="15" bottom="25" follows="top|left" height="15" max_length_bytes="64" name="name_label">      Name:    </text>    <line_editor bottom_delta="20" follows="top|left|right" height="19"  diff --git a/indra/newview/skins/default/xui/en/floater_model_wizard.xml b/indra/newview/skins/default/xui/en/floater_model_wizard.xml index 92d57b20be..47b2e5fd79 100644 --- a/indra/newview/skins/default/xui/en/floater_model_wizard.xml +++ b/indra/newview/skins/default/xui/en/floater_model_wizard.xml @@ -572,9 +572,9 @@ Advanced users familiar with 3d content creation tools may prefer to use the [se  		 bg_opaque_color="DkGray2"  		 background_visible="true"  		 background_opaque="true"> -      <text top="25" left="30" text_color="White" font="SansSerifSmallBold" width="300" height="4">Performance</text> +      <text top="15" left="20" text_color="White" font="SansSerifSmallBold" width="110" height="30" wrap="true" halign="center">Higher Performance</text>        <text top="45" left="10" halign="center" width="130" word_wrap="true"   font="SansSerifSmall" height="80">Faster rendering but less detailed; lowers Resource (prim) cost.</text> -      <text top="25" left="390" text_color="White" font="SansSerifSmallBold" width="300" height="4">Accuracy</text> +      <text top="15" left="372" text_color="White" font="SansSerifSmallBold" width="90" height="30" wrap="true" halign="center">Higher Accuracy</text>        <text top="45" left="360" halign="center" width="130" word_wrap="true"   font="SansSerifSmall" height="80">More detailed model but slower; increases Resource (prim) cost.</text>        <slider diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 05d47506db..40bf7bfed7 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -1608,41 +1608,6 @@ even though the user gets a free copy.                   name="Sculpted"                   value="Sculpted" />              </combo_box> -            <combo_box -             height="19" -             layout="topleft" -             name="material" -             top_pad="5" -             width="150"> -                <combo_box.item -                 label="Stone" -                 name="Stone" -                 value="Stone" /> -                <combo_box.item -                 label="Metal" -                 name="Metal" -                 value="Metal" /> -                <combo_box.item -                 label="Glass" -                 name="Glass" -                 value="Glass" /> -                <combo_box.item -                 label="Wood" -                 name="Wood" -                 value="Wood" /> -                <combo_box.item -                 label="Flesh" -                 name="Flesh" -                 value="Flesh" /> -                <combo_box.item -                 label="Plastic" -                 name="Plastic" -                 value="Plastic" /> -                <combo_box.item -                 label="Rubber" -                 name="Rubber" -                 value="Rubber" /> -            </combo_box>              <text               type="string"               length="1" @@ -2426,6 +2391,41 @@ even though the user gets a free copy.  			   name="Physics Shape Type Combo Ctrl"  			   tool_tip="Choose the physics shape type"  			   width="108"/> +            <combo_box +             height="19" +             layout="topleft" +             name="material" +             top_pad="5" +             width="150"> +                <combo_box.item +                 label="Stone" +                 name="Stone" +                 value="Stone" /> +                <combo_box.item +                 label="Metal" +                 name="Metal" +                 value="Metal" /> +                <combo_box.item +                 label="Glass" +                 name="Glass" +                 value="Glass" /> +                <combo_box.item +                 label="Wood" +                 name="Wood" +                 value="Wood" /> +                <combo_box.item +                 label="Flesh" +                 name="Flesh" +                 value="Flesh" /> +                <combo_box.item +                 label="Plastic" +                 name="Plastic" +                 value="Plastic" /> +                <combo_box.item +                 label="Rubber" +                 name="Rubber" +                 value="Rubber" /> +            </combo_box>              <spinner               follows="left|top" @@ -2441,16 +2441,6 @@ even though the user gets a free copy.               top_pad="10"               width="132" /> -            <check_box -             height="19" -             label="Override material" -             layout="topleft" -             left_delta="0" -             name="Physics Material Override" -             tool_tip="Override Material" -             top_pad="10" -             width="132" /> -              <spinner               follows="left|top"               height="19" diff --git a/indra/newview/skins/default/xui/en/menu_inventory_add.xml b/indra/newview/skins/default/xui/en/menu_inventory_add.xml index 484af63097..b36b82ebd8 100644 --- a/indra/newview/skins/default/xui/en/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory_add.xml @@ -42,7 +42,7 @@                      <menu_item_call.on_enable                       function="File.EnableUpload" />                  </menu_item_call> -		            <menu_item_call +		<menu_item_call                   label="Model..."                   layout="topleft"                   name="Upload Model"> @@ -54,6 +54,18 @@                  <menu_item_call.on_visible                  function="File.VisibleUploadModel"/>                  </menu_item_call> +              <menu_item_call +                label="Model Wizard..." +                layout="topleft" +                name="Upload Model Wizard"> +                <menu_item_call.on_click +                 function="Floater.Show" +                 parameter="upload_model_wizard" /> +                <menu_item_call.on_enable +                 function="File.EnableUploadModel" /> +                <menu_item_call.on_visible +                function="File.VisibleUploadModel"/> +	      </menu_item_call>                  <menu_item_call                   label="Bulk (L$[COST] per file)..."                   layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml index e0d9f3f714..3f9195d092 100644 --- a/indra/newview/skins/default/xui/en/panel_region_general.xml +++ b/indra/newview/skins/default/xui/en/panel_region_general.xml @@ -134,6 +134,7 @@       top="190"       width="80" />  	<check_box +     visible="FALSE"       height="20"       label="Allow Mesh Objects"       layout="topleft" | 
