diff options
-rw-r--r-- | indra/newview/llfloaterpathfindingconsole.cpp | 53 | ||||
-rw-r--r-- | indra/newview/llfloaterpathfindingconsole.h | 147 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/floater_pathfinding_console.xml | 89 |
3 files changed, 175 insertions, 114 deletions
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<LLRadioGroup>("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"> <text @@ -71,21 +73,24 @@ <radio_group follows="top|left" height="45" + value="0" layout="topleft" left_delta="8" - name="region_settings_radio_group" + name="region_overlay_display" top_delta="17" width="200"> <radio_item - label="Fixed physics geometry" - layout="topleft" - height="14" - name="DisplayOverlayOnFixed"/> + label="Fixed physics geometry" + layout="topleft" + height="14" + name="display_overlay_on_fixed" + value="0"/> <radio_item - label="All renderable geometry" - layout="topleft" - height="14" - name="DisplayOverlayOnAll"/> + label="All renderable geometry" + layout="topleft" + height="14" + name="display_overlay_on_all" + value="1"/> </radio_group> <view_border bevel_style="none" @@ -121,15 +126,15 @@ to see the path between them. top_delta="33" width="200"> <radio_item - label="Choose start point" - layout="topleft" - height="14" - name="DisplayOverlayOnFixed"/> + label="Choose start point" + layout="topleft" + height="14" + name="DisplayOverlayOnFixed"/> <radio_item - label="Choose end point" - layout="topleft" - height="14" - name="DisplayOverlayOnAll"/> + label="Choose end point" + layout="topleft" + height="14" + name="DisplayOverlayOnAll"/> </radio_group> <text height="14" @@ -193,34 +198,34 @@ to see the path between them. top_delta="20" width="200"> <radio_item - label="A" - height="14" - width="30" - name="DisplayOverlayOnFixed"/> + label="A" + height="14" + width="30" + name="DisplayOverlayOnFixed"/> <radio_item - label="B" - height="14" - width="30" - layout="topleft" - top="4" - left="50" - name="DisplayOverlayOnFixed"/> + label="B" + height="14" + width="30" + layout="topleft" + top="4" + left="50" + name="DisplayOverlayOnFixed"/> <radio_item - label="C" - height="14" - width="30" - layout="topleft" - top="4" - left="100" - name="DisplayOverlayOnFixed"/> + label="C" + height="14" + width="30" + layout="topleft" + top="4" + left="100" + name="DisplayOverlayOnFixed"/> <radio_item - label="D" - height="14" - width="30" - layout="topleft" - top="4" - left="150" - name="DisplayOverlayOnFixed"/> + label="D" + height="14" + width="30" + layout="topleft" + top="4" + left="150" + name="DisplayOverlayOnFixed"/> </radio_group> <text height="14" |