From 11259b37ee93e06fd61dac8e88180150c1fd63b8 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Fri, 10 Feb 2012 17:34:14 -0800 Subject: PATH-284: Moving files around in preparation for the new pathfinding console design. --- indra/newview/llfloaterpathfindingconsole.cpp | 653 ++++++++++++++++++++++++++ 1 file changed, 653 insertions(+) create mode 100644 indra/newview/llfloaterpathfindingconsole.cpp (limited to 'indra/newview/llfloaterpathfindingconsole.cpp') diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp new file mode 100644 index 0000000000..35f56a5625 --- /dev/null +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -0,0 +1,653 @@ +/** +* @file llfloaterpathfindingsetup.cpp +* @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$ +*/ + +#include "llviewerprecompiledheaders.h" +#include "llfloaterpathfindingconsole.h" +#include "llfloaterpathfindinglinksets.h" + +#include "llsd.h" +#include "llagent.h" +#include "llbutton.h" +#include "llradiogroup.h" +#include "llsliderctrl.h" +#include "lllineeditor.h" +#include "lltextbase.h" +#include "lltextvalidate.h" +#include "llnavmeshstation.h" +#include "llviewerregion.h" + +#include "LLPathingLib.h" + +#define XUI_RENDER_OVERLAY_ON_FIXED_PHYSICS_GEOMETRY 1 +#define XUI_RENDER_OVERLAY_ON_ALL_RENDERABLE_GEOMETRY 2 + +#define XUI_PATH_SELECT_NONE 0 +#define XUI_PATH_SELECT_START_POINT 1 +#define XUI_PATH_SELECT_END_POINT 2 + +#define XUI_CHARACTER_TYPE_A 1 +#define XUI_CHARACTER_TYPE_B 2 +#define XUI_CHARACTER_TYPE_C 3 +#define XUI_CHARACTER_TYPE_D 4 + +const int CURRENT_REGION = 99; +const int MAX_OBSERVERS = 10; +//--------------------------------------------------------------------------- +// LLFloaterPathfindingSetup +//--------------------------------------------------------------------------- + +BOOL LLFloaterPathfindingSetup::postBuild() +{ + childSetAction("view_and_edit_linksets", boost::bind(&LLFloaterPathfindingSetup::onViewEditLinksetClicked, this)); + childSetAction("rebuild_navmesh", boost::bind(&LLFloaterPathfindingSetup::onRebuildNavMeshClicked, this)); + childSetAction("refresh_navmesh", boost::bind(&LLFloaterPathfindingSetup::onRefreshNavMeshClicked, this)); + + mShowNavMeshCheckBox = findChild("show_navmesh_overlay"); + llassert(mShowNavMeshCheckBox != NULL); + mShowNavMeshCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onShowNavMeshToggle, this)); + + mShowExcludeVolumesCheckBox = findChild("show_exclusion_volumes"); + llassert(mShowExcludeVolumesCheckBox != NULL); + mShowExcludeVolumesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onShowExcludeVolumesToggle, this)); + + mShowPathCheckBox = findChild("show_path"); + llassert(mShowPathCheckBox != NULL); + mShowPathCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onShowPathToggle, this)); + + mShowWaterPlaneCheckBox = findChild("show_water_plane"); + llassert(mShowWaterPlaneCheckBox != NULL); + mShowWaterPlaneCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onShowWaterPlaneToggle, this)); + + mRegionOverlayDisplayRadioGroup = findChild("region_overlay_display"); + llassert(mRegionOverlayDisplayRadioGroup != NULL); + mRegionOverlayDisplayRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onRegionOverlayDisplaySwitch, this)); + + mPathSelectionRadioGroup = findChild("path_selection"); + llassert(mPathSelectionRadioGroup != NULL); + mPathSelectionRadioGroup ->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onPathSelectionSwitch, this)); + + mCharacterWidthSlider = findChild("character_width"); + llassert(mCharacterWidthSlider != NULL); + mCharacterWidthSlider->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onCharacterWidthSet, this)); + + mCharacterTypeRadioGroup = findChild("character_type"); + llassert(mCharacterTypeRadioGroup != NULL); + mCharacterTypeRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onCharacterTypeSwitch, this)); + + mPathfindingStatus = findChild("pathfinding_status"); + llassert(mPathfindingStatus != NULL); + + mTerrainMaterialA = findChild("terrain_material_a"); + llassert(mTerrainMaterialA != NULL); + mTerrainMaterialA->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onTerrainMaterialASet, this)); + mTerrainMaterialA->setPrevalidate(LLTextValidate::validateFloat); + + mTerrainMaterialB = findChild("terrain_material_b"); + llassert(mTerrainMaterialB != NULL); + mTerrainMaterialB->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onTerrainMaterialBSet, this)); + mTerrainMaterialB->setPrevalidate(LLTextValidate::validateFloat); + + mTerrainMaterialC = findChild("terrain_material_c"); + llassert(mTerrainMaterialC != NULL); + mTerrainMaterialC->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onTerrainMaterialCSet, this)); + mTerrainMaterialC->setPrevalidate(LLTextValidate::validateFloat); + + mTerrainMaterialD = findChild("terrain_material_d"); + llassert(mTerrainMaterialD != NULL); + mTerrainMaterialD->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onTerrainMaterialDSet, this)); + mTerrainMaterialD->setPrevalidate(LLTextValidate::validateFloat); + + return LLFloater::postBuild(); +} + +LLFloaterPathfindingSetup::ERegionOverlayDisplay LLFloaterPathfindingSetup::getRegionOverlayDisplay() const +{ + ERegionOverlayDisplay regionOverlayDisplay; + switch (mRegionOverlayDisplayRadioGroup->getValue().asInteger()) + { + case XUI_RENDER_OVERLAY_ON_FIXED_PHYSICS_GEOMETRY : + regionOverlayDisplay = kRenderOverlayOnFixedPhysicsGeometry; + break; + case XUI_RENDER_OVERLAY_ON_ALL_RENDERABLE_GEOMETRY : + regionOverlayDisplay = kRenderOverlayOnAllRenderableGeometry; + break; + default : + regionOverlayDisplay = kRenderOverlayOnFixedPhysicsGeometry; + llassert(0); + break; + } + + return regionOverlayDisplay; +} + +void LLFloaterPathfindingSetup::setRegionOverlayDisplay(ERegionOverlayDisplay pRegionOverlayDisplay) +{ + LLSD radioGroupValue; + + switch (pRegionOverlayDisplay) + { + case kRenderOverlayOnFixedPhysicsGeometry : + radioGroupValue = XUI_RENDER_OVERLAY_ON_FIXED_PHYSICS_GEOMETRY; + break; + case kRenderOverlayOnAllRenderableGeometry : + radioGroupValue = XUI_RENDER_OVERLAY_ON_ALL_RENDERABLE_GEOMETRY; + break; + default : + radioGroupValue = XUI_RENDER_OVERLAY_ON_FIXED_PHYSICS_GEOMETRY; + llassert(0); + break; + } + + mRegionOverlayDisplayRadioGroup->setValue(radioGroupValue); +} + +LLFloaterPathfindingSetup::EPathSelectionState LLFloaterPathfindingSetup::getPathSelectionState() const +{ + EPathSelectionState pathSelectionState; + + switch (mPathSelectionRadioGroup->getValue().asInteger()) + { + case XUI_PATH_SELECT_START_POINT : + pathSelectionState = kPathSelectStartPoint; + break; + case XUI_PATH_SELECT_END_POINT : + pathSelectionState = kPathSelectEndPoint; + break; + default : + pathSelectionState = kPathSelectNone; + break; + } + + return pathSelectionState; +} + +void LLFloaterPathfindingSetup::setPathSelectionState(EPathSelectionState pPathSelectionState) +{ + LLSD radioGroupValue; + + switch (pPathSelectionState) + { + case kPathSelectStartPoint : + radioGroupValue = XUI_PATH_SELECT_START_POINT; + break; + case kPathSelectEndPoint : + radioGroupValue = XUI_PATH_SELECT_END_POINT; + break; + default : + radioGroupValue = XUI_PATH_SELECT_NONE; + break; + } + + mPathSelectionRadioGroup->setValue(radioGroupValue); +} + +F32 LLFloaterPathfindingSetup::getCharacterWidth() const +{ + return mCharacterWidthSlider->getValueF32(); +} + +void LLFloaterPathfindingSetup::setCharacterWidth(F32 pCharacterWidth) +{ + mCharacterWidthSlider->setValue(LLSD(pCharacterWidth)); +} + +LLFloaterPathfindingSetup::ECharacterType LLFloaterPathfindingSetup::getCharacterType() const +{ + ECharacterType characterType; + + switch (mCharacterTypeRadioGroup->getValue().asInteger()) + { + case XUI_CHARACTER_TYPE_A : + characterType = kCharacterTypeA; + break; + case XUI_CHARACTER_TYPE_B : + characterType = kCharacterTypeB; + break; + case XUI_CHARACTER_TYPE_C : + characterType = kCharacterTypeC; + break; + case XUI_CHARACTER_TYPE_D : + characterType = kCharacterTypeD; + break; + default : + characterType = kCharacterTypeA; + llassert(0); + break; + } + + return characterType; +} + +void LLFloaterPathfindingSetup::setCharacterType(ECharacterType pCharacterType) +{ + LLSD radioGroupValue; + + switch (pCharacterType) + { + case kCharacterTypeA : + radioGroupValue = XUI_CHARACTER_TYPE_A; + break; + case kCharacterTypeB : + radioGroupValue = XUI_CHARACTER_TYPE_B; + break; + case kCharacterTypeC : + radioGroupValue = XUI_CHARACTER_TYPE_C; + break; + case kCharacterTypeD : + radioGroupValue = XUI_CHARACTER_TYPE_D; + break; + default : + radioGroupValue = XUI_CHARACTER_TYPE_A; + llassert(0); + break; + } + + mCharacterTypeRadioGroup->setValue(radioGroupValue); +} + +F32 LLFloaterPathfindingSetup::getTerrainMaterialA() const +{ + return mTerrainMaterialA->getValue().asReal(); +} + +void LLFloaterPathfindingSetup::setTerrainMaterialA(F32 pTerrainMaterial) +{ + mTerrainMaterialA->setValue(LLSD(pTerrainMaterial)); +} + +F32 LLFloaterPathfindingSetup::getTerrainMaterialB() const +{ + return mTerrainMaterialB->getValue().asReal(); +} + +void LLFloaterPathfindingSetup::setTerrainMaterialB(F32 pTerrainMaterial) +{ + mTerrainMaterialB->setValue(LLSD(pTerrainMaterial)); +} + +F32 LLFloaterPathfindingSetup::getTerrainMaterialC() const +{ + return mTerrainMaterialC->getValue().asReal(); +} + +void LLFloaterPathfindingSetup::setTerrainMaterialC(F32 pTerrainMaterial) +{ + mTerrainMaterialC->setValue(LLSD(pTerrainMaterial)); +} + +F32 LLFloaterPathfindingSetup::getTerrainMaterialD() const +{ + return mTerrainMaterialD->getValue().asReal(); +} + +void LLFloaterPathfindingSetup::setTerrainMaterialD(F32 pTerrainMaterial) +{ + mTerrainMaterialD->setValue(LLSD(pTerrainMaterial)); +} + +void LLFloaterPathfindingSetup::setHasNavMeshReceived() +{ + std::string str = getString("navmesh_fetch_complete_available"); + mPathfindingStatus->setText((LLStringExplicit)str); + //check to see if all regions are done loading and they are then stitch the navmeshes together + --mNavMeshCnt; + if ( mNavMeshCnt == 0 ) + { + LLPathingLib::getInstance()->stitchNavMeshes(); + } +} + +void LLFloaterPathfindingSetup::setHasNoNavMesh() +{ + std::string str = getString("navmesh_fetch_complete_none"); + mPathfindingStatus->setText((LLStringExplicit)str); +} + +LLFloaterPathfindingSetup::LLFloaterPathfindingSetup(const LLSD& pSeed) + : LLFloater(pSeed), + mShowNavMeshCheckBox(NULL), + mShowExcludeVolumesCheckBox(NULL), + mShowPathCheckBox(NULL), + mShowWaterPlaneCheckBox(NULL), + mRegionOverlayDisplayRadioGroup(NULL), + mPathSelectionRadioGroup(NULL), + mCharacterWidthSlider(NULL), + mCharacterTypeRadioGroup(NULL), + mPathfindingStatus(NULL), + mTerrainMaterialA(NULL), + mTerrainMaterialB(NULL), + mTerrainMaterialC(NULL), + mTerrainMaterialD(NULL), + mNavMeshCnt(0), + mHasStartPoint(false), + mHasEndPoint(false) +{ + for (int i=0;isetText((LLStringExplicit)str, styleParams); + llwarns <<"Errror: cannout find pathing library implementation."<cleanupResidual(); + + mCurrentMDO = 0; + mNavMeshCnt = 0; + + //make sure the region is essentially enabled for navmesh support + std::string capability = "RetrieveNavMeshSrc"; + + //prep# neighboring navmesh support proto + LLViewerRegion* pCurrentRegion = gAgent.getRegion(); + std::vector regions; + regions.push_back( pCurrentRegion ); + pCurrentRegion->getNeighboringRegions( regions ); + + std::vector shift; + shift.push_back( CURRENT_REGION ); + pCurrentRegion->getNeighboringRegionsStatus( shift ); + + //If the navmesh shift ops and the total region counts do not match - use the current region, only. + if ( shift.size() != regions.size() ) + { + shift.clear();regions.clear(); + regions.push_back( pCurrentRegion ); + shift.push_back( CURRENT_REGION ); + } + int regionCnt = regions.size(); + mNavMeshCnt = regionCnt; + for ( int i=0; igetCapability( capability ); + + if ( !url.empty() ) + { + std::string str = getString("navmesh_fetch_inprogress"); + mPathfindingStatus->setText((LLStringExplicit)str); + LLNavMeshStation::getInstance()->setNavMeshDownloadURL( url ); + int dir = shift[i]; + LLNavMeshStation::getInstance()->downloadNavMeshSrc( mNavMeshDownloadObserver[mCurrentMDO].getObserverHandle(), dir ); + ++mCurrentMDO; + } + else + { + --mNavMeshCnt; + std::string str = getString("navmesh_region_not_enabled"); + LLStyle::Params styleParams; + styleParams.color = LLUIColorTable::instance().getColor("DrYellow"); + mPathfindingStatus->setText((LLStringExplicit)str, styleParams); + llinfos<<"Region has does not required caps of type ["<get(); + + LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); + if (llPathingLibInstance != NULL) + { + llPathingLibInstance->setRenderNavMesh(checkBoxValue); + } + else + { + mShowNavMeshCheckBox->set(FALSE); + llwarns << "cannot find LLPathingLib instance" << llendl; + } +} + +void LLFloaterPathfindingSetup::onShowExcludeVolumesToggle() +{ + BOOL checkBoxValue = mShowExcludeVolumesCheckBox->get(); + + LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); + if (llPathingLibInstance != NULL) + { + llPathingLibInstance->setRenderShapes(checkBoxValue); + } + else + { + mShowExcludeVolumesCheckBox->set(FALSE); + llwarns << "cannot find LLPathingLib instance" << llendl; + } +} + +void LLFloaterPathfindingSetup::onShowPathToggle() +{ + BOOL checkBoxValue = mShowPathCheckBox->get(); + + LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); + if (llPathingLibInstance != NULL) + { + llPathingLibInstance->setRenderPath(checkBoxValue); + } + else + { + mShowPathCheckBox->set(FALSE); + llwarns << "cannot find LLPathingLib instance" << llendl; + } +} + +void LLFloaterPathfindingSetup::onShowWaterPlaneToggle() +{ + BOOL checkBoxValue = mShowWaterPlaneCheckBox->get(); + + LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); + if (llPathingLibInstance != NULL) + { + llPathingLibInstance->setRenderWaterPlane(checkBoxValue); + } + else + { + mShowWaterPlaneCheckBox->set(FALSE); + llwarns << "cannot find LLPathingLib instance" << llendl; + } + + llwarns << "functionality has not yet been implemented to toggle '" + << mShowWaterPlaneCheckBox->getLabel() << "' to " + << (checkBoxValue ? "ON" : "OFF") << llendl; +} + +void LLFloaterPathfindingSetup::onRegionOverlayDisplaySwitch() +{ + LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); + if (llPathingLibInstance != NULL) + { + switch (getRegionOverlayDisplay()) + { + case kRenderOverlayOnFixedPhysicsGeometry : + llPathingLibInstance->setRenderOverlayMode(false); + break; + case kRenderOverlayOnAllRenderableGeometry : + llPathingLibInstance->setRenderOverlayMode(true); + break; + default : + llPathingLibInstance->setRenderOverlayMode(false); + llassert(0); + break; + } + } + else + { + this->setRegionOverlayDisplay(kRenderOverlayOnFixedPhysicsGeometry); + llwarns << "cannot find LLPathingLib instance" << llendl; + } +} + +void LLFloaterPathfindingSetup::onPathSelectionSwitch() +{ + switch (getPathSelectionState()) + { + case kPathSelectNone : + break; + case kPathSelectStartPoint : + break; + case kPathSelectEndPoint : + break; + default : + llassert(0); + break; + } +} + +void LLFloaterPathfindingSetup::onCharacterWidthSet() +{ + generatePath(); +} + +void LLFloaterPathfindingSetup::onCharacterTypeSwitch() +{ + switch (getCharacterType()) + { + case kCharacterTypeA : + llwarns << "functionality has not yet been implemented to toggle '" + << mCharacterTypeRadioGroup->getName() << "' to CharacterTypeA" + << llendl; + break; + case kCharacterTypeB : + llwarns << "functionality has not yet been implemented to toggle '" + << mCharacterTypeRadioGroup->getName() << "' to CharacterTypeB" + << llendl; + break; + case kCharacterTypeC : + llwarns << "functionality has not yet been implemented to toggle '" + << mCharacterTypeRadioGroup->getName() << "' to CharacterTypeC" + << llendl; + break; + case kCharacterTypeD : + llwarns << "functionality has not yet been implemented to toggle '" + << mCharacterTypeRadioGroup->getName() << "' to CharacterTypeD" + << llendl; + break; + default : + llassert(0); + break; + } + +} + +void LLFloaterPathfindingSetup::onViewEditLinksetClicked() +{ + LLFloaterPathfindingLinksets::openLinksetsEditor(); +} + +void LLFloaterPathfindingSetup::onRebuildNavMeshClicked() +{ + llwarns << "functionality has not yet been implemented to handle rebuilding of the navmesh" << llendl; +} + +void LLFloaterPathfindingSetup::onRefreshNavMeshClicked() +{ + llwarns << "functionality has not yet been implemented to handle refreshing of the navmesh" << llendl; +} + +void LLFloaterPathfindingSetup::onTerrainMaterialASet() +{ + F32 terrainMaterial = getTerrainMaterialA(); + llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialA->getName() + << "' to value (" << terrainMaterial << ")" << llendl; +} + +void LLFloaterPathfindingSetup::onTerrainMaterialBSet() +{ + F32 terrainMaterial = getTerrainMaterialB(); + llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialB->getName() + << "' to value (" << terrainMaterial << ")" << llendl; +} + +void LLFloaterPathfindingSetup::onTerrainMaterialCSet() +{ + F32 terrainMaterial = getTerrainMaterialC(); + llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialC->getName() + << "' to value (" << terrainMaterial << ")" << llendl; +} + +void LLFloaterPathfindingSetup::onTerrainMaterialDSet() +{ + F32 terrainMaterial = getTerrainMaterialD(); + llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialD->getName() + << "' to value (" << terrainMaterial << ")" << llendl; +} + + +void LLFloaterPathfindingSetup::providePathingData( const LLVector3& point1, const LLVector3& point2 ) +{ + switch (getPathSelectionState()) + { + case kPathSelectNone : + break; + + case kPathSelectStartPoint : + mPathData.mStartPointA = point1; + mPathData.mEndPointA = point2; + mHasStartPoint = true; + break; + + case kPathSelectEndPoint : + mPathData.mStartPointB = point1; + mPathData.mEndPointB = point2; + mHasEndPoint = true; + break; + + default : + llassert(0); + break; + } + + generatePath(); +} + +void LLFloaterPathfindingSetup::generatePath() +{ + if (mHasStartPoint && mHasEndPoint) + { + mPathData.mCharacterWidth = getCharacterWidth(); + LLPathingLib::getInstance()->generatePath(mPathData); + } +} -- cgit v1.2.3 From db977bf85c9e7eb3afc98813dda13107672bb2f6 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Fri, 10 Feb 2012 17:49:18 -0800 Subject: PATH-284: Updating the class names in preparation for the new pathfinding console design. --- indra/newview/llfloaterpathfindingconsole.cpp | 112 +++++++++++++------------- 1 file changed, 56 insertions(+), 56 deletions(-) (limited to 'indra/newview/llfloaterpathfindingconsole.cpp') diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index 35f56a5625..51952d87b5 100644 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -1,5 +1,5 @@ /** -* @file llfloaterpathfindingsetup.cpp +* @file llfloaterpathfindingconsole.cpp * @author William Todd Stinson * @brief "Pathfinding console" floater, allowing manipulation of the Havok AI pathfinding settings. * @@ -57,74 +57,74 @@ const int CURRENT_REGION = 99; const int MAX_OBSERVERS = 10; //--------------------------------------------------------------------------- -// LLFloaterPathfindingSetup +// LLFloaterPathfindingConsole //--------------------------------------------------------------------------- -BOOL LLFloaterPathfindingSetup::postBuild() +BOOL LLFloaterPathfindingConsole::postBuild() { - childSetAction("view_and_edit_linksets", boost::bind(&LLFloaterPathfindingSetup::onViewEditLinksetClicked, this)); - childSetAction("rebuild_navmesh", boost::bind(&LLFloaterPathfindingSetup::onRebuildNavMeshClicked, this)); - childSetAction("refresh_navmesh", boost::bind(&LLFloaterPathfindingSetup::onRefreshNavMeshClicked, this)); + childSetAction("view_and_edit_linksets", boost::bind(&LLFloaterPathfindingConsole::onViewEditLinksetClicked, this)); + childSetAction("rebuild_navmesh", boost::bind(&LLFloaterPathfindingConsole::onRebuildNavMeshClicked, this)); + childSetAction("refresh_navmesh", boost::bind(&LLFloaterPathfindingConsole::onRefreshNavMeshClicked, this)); mShowNavMeshCheckBox = findChild("show_navmesh_overlay"); llassert(mShowNavMeshCheckBox != NULL); - mShowNavMeshCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onShowNavMeshToggle, this)); + mShowNavMeshCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowNavMeshToggle, this)); mShowExcludeVolumesCheckBox = findChild("show_exclusion_volumes"); llassert(mShowExcludeVolumesCheckBox != NULL); - mShowExcludeVolumesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onShowExcludeVolumesToggle, this)); + mShowExcludeVolumesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowExcludeVolumesToggle, this)); mShowPathCheckBox = findChild("show_path"); llassert(mShowPathCheckBox != NULL); - mShowPathCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onShowPathToggle, this)); + mShowPathCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowPathToggle, this)); mShowWaterPlaneCheckBox = findChild("show_water_plane"); llassert(mShowWaterPlaneCheckBox != NULL); - mShowWaterPlaneCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onShowWaterPlaneToggle, this)); + mShowWaterPlaneCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowWaterPlaneToggle, this)); mRegionOverlayDisplayRadioGroup = findChild("region_overlay_display"); llassert(mRegionOverlayDisplayRadioGroup != NULL); - mRegionOverlayDisplayRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onRegionOverlayDisplaySwitch, this)); + mRegionOverlayDisplayRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionOverlayDisplaySwitch, this)); mPathSelectionRadioGroup = findChild("path_selection"); llassert(mPathSelectionRadioGroup != NULL); - mPathSelectionRadioGroup ->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onPathSelectionSwitch, this)); + mPathSelectionRadioGroup ->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onPathSelectionSwitch, this)); mCharacterWidthSlider = findChild("character_width"); llassert(mCharacterWidthSlider != NULL); - mCharacterWidthSlider->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onCharacterWidthSet, this)); + mCharacterWidthSlider->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onCharacterWidthSet, this)); mCharacterTypeRadioGroup = findChild("character_type"); llassert(mCharacterTypeRadioGroup != NULL); - mCharacterTypeRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onCharacterTypeSwitch, this)); + mCharacterTypeRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onCharacterTypeSwitch, this)); mPathfindingStatus = findChild("pathfinding_status"); llassert(mPathfindingStatus != NULL); mTerrainMaterialA = findChild("terrain_material_a"); llassert(mTerrainMaterialA != NULL); - mTerrainMaterialA->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onTerrainMaterialASet, this)); + mTerrainMaterialA->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTerrainMaterialASet, this)); mTerrainMaterialA->setPrevalidate(LLTextValidate::validateFloat); mTerrainMaterialB = findChild("terrain_material_b"); llassert(mTerrainMaterialB != NULL); - mTerrainMaterialB->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onTerrainMaterialBSet, this)); + mTerrainMaterialB->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTerrainMaterialBSet, this)); mTerrainMaterialB->setPrevalidate(LLTextValidate::validateFloat); mTerrainMaterialC = findChild("terrain_material_c"); llassert(mTerrainMaterialC != NULL); - mTerrainMaterialC->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onTerrainMaterialCSet, this)); + mTerrainMaterialC->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTerrainMaterialCSet, this)); mTerrainMaterialC->setPrevalidate(LLTextValidate::validateFloat); mTerrainMaterialD = findChild("terrain_material_d"); llassert(mTerrainMaterialD != NULL); - mTerrainMaterialD->setCommitCallback(boost::bind(&LLFloaterPathfindingSetup::onTerrainMaterialDSet, this)); + mTerrainMaterialD->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTerrainMaterialDSet, this)); mTerrainMaterialD->setPrevalidate(LLTextValidate::validateFloat); return LLFloater::postBuild(); } -LLFloaterPathfindingSetup::ERegionOverlayDisplay LLFloaterPathfindingSetup::getRegionOverlayDisplay() const +LLFloaterPathfindingConsole::ERegionOverlayDisplay LLFloaterPathfindingConsole::getRegionOverlayDisplay() const { ERegionOverlayDisplay regionOverlayDisplay; switch (mRegionOverlayDisplayRadioGroup->getValue().asInteger()) @@ -144,7 +144,7 @@ LLFloaterPathfindingSetup::ERegionOverlayDisplay LLFloaterPathfindingSetup::getR return regionOverlayDisplay; } -void LLFloaterPathfindingSetup::setRegionOverlayDisplay(ERegionOverlayDisplay pRegionOverlayDisplay) +void LLFloaterPathfindingConsole::setRegionOverlayDisplay(ERegionOverlayDisplay pRegionOverlayDisplay) { LLSD radioGroupValue; @@ -165,7 +165,7 @@ void LLFloaterPathfindingSetup::setRegionOverlayDisplay(ERegionOverlayDisplay pR mRegionOverlayDisplayRadioGroup->setValue(radioGroupValue); } -LLFloaterPathfindingSetup::EPathSelectionState LLFloaterPathfindingSetup::getPathSelectionState() const +LLFloaterPathfindingConsole::EPathSelectionState LLFloaterPathfindingConsole::getPathSelectionState() const { EPathSelectionState pathSelectionState; @@ -185,7 +185,7 @@ LLFloaterPathfindingSetup::EPathSelectionState LLFloaterPathfindingSetup::getPat return pathSelectionState; } -void LLFloaterPathfindingSetup::setPathSelectionState(EPathSelectionState pPathSelectionState) +void LLFloaterPathfindingConsole::setPathSelectionState(EPathSelectionState pPathSelectionState) { LLSD radioGroupValue; @@ -205,17 +205,17 @@ void LLFloaterPathfindingSetup::setPathSelectionState(EPathSelectionState pPathS mPathSelectionRadioGroup->setValue(radioGroupValue); } -F32 LLFloaterPathfindingSetup::getCharacterWidth() const +F32 LLFloaterPathfindingConsole::getCharacterWidth() const { return mCharacterWidthSlider->getValueF32(); } -void LLFloaterPathfindingSetup::setCharacterWidth(F32 pCharacterWidth) +void LLFloaterPathfindingConsole::setCharacterWidth(F32 pCharacterWidth) { mCharacterWidthSlider->setValue(LLSD(pCharacterWidth)); } -LLFloaterPathfindingSetup::ECharacterType LLFloaterPathfindingSetup::getCharacterType() const +LLFloaterPathfindingConsole::ECharacterType LLFloaterPathfindingConsole::getCharacterType() const { ECharacterType characterType; @@ -242,7 +242,7 @@ LLFloaterPathfindingSetup::ECharacterType LLFloaterPathfindingSetup::getCharacte return characterType; } -void LLFloaterPathfindingSetup::setCharacterType(ECharacterType pCharacterType) +void LLFloaterPathfindingConsole::setCharacterType(ECharacterType pCharacterType) { LLSD radioGroupValue; @@ -269,47 +269,47 @@ void LLFloaterPathfindingSetup::setCharacterType(ECharacterType pCharacterType) mCharacterTypeRadioGroup->setValue(radioGroupValue); } -F32 LLFloaterPathfindingSetup::getTerrainMaterialA() const +F32 LLFloaterPathfindingConsole::getTerrainMaterialA() const { return mTerrainMaterialA->getValue().asReal(); } -void LLFloaterPathfindingSetup::setTerrainMaterialA(F32 pTerrainMaterial) +void LLFloaterPathfindingConsole::setTerrainMaterialA(F32 pTerrainMaterial) { mTerrainMaterialA->setValue(LLSD(pTerrainMaterial)); } -F32 LLFloaterPathfindingSetup::getTerrainMaterialB() const +F32 LLFloaterPathfindingConsole::getTerrainMaterialB() const { return mTerrainMaterialB->getValue().asReal(); } -void LLFloaterPathfindingSetup::setTerrainMaterialB(F32 pTerrainMaterial) +void LLFloaterPathfindingConsole::setTerrainMaterialB(F32 pTerrainMaterial) { mTerrainMaterialB->setValue(LLSD(pTerrainMaterial)); } -F32 LLFloaterPathfindingSetup::getTerrainMaterialC() const +F32 LLFloaterPathfindingConsole::getTerrainMaterialC() const { return mTerrainMaterialC->getValue().asReal(); } -void LLFloaterPathfindingSetup::setTerrainMaterialC(F32 pTerrainMaterial) +void LLFloaterPathfindingConsole::setTerrainMaterialC(F32 pTerrainMaterial) { mTerrainMaterialC->setValue(LLSD(pTerrainMaterial)); } -F32 LLFloaterPathfindingSetup::getTerrainMaterialD() const +F32 LLFloaterPathfindingConsole::getTerrainMaterialD() const { return mTerrainMaterialD->getValue().asReal(); } -void LLFloaterPathfindingSetup::setTerrainMaterialD(F32 pTerrainMaterial) +void LLFloaterPathfindingConsole::setTerrainMaterialD(F32 pTerrainMaterial) { mTerrainMaterialD->setValue(LLSD(pTerrainMaterial)); } -void LLFloaterPathfindingSetup::setHasNavMeshReceived() +void LLFloaterPathfindingConsole::setHasNavMeshReceived() { std::string str = getString("navmesh_fetch_complete_available"); mPathfindingStatus->setText((LLStringExplicit)str); @@ -321,13 +321,13 @@ void LLFloaterPathfindingSetup::setHasNavMeshReceived() } } -void LLFloaterPathfindingSetup::setHasNoNavMesh() +void LLFloaterPathfindingConsole::setHasNoNavMesh() { std::string str = getString("navmesh_fetch_complete_none"); mPathfindingStatus->setText((LLStringExplicit)str); } -LLFloaterPathfindingSetup::LLFloaterPathfindingSetup(const LLSD& pSeed) +LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed) : LLFloater(pSeed), mShowNavMeshCheckBox(NULL), mShowExcludeVolumesCheckBox(NULL), @@ -352,11 +352,11 @@ LLFloaterPathfindingSetup::LLFloaterPathfindingSetup(const LLSD& pSeed) } } -LLFloaterPathfindingSetup::~LLFloaterPathfindingSetup() +LLFloaterPathfindingConsole::~LLFloaterPathfindingConsole() { } -void LLFloaterPathfindingSetup::onOpen(const LLSD& pKey) +void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey) { //make sure we have a pathing system if ( !LLPathingLib::getInstance() ) @@ -426,7 +426,7 @@ void LLFloaterPathfindingSetup::onOpen(const LLSD& pKey) } } -void LLFloaterPathfindingSetup::onShowNavMeshToggle() +void LLFloaterPathfindingConsole::onShowNavMeshToggle() { BOOL checkBoxValue = mShowNavMeshCheckBox->get(); @@ -442,7 +442,7 @@ void LLFloaterPathfindingSetup::onShowNavMeshToggle() } } -void LLFloaterPathfindingSetup::onShowExcludeVolumesToggle() +void LLFloaterPathfindingConsole::onShowExcludeVolumesToggle() { BOOL checkBoxValue = mShowExcludeVolumesCheckBox->get(); @@ -458,7 +458,7 @@ void LLFloaterPathfindingSetup::onShowExcludeVolumesToggle() } } -void LLFloaterPathfindingSetup::onShowPathToggle() +void LLFloaterPathfindingConsole::onShowPathToggle() { BOOL checkBoxValue = mShowPathCheckBox->get(); @@ -474,7 +474,7 @@ void LLFloaterPathfindingSetup::onShowPathToggle() } } -void LLFloaterPathfindingSetup::onShowWaterPlaneToggle() +void LLFloaterPathfindingConsole::onShowWaterPlaneToggle() { BOOL checkBoxValue = mShowWaterPlaneCheckBox->get(); @@ -494,7 +494,7 @@ void LLFloaterPathfindingSetup::onShowWaterPlaneToggle() << (checkBoxValue ? "ON" : "OFF") << llendl; } -void LLFloaterPathfindingSetup::onRegionOverlayDisplaySwitch() +void LLFloaterPathfindingConsole::onRegionOverlayDisplaySwitch() { LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); if (llPathingLibInstance != NULL) @@ -520,7 +520,7 @@ void LLFloaterPathfindingSetup::onRegionOverlayDisplaySwitch() } } -void LLFloaterPathfindingSetup::onPathSelectionSwitch() +void LLFloaterPathfindingConsole::onPathSelectionSwitch() { switch (getPathSelectionState()) { @@ -536,12 +536,12 @@ void LLFloaterPathfindingSetup::onPathSelectionSwitch() } } -void LLFloaterPathfindingSetup::onCharacterWidthSet() +void LLFloaterPathfindingConsole::onCharacterWidthSet() { generatePath(); } -void LLFloaterPathfindingSetup::onCharacterTypeSwitch() +void LLFloaterPathfindingConsole::onCharacterTypeSwitch() { switch (getCharacterType()) { @@ -572,43 +572,43 @@ void LLFloaterPathfindingSetup::onCharacterTypeSwitch() } -void LLFloaterPathfindingSetup::onViewEditLinksetClicked() +void LLFloaterPathfindingConsole::onViewEditLinksetClicked() { LLFloaterPathfindingLinksets::openLinksetsEditor(); } -void LLFloaterPathfindingSetup::onRebuildNavMeshClicked() +void LLFloaterPathfindingConsole::onRebuildNavMeshClicked() { llwarns << "functionality has not yet been implemented to handle rebuilding of the navmesh" << llendl; } -void LLFloaterPathfindingSetup::onRefreshNavMeshClicked() +void LLFloaterPathfindingConsole::onRefreshNavMeshClicked() { llwarns << "functionality has not yet been implemented to handle refreshing of the navmesh" << llendl; } -void LLFloaterPathfindingSetup::onTerrainMaterialASet() +void LLFloaterPathfindingConsole::onTerrainMaterialASet() { F32 terrainMaterial = getTerrainMaterialA(); llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialA->getName() << "' to value (" << terrainMaterial << ")" << llendl; } -void LLFloaterPathfindingSetup::onTerrainMaterialBSet() +void LLFloaterPathfindingConsole::onTerrainMaterialBSet() { F32 terrainMaterial = getTerrainMaterialB(); llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialB->getName() << "' to value (" << terrainMaterial << ")" << llendl; } -void LLFloaterPathfindingSetup::onTerrainMaterialCSet() +void LLFloaterPathfindingConsole::onTerrainMaterialCSet() { F32 terrainMaterial = getTerrainMaterialC(); llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialC->getName() << "' to value (" << terrainMaterial << ")" << llendl; } -void LLFloaterPathfindingSetup::onTerrainMaterialDSet() +void LLFloaterPathfindingConsole::onTerrainMaterialDSet() { F32 terrainMaterial = getTerrainMaterialD(); llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialD->getName() @@ -616,7 +616,7 @@ void LLFloaterPathfindingSetup::onTerrainMaterialDSet() } -void LLFloaterPathfindingSetup::providePathingData( const LLVector3& point1, const LLVector3& point2 ) +void LLFloaterPathfindingConsole::providePathingData( const LLVector3& point1, const LLVector3& point2 ) { switch (getPathSelectionState()) { @@ -643,7 +643,7 @@ void LLFloaterPathfindingSetup::providePathingData( const LLVector3& point1, con generatePath(); } -void LLFloaterPathfindingSetup::generatePath() +void LLFloaterPathfindingConsole::generatePath() { if (mHasStartPoint && mHasEndPoint) { -- cgit v1.2.3 From efdba568f60a8d939fcfd40ee0cf6a8e205a5e0b Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Fri, 10 Feb 2012 19:59:03 -0800 Subject: PATH-284: Altering the design toward the new layout. Starting to re-hookup the functionality to the new controls. NOTE: This DOES break the pathing floater functionality. --- indra/newview/llfloaterpathfindingconsole.cpp | 330 ++++++-------------------- 1 file changed, 71 insertions(+), 259 deletions(-) (limited to 'indra/newview/llfloaterpathfindingconsole.cpp') diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index 51952d87b5..ca39463b24 100644 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -42,13 +42,6 @@ #include "LLPathingLib.h" -#define XUI_RENDER_OVERLAY_ON_FIXED_PHYSICS_GEOMETRY 1 -#define XUI_RENDER_OVERLAY_ON_ALL_RENDERABLE_GEOMETRY 2 - -#define XUI_PATH_SELECT_NONE 0 -#define XUI_PATH_SELECT_START_POINT 1 -#define XUI_PATH_SELECT_END_POINT 2 - #define XUI_CHARACTER_TYPE_A 1 #define XUI_CHARACTER_TYPE_B 2 #define XUI_CHARACTER_TYPE_C 3 @@ -63,32 +56,33 @@ const int MAX_OBSERVERS = 10; BOOL LLFloaterPathfindingConsole::postBuild() { childSetAction("view_and_edit_linksets", boost::bind(&LLFloaterPathfindingConsole::onViewEditLinksetClicked, this)); - childSetAction("rebuild_navmesh", boost::bind(&LLFloaterPathfindingConsole::onRebuildNavMeshClicked, this)); - childSetAction("refresh_navmesh", boost::bind(&LLFloaterPathfindingConsole::onRefreshNavMeshClicked, this)); - mShowNavMeshCheckBox = findChild("show_navmesh_overlay"); + mShowNavMeshCheckBox = findChild("show_navmesh"); llassert(mShowNavMeshCheckBox != NULL); mShowNavMeshCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowNavMeshToggle, this)); - mShowExcludeVolumesCheckBox = findChild("show_exclusion_volumes"); - llassert(mShowExcludeVolumesCheckBox != NULL); - mShowExcludeVolumesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowExcludeVolumesToggle, this)); + mShowWalkablesCheckBox = findChild("show_walkables"); + llassert(mShowWalkablesCheckBox != NULL); + mShowWalkablesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowWalkablesToggle, this)); + + mShowStaticObstaclesCheckBox = findChild("show_static_obstacles"); + llassert(mShowStaticObstaclesCheckBox != NULL); + mShowStaticObstaclesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowStaticObstaclesToggle, this)); - mShowPathCheckBox = findChild("show_path"); - llassert(mShowPathCheckBox != NULL); - mShowPathCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowPathToggle, this)); + mShowMaterialVolumesCheckBox = findChild("show_material_volumes"); + llassert(mShowMaterialVolumesCheckBox != NULL); + mShowMaterialVolumesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowMaterialVolumesToggle, this)); - mShowWaterPlaneCheckBox = findChild("show_water_plane"); - llassert(mShowWaterPlaneCheckBox != NULL); - mShowWaterPlaneCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowWaterPlaneToggle, this)); + mShowExclusionVolumesCheckBox = findChild("show_exclusion_volumes"); + llassert(mShowExclusionVolumesCheckBox != NULL); + mShowExclusionVolumesCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowExclusionVolumesToggle, this)); - mRegionOverlayDisplayRadioGroup = findChild("region_overlay_display"); - llassert(mRegionOverlayDisplayRadioGroup != NULL); - mRegionOverlayDisplayRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionOverlayDisplaySwitch, this)); + mShowWorldCheckBox = findChild("show_world"); + llassert(mShowWorldCheckBox != NULL); + mShowWorldCheckBox->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onShowWorldToggle, this)); - mPathSelectionRadioGroup = findChild("path_selection"); - llassert(mPathSelectionRadioGroup != NULL); - mPathSelectionRadioGroup ->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onPathSelectionSwitch, this)); + mPathfindingStatus = findChild("pathfinding_status"); + llassert(mPathfindingStatus != NULL); mCharacterWidthSlider = findChild("character_width"); llassert(mCharacterWidthSlider != NULL); @@ -98,113 +92,9 @@ BOOL LLFloaterPathfindingConsole::postBuild() llassert(mCharacterTypeRadioGroup != NULL); mCharacterTypeRadioGroup->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onCharacterTypeSwitch, this)); - mPathfindingStatus = findChild("pathfinding_status"); - llassert(mPathfindingStatus != NULL); - - mTerrainMaterialA = findChild("terrain_material_a"); - llassert(mTerrainMaterialA != NULL); - mTerrainMaterialA->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTerrainMaterialASet, this)); - mTerrainMaterialA->setPrevalidate(LLTextValidate::validateFloat); - - mTerrainMaterialB = findChild("terrain_material_b"); - llassert(mTerrainMaterialB != NULL); - mTerrainMaterialB->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTerrainMaterialBSet, this)); - mTerrainMaterialB->setPrevalidate(LLTextValidate::validateFloat); - - mTerrainMaterialC = findChild("terrain_material_c"); - llassert(mTerrainMaterialC != NULL); - mTerrainMaterialC->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTerrainMaterialCSet, this)); - mTerrainMaterialC->setPrevalidate(LLTextValidate::validateFloat); - - mTerrainMaterialD = findChild("terrain_material_d"); - llassert(mTerrainMaterialD != NULL); - mTerrainMaterialD->setCommitCallback(boost::bind(&LLFloaterPathfindingConsole::onTerrainMaterialDSet, this)); - mTerrainMaterialD->setPrevalidate(LLTextValidate::validateFloat); - return LLFloater::postBuild(); } -LLFloaterPathfindingConsole::ERegionOverlayDisplay LLFloaterPathfindingConsole::getRegionOverlayDisplay() const -{ - ERegionOverlayDisplay regionOverlayDisplay; - switch (mRegionOverlayDisplayRadioGroup->getValue().asInteger()) - { - case XUI_RENDER_OVERLAY_ON_FIXED_PHYSICS_GEOMETRY : - regionOverlayDisplay = kRenderOverlayOnFixedPhysicsGeometry; - break; - case XUI_RENDER_OVERLAY_ON_ALL_RENDERABLE_GEOMETRY : - regionOverlayDisplay = kRenderOverlayOnAllRenderableGeometry; - break; - default : - regionOverlayDisplay = kRenderOverlayOnFixedPhysicsGeometry; - llassert(0); - break; - } - - return regionOverlayDisplay; -} - -void LLFloaterPathfindingConsole::setRegionOverlayDisplay(ERegionOverlayDisplay pRegionOverlayDisplay) -{ - LLSD radioGroupValue; - - switch (pRegionOverlayDisplay) - { - case kRenderOverlayOnFixedPhysicsGeometry : - radioGroupValue = XUI_RENDER_OVERLAY_ON_FIXED_PHYSICS_GEOMETRY; - break; - case kRenderOverlayOnAllRenderableGeometry : - radioGroupValue = XUI_RENDER_OVERLAY_ON_ALL_RENDERABLE_GEOMETRY; - break; - default : - radioGroupValue = XUI_RENDER_OVERLAY_ON_FIXED_PHYSICS_GEOMETRY; - llassert(0); - break; - } - - mRegionOverlayDisplayRadioGroup->setValue(radioGroupValue); -} - -LLFloaterPathfindingConsole::EPathSelectionState LLFloaterPathfindingConsole::getPathSelectionState() const -{ - EPathSelectionState pathSelectionState; - - switch (mPathSelectionRadioGroup->getValue().asInteger()) - { - case XUI_PATH_SELECT_START_POINT : - pathSelectionState = kPathSelectStartPoint; - break; - case XUI_PATH_SELECT_END_POINT : - pathSelectionState = kPathSelectEndPoint; - break; - default : - pathSelectionState = kPathSelectNone; - break; - } - - return pathSelectionState; -} - -void LLFloaterPathfindingConsole::setPathSelectionState(EPathSelectionState pPathSelectionState) -{ - LLSD radioGroupValue; - - switch (pPathSelectionState) - { - case kPathSelectStartPoint : - radioGroupValue = XUI_PATH_SELECT_START_POINT; - break; - case kPathSelectEndPoint : - radioGroupValue = XUI_PATH_SELECT_END_POINT; - break; - default : - radioGroupValue = XUI_PATH_SELECT_NONE; - break; - } - - mPathSelectionRadioGroup->setValue(radioGroupValue); -} - F32 LLFloaterPathfindingConsole::getCharacterWidth() const { return mCharacterWidthSlider->getValueF32(); @@ -269,46 +159,6 @@ void LLFloaterPathfindingConsole::setCharacterType(ECharacterType pCharacterType mCharacterTypeRadioGroup->setValue(radioGroupValue); } -F32 LLFloaterPathfindingConsole::getTerrainMaterialA() const -{ - return mTerrainMaterialA->getValue().asReal(); -} - -void LLFloaterPathfindingConsole::setTerrainMaterialA(F32 pTerrainMaterial) -{ - mTerrainMaterialA->setValue(LLSD(pTerrainMaterial)); -} - -F32 LLFloaterPathfindingConsole::getTerrainMaterialB() const -{ - return mTerrainMaterialB->getValue().asReal(); -} - -void LLFloaterPathfindingConsole::setTerrainMaterialB(F32 pTerrainMaterial) -{ - mTerrainMaterialB->setValue(LLSD(pTerrainMaterial)); -} - -F32 LLFloaterPathfindingConsole::getTerrainMaterialC() const -{ - return mTerrainMaterialC->getValue().asReal(); -} - -void LLFloaterPathfindingConsole::setTerrainMaterialC(F32 pTerrainMaterial) -{ - mTerrainMaterialC->setValue(LLSD(pTerrainMaterial)); -} - -F32 LLFloaterPathfindingConsole::getTerrainMaterialD() const -{ - return mTerrainMaterialD->getValue().asReal(); -} - -void LLFloaterPathfindingConsole::setTerrainMaterialD(F32 pTerrainMaterial) -{ - mTerrainMaterialD->setValue(LLSD(pTerrainMaterial)); -} - void LLFloaterPathfindingConsole::setHasNavMeshReceived() { std::string str = getString("navmesh_fetch_complete_available"); @@ -330,18 +180,14 @@ void LLFloaterPathfindingConsole::setHasNoNavMesh() LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed) : LLFloater(pSeed), mShowNavMeshCheckBox(NULL), - mShowExcludeVolumesCheckBox(NULL), - mShowPathCheckBox(NULL), - mShowWaterPlaneCheckBox(NULL), - mRegionOverlayDisplayRadioGroup(NULL), - mPathSelectionRadioGroup(NULL), + mShowWalkablesCheckBox(NULL), + mShowStaticObstaclesCheckBox(NULL), + mShowMaterialVolumesCheckBox(NULL), + mShowExclusionVolumesCheckBox(NULL), + mShowWorldCheckBox(NULL), mCharacterWidthSlider(NULL), mCharacterTypeRadioGroup(NULL), mPathfindingStatus(NULL), - mTerrainMaterialA(NULL), - mTerrainMaterialB(NULL), - mTerrainMaterialC(NULL), - mTerrainMaterialD(NULL), mNavMeshCnt(0), mHasStartPoint(false), mHasEndPoint(false) @@ -423,9 +269,19 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey) llinfos<<"Region has does not required caps of type ["<setRenderPath(true); } } +void LLFloaterPathfindingConsole::onClose(bool app_quitting) +{ + //make sure we have a pathing system + if ( !LLPathingLib::getInstance() ) + { + LLPathingLib::getInstance()->setRenderPath(false); + } +} + void LLFloaterPathfindingConsole::onShowNavMeshToggle() { BOOL checkBoxValue = mShowNavMeshCheckBox->get(); @@ -442,97 +298,90 @@ void LLFloaterPathfindingConsole::onShowNavMeshToggle() } } -void LLFloaterPathfindingConsole::onShowExcludeVolumesToggle() +void LLFloaterPathfindingConsole::onShowWalkablesToggle() { - BOOL checkBoxValue = mShowExcludeVolumesCheckBox->get(); + BOOL checkBoxValue = mShowWalkablesCheckBox->get(); LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); if (llPathingLibInstance != NULL) { - llPathingLibInstance->setRenderShapes(checkBoxValue); + //llPathingLibInstance->setRenderNavMesh(checkBoxValue); + llwarns << "functionality has not yet been implemented to set walkables to " + << (checkBoxValue ? "TRUE" : "FALSE") << llendl; + } else { - mShowExcludeVolumesCheckBox->set(FALSE); + mShowWalkablesCheckBox->set(FALSE); llwarns << "cannot find LLPathingLib instance" << llendl; } } -void LLFloaterPathfindingConsole::onShowPathToggle() +void LLFloaterPathfindingConsole::onShowStaticObstaclesToggle() { - BOOL checkBoxValue = mShowPathCheckBox->get(); + BOOL checkBoxValue = mShowStaticObstaclesCheckBox->get(); LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); if (llPathingLibInstance != NULL) { - llPathingLibInstance->setRenderPath(checkBoxValue); + //llPathingLibInstance->setRenderNavMesh(checkBoxValue); + llwarns << "functionality has not yet been implemented to set static obstacles to " + << (checkBoxValue ? "TRUE" : "FALSE") << llendl; } else { - mShowPathCheckBox->set(FALSE); + mShowStaticObstaclesCheckBox->set(FALSE); llwarns << "cannot find LLPathingLib instance" << llendl; } } -void LLFloaterPathfindingConsole::onShowWaterPlaneToggle() +void LLFloaterPathfindingConsole::onShowMaterialVolumesToggle() { - BOOL checkBoxValue = mShowWaterPlaneCheckBox->get(); + BOOL checkBoxValue = mShowMaterialVolumesCheckBox->get(); LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); if (llPathingLibInstance != NULL) { - llPathingLibInstance->setRenderWaterPlane(checkBoxValue); + //llPathingLibInstance->setRenderNavMesh(checkBoxValue); + llwarns << "functionality has not yet been implemented to set material volumes to " + << (checkBoxValue ? "TRUE" : "FALSE") << llendl; } else { - mShowWaterPlaneCheckBox->set(FALSE); + mShowMaterialVolumesCheckBox->set(FALSE); llwarns << "cannot find LLPathingLib instance" << llendl; } - - llwarns << "functionality has not yet been implemented to toggle '" - << mShowWaterPlaneCheckBox->getLabel() << "' to " - << (checkBoxValue ? "ON" : "OFF") << llendl; } -void LLFloaterPathfindingConsole::onRegionOverlayDisplaySwitch() +void LLFloaterPathfindingConsole::onShowExclusionVolumesToggle() { + BOOL checkBoxValue = mShowExclusionVolumesCheckBox->get(); + LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); if (llPathingLibInstance != NULL) { - switch (getRegionOverlayDisplay()) - { - case kRenderOverlayOnFixedPhysicsGeometry : - llPathingLibInstance->setRenderOverlayMode(false); - break; - case kRenderOverlayOnAllRenderableGeometry : - llPathingLibInstance->setRenderOverlayMode(true); - break; - default : - llPathingLibInstance->setRenderOverlayMode(false); - llassert(0); - break; - } + llPathingLibInstance->setRenderShapes(checkBoxValue); } else { - this->setRegionOverlayDisplay(kRenderOverlayOnFixedPhysicsGeometry); + mShowExclusionVolumesCheckBox->set(FALSE); llwarns << "cannot find LLPathingLib instance" << llendl; } } -void LLFloaterPathfindingConsole::onPathSelectionSwitch() +void LLFloaterPathfindingConsole::onShowWorldToggle() { - switch (getPathSelectionState()) + BOOL checkBoxValue = mShowWorldCheckBox->get(); + + LLPathingLib *llPathingLibInstance = LLPathingLib::getInstance(); + if (llPathingLibInstance != NULL) { - case kPathSelectNone : - break; - case kPathSelectStartPoint : - break; - case kPathSelectEndPoint : - break; - default : - llassert(0); - break; + llPathingLibInstance->setRenderOverlayMode(checkBoxValue); + } + else + { + mShowWorldCheckBox->set(FALSE); + llwarns << "cannot find LLPathingLib instance" << llendl; } } @@ -577,47 +426,10 @@ void LLFloaterPathfindingConsole::onViewEditLinksetClicked() LLFloaterPathfindingLinksets::openLinksetsEditor(); } -void LLFloaterPathfindingConsole::onRebuildNavMeshClicked() -{ - llwarns << "functionality has not yet been implemented to handle rebuilding of the navmesh" << llendl; -} - -void LLFloaterPathfindingConsole::onRefreshNavMeshClicked() -{ - llwarns << "functionality has not yet been implemented to handle refreshing of the navmesh" << llendl; -} - -void LLFloaterPathfindingConsole::onTerrainMaterialASet() -{ - F32 terrainMaterial = getTerrainMaterialA(); - llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialA->getName() - << "' to value (" << terrainMaterial << ")" << llendl; -} - -void LLFloaterPathfindingConsole::onTerrainMaterialBSet() -{ - F32 terrainMaterial = getTerrainMaterialB(); - llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialB->getName() - << "' to value (" << terrainMaterial << ")" << llendl; -} - -void LLFloaterPathfindingConsole::onTerrainMaterialCSet() -{ - F32 terrainMaterial = getTerrainMaterialC(); - llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialC->getName() - << "' to value (" << terrainMaterial << ")" << llendl; -} - -void LLFloaterPathfindingConsole::onTerrainMaterialDSet() -{ - F32 terrainMaterial = getTerrainMaterialD(); - llwarns << "functionality has not yet been implemented to setting '" << mTerrainMaterialD->getName() - << "' to value (" << terrainMaterial << ")" << llendl; -} - void LLFloaterPathfindingConsole::providePathingData( const LLVector3& point1, const LLVector3& point2 ) { +#if 0 switch (getPathSelectionState()) { case kPathSelectNone : @@ -639,7 +451,7 @@ void LLFloaterPathfindingConsole::providePathingData( const LLVector3& point1, c llassert(0); break; } - +#endif generatePath(); } -- cgit v1.2.3