diff options
author | Todd Stinson <stinson@lindenlab.com> | 2012-02-01 17:40:16 -0800 |
---|---|---|
committer | Todd Stinson <stinson@lindenlab.com> | 2012-02-01 17:40:16 -0800 |
commit | 2beb9c1903bc4164fe9e57c4a2eb1cc42d413ef4 (patch) | |
tree | c10fadc46dde9b7dd6a492ef714ed16bdf0d1856 /indra | |
parent | 28be2c4364f673f321bf8b738d69319ea9b4e8e5 (diff) |
PATH-198: Laid out the pathfinding buttons per Leo's design. Functionality is currently hooked up to stubs that report a warning message about lack of implementation.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llpanelvolume.cpp | 24 | ||||
-rw-r--r-- | indra/newview/llpanelvolume.h | 5 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/floater_tools.xml | 40 |
3 files changed, 68 insertions, 1 deletions
diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp index 12eea7844d..1b629f515b 100644 --- a/indra/newview/llpanelvolume.cpp +++ b/indra/newview/llpanelvolume.cpp @@ -68,6 +68,7 @@ #include "llworld.h" #include "pipeline.h" #include "llviewershadermgr.h" +#include "llradiogroup.h" #include "lldrawpool.h" #include "lluictrlfactory.h" @@ -158,6 +159,14 @@ BOOL LLPanelVolume::postBuild() mSpinPhysicsRestitution->setCommitCallback(boost::bind(&LLPanelVolume::sendPhysicsRestitution, this, _1, mSpinPhysicsRestitution)); } + // Pathfinding Parameters + { + // Pathfinding state + mPathfindingType = findChild<LLRadioGroup>("edit_pathfinding_state"); + llassert(mPathfindingType != NULL); + mPathfindingType->setCommitCallback(boost::bind(&LLPanelVolume::sendPathfindingType, this)); + } + std::map<std::string, std::string> material_name_map; material_name_map["Stone"]= LLTrans::getString("Stone"); material_name_map["Metal"]= LLTrans::getString("Metal"); @@ -194,7 +203,8 @@ BOOL LLPanelVolume::postBuild() LLPanelVolume::LLPanelVolume() : LLPanel(), - mComboMaterialItemCount(0) + mComboMaterialItemCount(0), + mPathfindingType(NULL) { setMouseOpaque(FALSE); @@ -463,6 +473,8 @@ void LLPanelVolume::getState( ) mSpinPhysicsRestitution->set(objectp->getPhysicsRestitution()); mSpinPhysicsRestitution->setEnabled(editable); + mPathfindingType->setEnabled(editable); + // update the physics shape combo to include allowed physics shapes mComboPhysicsShapeType->removeall(); mComboPhysicsShapeType->add(getString("None"), LLSD(1)); @@ -546,6 +558,8 @@ void LLPanelVolume::refresh() getChildView("Physics Friction")->setVisible(enable_mesh); getChildView("Physics Density")->setVisible(enable_mesh); getChildView("Physics Restitution")->setVisible(enable_mesh); + + mPathfindingType->setVisible(enable_mesh); /* TODO: add/remove individual physics shape types as per the PhysicsShapeTypes simulator features */ } @@ -600,6 +614,8 @@ void LLPanelVolume::clearCtrls() mSpinPhysicsDensity->setEnabled(FALSE); mSpinPhysicsRestitution->setEnabled(FALSE); + mPathfindingType->setEnabled(FALSE); + mComboMaterial->setEnabled( FALSE ); } @@ -685,6 +701,12 @@ void LLPanelVolume::sendPhysicsDensity(LLUICtrl* ctrl, void* userdata) LLSelectMgr::getInstance()->selectionSetDensity(val); } +void LLPanelVolume::sendPathfindingType() +{ + S32 val = mPathfindingType->getValue().asInteger(); + llwarns << "functionality to set '" << mPathfindingType->getName() << "' to value " << val << " has not been implemented." << llendl; +} + void LLPanelVolume::refreshCost() { LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getFirstObject(); diff --git a/indra/newview/llpanelvolume.h b/indra/newview/llpanelvolume.h index 0ef47db0d9..ae66414b0f 100644 --- a/indra/newview/llpanelvolume.h +++ b/indra/newview/llpanelvolume.h @@ -40,6 +40,7 @@ class LLButton; class LLViewerObject; class LLComboBox; class LLColorSwatchCtrl; +class LLRadioGroup; class LLPanelVolume : public LLPanel { @@ -84,6 +85,8 @@ protected: void sendPhysicsRestitution(LLUICtrl* ctrl, void* userdata); void sendPhysicsDensity(LLUICtrl* ctrl, void* userdata); + void sendPathfindingType(); + /* LLTextBox* mLabelSelectSingleMessage; // Light @@ -118,6 +121,8 @@ protected: LLSpinCtrl* mSpinPhysicsFriction; LLSpinCtrl* mSpinPhysicsDensity; LLSpinCtrl* mSpinPhysicsRestitution; + + LLRadioGroup* mPathfindingType; }; #endif diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index f9147ea650..b8ed10b339 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -2401,6 +2401,46 @@ even though the user gets a free copy. name="Physics Restitution" top_pad="8" width="132" /> + <text + type="string" + length="1" + follows="left|top" + height="10" + layout="topleft" + left_delta="0" + top_delta="45" + name="pathfinding_type_label" + width="121"> + Pathfinding Type: + </text> + <radio_group + follows="top|left" + height="55" + layout="topleft" + name="edit_pathfinding_state" + left_delta="0" + top_delta="15" + value="1" + width="75"> + <radio_item + label="Walkable" + layout="topleft" + height="13" + name="edit_pathfinding_state_walkable" + value="1"/> + <radio_item + label="Obstacle" + layout="topleft" + height="13" + name="edit_pathfinding_state_obstacle" + value="2"/> + <radio_item + label="Ignored" + layout="topleft" + height="13" + name="edit_pathfinding_state_ignored" + value="3"/> + </radio_group> </panel> <panel border="false" |