Stubbing out functionality for catching the overlay display render state switch.

meow-7.2.2
Todd Stinson 2011-12-19 14:29:10 -08:00
parent d2fbaca570
commit 11bb14fe02
3 changed files with 175 additions and 114 deletions

View File

@ -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;
}

View File

@ -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

View File

@ -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"