summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfloaterpathfindingconsole.cpp53
-rw-r--r--indra/newview/llfloaterpathfindingconsole.h147
-rw-r--r--indra/newview/skins/default/xui/en/floater_pathfinding_console.xml89
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"