From 11bb14fe029a6764717475cdf53bb6eed8c1f9c9 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Mon, 19 Dec 2011 14:29:10 -0800 Subject: Stubbing out functionality for catching the overlay display render state switch. --- indra/newview/llfloaterpathfindingconsole.cpp | 53 +++++++- indra/newview/llfloaterpathfindingconsole.h | 147 +++++++++++---------- .../default/xui/en/floater_pathfinding_console.xml | 89 +++++++------ 3 files changed, 175 insertions(+), 114 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index a7195fee83..f713b09e88 100644 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -33,6 +33,7 @@ #include "llagent.h" #include "llbutton.h" #include "llcheckboxctrl.h" +#include "llradiogroup.h" #include "llnavmeshstation.h" #include "llviewerregion.h" @@ -62,6 +63,10 @@ BOOL LLFloaterPathfindingConsole::postBuild() llassert(mShowWaterPlaneCheckBox != NULL); mShowWaterPlaneCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowWaterPlaneToggle, this)); + mRegionOverlayDisplayRadioGroup = findChild("region_overlay_display"); + llassert(mRegionOverlayDisplayRadioGroup != NULL); + mRegionOverlayDisplayRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionOverlayDisplaySwitch, this)); + return LLFloater::postBuild(); } @@ -71,6 +76,7 @@ LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed) mShowExcludeVolumesCheckBox(NULL), mShowPathCheckBox(NULL), mShowWaterPlaneCheckBox(NULL), + mRegionOverlayDisplayRadioGroup(NULL), mNavmeshDownloadObserver() { } @@ -150,8 +156,8 @@ void LLFloaterPathfindingConsole::onShowPathToggle() BOOL checkBoxValue = mShowPathCheckBox->get(); llwarns << "functionality has not yet been implemented to toggle '" - << mShowPathCheckBox->getLabel() << "' to " - << (checkBoxValue ? "ON" : "OFF") << llendl; + << mShowPathCheckBox->getLabel() << "' to " + << (checkBoxValue ? "ON" : "OFF") << llendl; } void LLFloaterPathfindingConsole::onShowWaterPlaneToggle() @@ -159,11 +165,50 @@ void LLFloaterPathfindingConsole::onShowWaterPlaneToggle() BOOL checkBoxValue = mShowWaterPlaneCheckBox->get(); llwarns << "functionality has not yet been implemented to toggle '" - << mShowWaterPlaneCheckBox->getLabel() << "' to " - << (checkBoxValue ? "ON" : "OFF") << llendl; + << mShowWaterPlaneCheckBox->getLabel() << "' to " + << (checkBoxValue ? "ON" : "OFF") << llendl; +} + +void LLFloaterPathfindingConsole::onRegionOverlayDisplaySwitch() +{ + switch (getRegionOverlayDisplay()) + { + case kRenderOverlayOnFixedPhysicsGeometry : + llwarns << "functionality has not yet been implemented to toggle '" + << mRegionOverlayDisplayRadioGroup->getName() << "' to RenderOverlayOnFixedPhysicsGeometry" + << llendl; + break; + case kRenderOverlayOnAllRenderableGeometry : + llwarns << "functionality has not yet been implemented to toggle '" + << mRegionOverlayDisplayRadioGroup->getName() << "' to RenderOverlayOnAllRenderableGeometry" + << llendl; + break; + default : + llassert(0); + break; + } } void LLFloaterPathfindingConsole::onViewEditLinksetClicked() { LLFloaterPathfindingLinksets::openLinksetsEditor(); } + +LLFloaterPathfindingConsole::ERegionOverlayDisplay LLFloaterPathfindingConsole::getRegionOverlayDisplay() const +{ + ERegionOverlayDisplay regionOverlayDisplay; + switch (mRegionOverlayDisplayRadioGroup->getSelectedIndex()) + { + case 0 : + regionOverlayDisplay = kRenderOverlayOnFixedPhysicsGeometry; + break; + case 1: + regionOverlayDisplay = kRenderOverlayOnAllRenderableGeometry; + break; + default : + regionOverlayDisplay = kRenderOverlayOnFixedPhysicsGeometry; + break; + } + + return regionOverlayDisplay; +} diff --git a/indra/newview/llfloaterpathfindingconsole.h b/indra/newview/llfloaterpathfindingconsole.h index 8dc9ccd342..e4e71e9c58 100644 --- a/indra/newview/llfloaterpathfindingconsole.h +++ b/indra/newview/llfloaterpathfindingconsole.h @@ -1,69 +1,80 @@ -/** - * @file llfloaterpathfindingconsole.h - * @author William Todd Stinson - * @brief "Pathfinding console" floater, allowing manipulation of the Havok AI pathfinding settings. - * - * $LicenseInfo:firstyear=2002&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#ifndef LL_LLFLOATERPATHFINDINGCONSOLE_H -#define LL_LLFLOATERPATHFINDINGCONSOLE_H - -#include "llfloater.h" +/** + * @file llfloaterpathfindingconsole.h + * @author William Todd Stinson + * @brief "Pathfinding console" floater, allowing manipulation of the Havok AI pathfinding settings. + * + * $LicenseInfo:firstyear=2002&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#ifndef LL_LLFLOATERPATHFINDINGCONSOLE_H +#define LL_LLFLOATERPATHFINDINGCONSOLE_H + +#include "llfloater.h" #include "llnavmeshstation.h" - -class LLSD; -class LLCheckBoxCtrl; - -class LLFloaterPathfindingConsole -: public LLFloater -{ - friend class LLFloaterReg; - -public: - virtual BOOL postBuild(); - -protected: - -private: - // Does its own instance management, so clients not allowed - // to allocate or destroy. - LLFloaterPathfindingConsole(const LLSD& pSeed); - virtual ~LLFloaterPathfindingConsole(); - - virtual void onOpen(const LLSD& pKey); - - void onShowNavmeshToggle(); - void onShowExcludeVolumesToggle(); - void onShowPathToggle(); - void onShowWaterPlaneToggle(); - void onViewEditLinksetClicked(); - - LLCheckBoxCtrl *mShowNavmeshCheckBox; - LLCheckBoxCtrl *mShowExcludeVolumesCheckBox; - LLCheckBoxCtrl *mShowPathCheckBox; - LLCheckBoxCtrl *mShowWaterPlaneCheckBox; - - LLNavMeshDownloadObserver mNavmeshDownloadObserver; -}; - -#endif // LL_LLFLOATERPATHFINDINGCONSOLE_H + +class LLSD; +class LLCheckBoxCtrl; +class LLRadioGroup; + +class LLFloaterPathfindingConsole +: public LLFloater +{ + friend class LLFloaterReg; + + typedef enum + { + kRenderOverlayOnFixedPhysicsGeometry = 0, + kRenderOverlayOnAllRenderableGeometry = 1 + } ERegionOverlayDisplay; + +public: + virtual BOOL postBuild(); + +protected: + +private: + // Does its own instance management, so clients not allowed + // to allocate or destroy. + LLFloaterPathfindingConsole(const LLSD& pSeed); + virtual ~LLFloaterPathfindingConsole(); + + virtual void onOpen(const LLSD& pKey); + + void onShowNavmeshToggle(); + void onShowExcludeVolumesToggle(); + void onShowPathToggle(); + void onShowWaterPlaneToggle(); + void onRegionOverlayDisplaySwitch(); + void onViewEditLinksetClicked(); + + ERegionOverlayDisplay getRegionOverlayDisplay() const; + + LLCheckBoxCtrl *mShowNavmeshCheckBox; + LLCheckBoxCtrl *mShowExcludeVolumesCheckBox; + LLCheckBoxCtrl *mShowPathCheckBox; + LLCheckBoxCtrl *mShowWaterPlaneCheckBox; + LLRadioGroup *mRegionOverlayDisplayRadioGroup; + + LLNavMeshDownloadObserver mNavmeshDownloadObserver; +}; + +#endif // LL_LLFLOATERPATHFINDINGCONSOLE_H 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 ff1cf81d4e..75219d9df9 100644 --- a/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml +++ b/indra/newview/skins/default/xui/en/floater_pathfinding_console.xml @@ -6,7 +6,9 @@ layout="topleft" name="floater_pathfinding" help_topic="floater_pathfinding" + reuse_instance="true" save_rect="true" + single_instance="true" title="Pathfinding" width="833"> + label="Fixed physics geometry" + layout="topleft" + height="14" + name="display_overlay_on_fixed" + value="0"/> + label="All renderable geometry" + layout="topleft" + height="14" + name="display_overlay_on_all" + value="1"/> + label="Choose start point" + layout="topleft" + height="14" + name="DisplayOverlayOnFixed"/> + label="Choose end point" + layout="topleft" + height="14" + name="DisplayOverlayOnAll"/> + label="A" + height="14" + width="30" + name="DisplayOverlayOnFixed"/> + label="B" + height="14" + width="30" + layout="topleft" + top="4" + left="50" + name="DisplayOverlayOnFixed"/> + label="C" + height="14" + width="30" + layout="topleft" + top="4" + left="100" + name="DisplayOverlayOnFixed"/> + label="D" + height="14" + width="30" + layout="topleft" + top="4" + left="150" + name="DisplayOverlayOnFixed"/>