diff options
| author | Todd Stinson <stinson@lindenlab.com> | 2011-12-16 17:30:12 -0800 | 
|---|---|---|
| committer | Todd Stinson <stinson@lindenlab.com> | 2011-12-16 17:30:12 -0800 | 
| commit | 64acf29c53639cbd3784f5bcc617b02985cbe412 (patch) | |
| tree | be289059b8ce2a34fefb6d0436df67e7fdf483ab | |
| parent | 6b2df5d57a4d973dea8cac99feb47330ccaa2397 (diff) | |
Hooking the navmesh and exclusion volumes render states up to the pathfinding console floater.
| -rw-r--r-- | indra/newview/llfloaterpathfindingconsole.cpp | 82 | ||||
| -rw-r--r-- | indra/newview/llfloaterpathfindingconsole.h | 14 | ||||
| -rw-r--r-- | indra/newview/llviewermenufile.cpp | 32 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_pathfinding_console.xml | 8 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 13 | 
5 files changed, 92 insertions, 57 deletions
diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index a2182a2551..129921d93e 100644 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -31,6 +31,9 @@  #include "llsd.h"  #include "llbutton.h" +#include "llcheckboxctrl.h" + +#include "llpathinglib.h"
  //---------------------------------------------------------------------------  // LLFloaterPathfindingConsole @@ -38,16 +41,33 @@  BOOL LLFloaterPathfindingConsole::postBuild()  { -	LLButton *linksetBtn = getChild<LLButton>("view_and_edit_linksets"); -	llassert(linksetBtn != NULL); +	childSetAction("view_and_edit_linksets", boost::bind(&LLFloaterPathfindingConsole::onViewEditLinksetClicked, this)); + +	mShowNavmeshCheckBox = findChild<LLCheckBoxCtrl>("show_navmesh_overlay"); +	llassert(mShowNavmeshCheckBox != NULL); +	mShowNavmeshCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowNavmeshToggle, this)); + +	mShowExcludeVolumesCheckBox = findChild<LLCheckBoxCtrl>("show_exclusion_volumes"); +	llassert(mShowExcludeVolumesCheckBox != NULL); +	mShowExcludeVolumesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowExcludeVolumesToggle, this)); + +	mShowPathCheckBox = findChild<LLCheckBoxCtrl>("show_path"); +	llassert(mShowPathCheckBox != NULL); +	mShowPathCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowPathToggle, this)); + +	mShowWaterPlaneCheckBox = findChild<LLCheckBoxCtrl>("show_water_plane"); +	llassert(mShowWaterPlaneCheckBox != NULL); +	mShowWaterPlaneCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowWaterPlaneToggle, this)); -	linksetBtn->setClickedCallback(boost::bind(&LLFloaterPathfindingConsole::onViewEditLinksetClicked, this)); -		  	return LLFloater::postBuild();  } -LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& seed) -	: LLFloater(seed) +LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed) +	: LLFloater(pSeed), +	mShowNavmeshCheckBox(NULL), +	mShowExcludeVolumesCheckBox(NULL), +	mShowPathCheckBox(NULL), +	mShowWaterPlaneCheckBox(NULL)  {  } @@ -55,6 +75,56 @@ LLFloaterPathfindingConsole::~LLFloaterPathfindingConsole()  {  } +void LLFloaterPathfindingConsole::onShowNavmeshToggle() +{ +	BOOL checkBoxValue = mShowNavmeshCheckBox->get(); + +	LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); +	if (llPathingLibInstance != NULL)
 +	{
 +		llPathingLibInstance->setRenderNavMesh(checkBoxValue);
 +	}
 +	else
 +	{
 +		mShowNavmeshCheckBox->set(FALSE);
 +		llwarns << "cannot find LLPathingLib instance" << llendl;
 +	}
 +} + +void LLFloaterPathfindingConsole::onShowExcludeVolumesToggle() +{ +	BOOL checkBoxValue = mShowExcludeVolumesCheckBox->get(); + +	LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); +	if (llPathingLibInstance != NULL)
 +	{
 +		llPathingLibInstance->setRenderNavMeshandShapes(checkBoxValue);
 +	}
 +	else
 +	{
 +		mShowExcludeVolumesCheckBox->set(FALSE);
 +		llwarns << "cannot find LLPathingLib instance" << llendl;
 +	}
 +} + +void LLFloaterPathfindingConsole::onShowPathToggle() +{ +	BOOL checkBoxValue = mShowPathCheckBox->get(); + +	llwarns << "functionality has not yet been implemented to toggle '" +			<< mShowPathCheckBox->getLabel() << "' to " +			<< (checkBoxValue ? "ON" : "OFF") << llendl; +} + +void LLFloaterPathfindingConsole::onShowWaterPlaneToggle() +{ +	BOOL checkBoxValue = mShowWaterPlaneCheckBox->get(); + +	llwarns << "functionality has not yet been implemented to toggle '" +			<< mShowWaterPlaneCheckBox->getLabel() << "' to " +			<< (checkBoxValue ? "ON" : "OFF") << llendl; +} +  void LLFloaterPathfindingConsole::onViewEditLinksetClicked()  {  	LLFloaterPathfindingLinksets::openLinksetsEditor(); diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h index 4c61044b1d..b6107ea64b 100644 --- a/indra/newview/llfloaterpathfindingconsole.h +++ b/indra/newview/llfloaterpathfindingconsole.h @@ -31,6 +31,7 @@  #include "llfloater.h"  class LLSD; +class LLCheckBoxCtrl;  class LLFloaterPathfindingConsole  :	public LLFloater @@ -45,10 +46,19 @@ protected:  private:  	// Does its own instance management, so clients not allowed  	// to allocate or destroy. -	LLFloaterPathfindingConsole(const LLSD& seed); +	LLFloaterPathfindingConsole(const LLSD& pSeed);  	virtual ~LLFloaterPathfindingConsole(); -		 + +	void onShowNavmeshToggle(); +	void onShowExcludeVolumesToggle(); +	void onShowPathToggle(); +	void onShowWaterPlaneToggle();  	void onViewEditLinksetClicked(); + +	LLCheckBoxCtrl *mShowNavmeshCheckBox; +	LLCheckBoxCtrl *mShowExcludeVolumesCheckBox; +	LLCheckBoxCtrl *mShowPathCheckBox; +	LLCheckBoxCtrl *mShowWaterPlaneCheckBox;  };  #endif // LL_LLFLOATERPATHFINDINGCONSOLE_H diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 850bf35c61..b5df16566a 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -80,36 +80,6 @@  // system libraries
  #include <boost/tokenizer.hpp>
 -class LLBuildNavMesh  : public view_listener_t
 -{
 -	bool handleEvent(const LLSD& userdata)
 -	{
 -		bool result = true;
 -		return result;
 -	}
 -};
 -class LLNavMeshRenderingToggle : public view_listener_t
 -{
 -	bool handleEvent(const LLSD& userdata)
 -	{
 -		if ( LLPathingLib::getInstance() )
 -		{
 -			LLPathingLib::getInstance()->toggleRenderNavMeshState( );
 -		}
 -		return true;
 -	}
 -};
 -class LLNavMeshShapeRenderingToggle : public view_listener_t
 -{
 -	bool handleEvent(const LLSD& userdata)
 -	{
 -		if ( LLPathingLib::getInstance() )
 -		{
 -			LLPathingLib::getInstance()->toggleRenderShapeState( );
 -		}
 -		return true;
 -	}
 -};
  //prep#
  class LLPathingTools  : public view_listener_t, LLNavMeshDownloadObserver
  {
 @@ -1342,7 +1312,5 @@ void init_menu_file()  	//prep#
  	view_listener_t::addCommit(new LLPathingTools(), "PathingTools.RetrieveSrc");
 -	view_listener_t::addCommit(new LLNavMeshRenderingToggle(), "PathingTools.ToggleNavMeshView");
 -		view_listener_t::addCommit(new LLNavMeshShapeRenderingToggle(), "PathingTools.ToggleNavMeshShapeView");
  	// "File.SaveTexture" moved to llpanelmaininventory so that it can be properly handled.
  }
 diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml index dfb2eca4c8..ff1cf81d4e 100644 --- a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml +++ b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml @@ -28,7 +28,7 @@        label="Navmesh"        layout="topleft"        left="20" -      name="DisplayNavmeshOverlay" +      name="show_navmesh_overlay"        top_pad="5"        width="90" />    <check_box @@ -36,7 +36,7 @@        label="Exclusion volumes"        layout="topleft"        left="20" -      name="DisplayExclusionVolumes" +      name="show_exclusion_volumes"        top_pad="0"        width="90" />    <check_box @@ -44,7 +44,7 @@        label="Path"        layout="topleft"        left="20" -      name="DisplayPath" +      name="show_path"        top_pad="0"        width="90" />    <check_box @@ -52,7 +52,7 @@        label="Water plane"        layout="topleft"        left="20" -      name="DisplayWaterPlane" +      name="show_water_plane"        top_pad="0"        width="90" />    <text diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index d2a5556124..986f7b226e 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -971,19 +971,6 @@                  function="PathingTools.RetrieveSrc" />            </menu_item_call> -          <menu_item_call -              label="Toggle Navigation Mesh Display" -              name="Toggle Navigation Mesh View"> -            <menu_item_call.on_click -                function="PathingTools.ToggleNavMeshView" /> -          </menu_item_call> - -          <menu_item_call -              label="Toggle Navigation Mesh Shape Display" -              name="Toggle Navigation Mesh Shape View"> -            <menu_item_call.on_click -                function="PathingTools.ToggleNavMeshShapeView" /> -          </menu_item_call>          </menu>          <menu_item_separator/>  | 
