PATH-445,PATH-452: Adding functionality to reload the navmesh on region boundary crossing. Also, correcting how the region boundary crossing is detected to make it more accurate.
parent
87fb36df1a
commit
4e9d9ebe8a
|
|
@ -48,6 +48,7 @@
|
|||
#include "llviewercontrol.h"
|
||||
#include "llpathfindingnavmeshzone.h"
|
||||
#include "llpathfindingmanager.h"
|
||||
#include "llenvmanager.h"
|
||||
|
||||
#include "LLPathingLib.h"
|
||||
|
||||
|
|
@ -157,7 +158,6 @@ BOOL LLFloaterPathfindingConsole::postBuild()
|
|||
void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey)
|
||||
{
|
||||
LLFloater::onOpen(pKey);
|
||||
setHeartBeat( true );
|
||||
//make sure we have a pathing system
|
||||
if ( !LLPathingLib::getInstance() )
|
||||
{
|
||||
|
|
@ -177,10 +177,7 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey)
|
|||
}
|
||||
|
||||
mIsNavMeshUpdating = false;
|
||||
mNavMeshZone.initialize();
|
||||
|
||||
mNavMeshZone.enable();
|
||||
mNavMeshZone.refresh();
|
||||
initializeNavMeshZoneForCurrentRegion();
|
||||
}
|
||||
|
||||
if (!mAgentStateSlot.connected())
|
||||
|
|
@ -188,12 +185,22 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey)
|
|||
mAgentStateSlot = LLPathfindingManager::getInstance()->registerAgentStateListener(boost::bind(&LLFloaterPathfindingConsole::onAgentStateCB, this, _1));
|
||||
}
|
||||
|
||||
if (!mRegionBoundarySlot.connected())
|
||||
{
|
||||
mRegionBoundarySlot = LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionBoundaryCross, this));
|
||||
}
|
||||
|
||||
setAgentState(LLPathfindingManager::getInstance()->getAgentState());
|
||||
updatePathTestStatus();
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingConsole::onClose(bool pIsAppQuitting)
|
||||
{
|
||||
if (mRegionBoundarySlot.connected())
|
||||
{
|
||||
mRegionBoundarySlot.disconnect();
|
||||
}
|
||||
|
||||
if (mAgentStateSlot.connected())
|
||||
{
|
||||
mAgentStateSlot.disconnect();
|
||||
|
|
@ -210,7 +217,6 @@ void LLFloaterPathfindingConsole::onClose(bool pIsAppQuitting)
|
|||
}
|
||||
|
||||
LLFloater::onClose(pIsAppQuitting);
|
||||
setHeartBeat( false );
|
||||
setConsoleState(kConsoleStateUnknown);
|
||||
//Reset all the checkboxes to default
|
||||
mShowNavMeshCheckBox->set( false );
|
||||
|
|
@ -529,11 +535,11 @@ LLFloaterPathfindingConsole::LLFloaterPathfindingConsole(const LLSD& pSeed)
|
|||
mNavMeshZone(),
|
||||
mIsNavMeshUpdating(false),
|
||||
mAgentStateSlot(),
|
||||
mRegionBoundarySlot(),
|
||||
mConsoleState(kConsoleStateUnknown),
|
||||
mPathData(),
|
||||
mHasStartPoint(false),
|
||||
mHasEndPoint(false),
|
||||
mHeartBeat( false )
|
||||
mHasEndPoint(false)
|
||||
{
|
||||
mSelfHandle.bind(this);
|
||||
}
|
||||
|
|
@ -673,6 +679,11 @@ void LLFloaterPathfindingConsole::onAgentStateCB(LLPathfindingManager::EAgentSta
|
|||
setAgentState(pAgentState);
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingConsole::onRegionBoundaryCross()
|
||||
{
|
||||
initializeNavMeshZoneForCurrentRegion();
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingConsole::setConsoleState(EConsoleState pConsoleState)
|
||||
{
|
||||
mConsoleState = pConsoleState;
|
||||
|
|
@ -868,6 +879,14 @@ std::string LLFloaterPathfindingConsole::getSimulatorStatusText() const
|
|||
return simulatorStatusText;
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingConsole::initializeNavMeshZoneForCurrentRegion()
|
||||
{
|
||||
mNavMeshZone.disable();
|
||||
mNavMeshZone.initialize();
|
||||
mNavMeshZone.enable();
|
||||
mNavMeshZone.refresh();
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingConsole::setAgentState(LLPathfindingManager::EAgentState pAgentState)
|
||||
{
|
||||
switch (LLPathfindingManager::getInstance()->getLastKnownNonErrorAgentState())
|
||||
|
|
@ -1001,15 +1020,6 @@ U32 LLFloaterPathfindingConsole::getRenderShapeFlags()
|
|||
return mShapeRenderFlags;
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingConsole::regionCrossingOccured()
|
||||
{
|
||||
std::string statusText("");
|
||||
LLStyle::Params styleParams;
|
||||
styleParams.color = LLUIColorTable::instance().getColor("DrYellow");
|
||||
statusText = getString("navmesh_update_needed");
|
||||
mPathfindingViewerStatus->setText((LLStringExplicit)statusText, styleParams);
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingConsole::fillInColorsForNavMeshVisualization()
|
||||
{
|
||||
|
||||
|
|
@ -1070,5 +1080,3 @@ void LLFloaterPathfindingConsole::fillInColorsForNavMeshVisualization()
|
|||
|
||||
LLPathingLib::getInstance()->setNavMeshColors( colors );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,208 +1,210 @@
|
|||
/**
|
||||
* @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 "llhandle.h"
|
||||
#include "LLPathingLib.h"
|
||||
#include "llpathfindingmanager.h"
|
||||
#include "llpathfindingnavmeshzone.h"
|
||||
|
||||
class LLSD;
|
||||
class LLPanel;
|
||||
class LLSliderCtrl;
|
||||
class LLLineEditor;
|
||||
class LLTextBase;
|
||||
class LLCheckBoxCtrl;
|
||||
class LLTabContainer;
|
||||
class LLComboBox;
|
||||
class LLButton;
|
||||
|
||||
class LLFloaterPathfindingConsole
|
||||
: public LLFloater
|
||||
{
|
||||
friend class LLFloaterReg;
|
||||
|
||||
public:
|
||||
typedef enum
|
||||
{
|
||||
kRenderHeatmapNone,
|
||||
kRenderHeatmapA,
|
||||
kRenderHeatmapB,
|
||||
kRenderHeatmapC,
|
||||
kRenderHeatmapD
|
||||
} ERenderHeatmapType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
kCharacterTypeNone,
|
||||
kCharacterTypeA,
|
||||
kCharacterTypeB,
|
||||
kCharacterTypeC,
|
||||
kCharacterTypeD
|
||||
} ECharacterType;
|
||||
|
||||
virtual BOOL postBuild();
|
||||
virtual void onOpen(const LLSD& pKey);
|
||||
virtual void onClose(bool pIsAppQuitting);
|
||||
virtual BOOL handleAnyMouseClick(S32 x, S32 y, MASK mask, EClickType clicktype, BOOL down);
|
||||
|
||||
BOOL isGeneratePathMode(MASK mask, EClickType clicktype, BOOL down) const;
|
||||
|
||||
static LLHandle<LLFloaterPathfindingConsole> getInstanceHandle();
|
||||
|
||||
BOOL isRenderPath() const;
|
||||
|
||||
BOOL isRenderNavMesh() const;
|
||||
void setRenderNavMesh(BOOL pIsRenderNavMesh);
|
||||
|
||||
BOOL isRenderWalkables() const;
|
||||
void setRenderWalkables(BOOL pIsRenderWalkables);
|
||||
|
||||
BOOL isRenderStaticObstacles() const;
|
||||
void setRenderStaticObstacles(BOOL pIsRenderStaticObstacles);
|
||||
|
||||
BOOL isRenderMaterialVolumes() const;
|
||||
void setRenderMaterialVolumes(BOOL pIsRenderMaterialVolumes);
|
||||
|
||||
BOOL isRenderExclusionVolumes() const;
|
||||
void setRenderExclusionVolumes(BOOL pIsRenderExclusionVolumes);
|
||||
|
||||
BOOL isRenderWorld() const;
|
||||
void setRenderWorld(BOOL pIsRenderWorld);
|
||||
|
||||
BOOL isRenderAnyShapes() const;
|
||||
U32 getRenderShapeFlags();
|
||||
|
||||
ERenderHeatmapType getRenderHeatmapType() const;
|
||||
void setRenderHeatmapType(ERenderHeatmapType pRenderHeatmapType);
|
||||
|
||||
F32 getCharacterWidth() const;
|
||||
void setCharacterWidth(F32 pCharacterWidth);
|
||||
|
||||
ECharacterType getCharacterType() const;
|
||||
void setCharacterType(ECharacterType pCharacterType);
|
||||
|
||||
bool getHeartBeat() const { return mHeartBeat;}
|
||||
void setHeartBeat( bool state ) { mHeartBeat=state; }
|
||||
void regionCrossingOccured();
|
||||
int getHeatMapType() const;
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
typedef enum
|
||||
{
|
||||
kConsoleStateUnknown,
|
||||
kConsoleStateLibraryNotImplemented,
|
||||
kConsoleStateRegionNotEnabled,
|
||||
kConsoleStateCheckingVersion,
|
||||
kConsoleStateDownloading,
|
||||
kConsoleStateHasNavMesh,
|
||||
kConsoleStateError
|
||||
} EConsoleState;
|
||||
|
||||
// Does its own instance management, so clients not allowed
|
||||
// to allocate or destroy.
|
||||
LLFloaterPathfindingConsole(const LLSD& pSeed);
|
||||
virtual ~LLFloaterPathfindingConsole();
|
||||
|
||||
void onShowWalkabilitySet();
|
||||
void onShowWorldToggle();
|
||||
void onCharacterWidthSet();
|
||||
void onCharacterTypeSwitch();
|
||||
void onViewCharactersClicked();
|
||||
void onUnfreezeClicked();
|
||||
void onFreezeClicked();
|
||||
void onViewEditLinksetClicked();
|
||||
void onClearPathClicked();
|
||||
void onNavMeshZoneCB(LLPathfindingNavMeshZone::ENavMeshZoneRequestStatus pNavMeshZoneRequestStatus);
|
||||
void onAgentStateCB(LLPathfindingManager::EAgentState pAgentState);
|
||||
|
||||
void setConsoleState(EConsoleState pConsoleState);
|
||||
|
||||
void updateControlsOnConsoleState();
|
||||
void updateStatusOnConsoleState();
|
||||
std::string getSimulatorStatusText() const;
|
||||
|
||||
void setAgentState(LLPathfindingManager::EAgentState pAgentState);
|
||||
|
||||
void generatePath();
|
||||
void updatePathTestStatus();
|
||||
void resetShapeRenderFlags() { mShapeRenderFlags = 0; }
|
||||
void setShapeRenderFlag( LLPathingLib::LLShapeType type ) { mShapeRenderFlags |= (1<<type); }
|
||||
void fillInColorsForNavMeshVisualization();
|
||||
|
||||
LLRootHandle<LLFloaterPathfindingConsole> mSelfHandle;
|
||||
LLCheckBoxCtrl *mShowNavMeshCheckBox;
|
||||
LLComboBox *mShowNavMeshWalkabilityComboBox;
|
||||
LLCheckBoxCtrl *mShowWalkablesCheckBox;
|
||||
LLCheckBoxCtrl *mShowStaticObstaclesCheckBox;
|
||||
LLCheckBoxCtrl *mShowMaterialVolumesCheckBox;
|
||||
LLCheckBoxCtrl *mShowExclusionVolumesCheckBox;
|
||||
LLCheckBoxCtrl *mShowWorldCheckBox;
|
||||
LLTextBase *mPathfindingViewerStatus;
|
||||
LLTextBase *mPathfindingSimulatorStatus;
|
||||
LLButton *mViewCharactersButton;
|
||||
LLTabContainer *mEditTestTabContainer;
|
||||
LLPanel *mEditTab;
|
||||
LLPanel *mTestTab;
|
||||
LLTextBase *mUnfreezeLabel;
|
||||
LLButton *mUnfreezeButton;
|
||||
LLTextBase *mLinksetsLabel;
|
||||
LLButton *mLinksetsButton;
|
||||
LLTextBase *mFreezeLabel;
|
||||
LLButton *mFreezeButton;
|
||||
LLSliderCtrl *mCharacterWidthSlider;
|
||||
LLComboBox *mCharacterTypeComboBox;
|
||||
LLTextBase *mPathTestingStatus;
|
||||
LLButton *mClearPathButton;
|
||||
|
||||
LLPathfindingNavMeshZone::navmesh_zone_slot_t mNavMeshZoneSlot;
|
||||
LLPathfindingNavMeshZone mNavMeshZone;
|
||||
bool mIsNavMeshUpdating;
|
||||
|
||||
LLPathfindingManager::agent_state_slot_t mAgentStateSlot;
|
||||
|
||||
EConsoleState mConsoleState;
|
||||
|
||||
//Container that is populated and subsequently submitted to the LLPathingSystem for processing
|
||||
LLPathingLib::PathingPacket mPathData;
|
||||
bool mHasStartPoint;
|
||||
bool mHasEndPoint;
|
||||
U32 mShapeRenderFlags;
|
||||
bool mHeartBeat;
|
||||
|
||||
static LLHandle<LLFloaterPathfindingConsole> sInstanceHandle;
|
||||
/**
|
||||
* @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 "llhandle.h"
|
||||
#include "LLPathingLib.h"
|
||||
#include "llpathfindingmanager.h"
|
||||
#include "llpathfindingnavmeshzone.h"
|
||||
|
||||
#include <boost/signals2.hpp>
|
||||
|
||||
class LLSD;
|
||||
class LLPanel;
|
||||
class LLSliderCtrl;
|
||||
class LLLineEditor;
|
||||
class LLTextBase;
|
||||
class LLCheckBoxCtrl;
|
||||
class LLTabContainer;
|
||||
class LLComboBox;
|
||||
class LLButton;
|
||||
|
||||
class LLFloaterPathfindingConsole
|
||||
: public LLFloater
|
||||
{
|
||||
friend class LLFloaterReg;
|
||||
|
||||
public:
|
||||
typedef enum
|
||||
{
|
||||
kRenderHeatmapNone,
|
||||
kRenderHeatmapA,
|
||||
kRenderHeatmapB,
|
||||
kRenderHeatmapC,
|
||||
kRenderHeatmapD
|
||||
} ERenderHeatmapType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
kCharacterTypeNone,
|
||||
kCharacterTypeA,
|
||||
kCharacterTypeB,
|
||||
kCharacterTypeC,
|
||||
kCharacterTypeD
|
||||
} ECharacterType;
|
||||
|
||||
virtual BOOL postBuild();
|
||||
virtual void onOpen(const LLSD& pKey);
|
||||
virtual void onClose(bool pIsAppQuitting);
|
||||
virtual BOOL handleAnyMouseClick(S32 x, S32 y, MASK mask, EClickType clicktype, BOOL down);
|
||||
|
||||
BOOL isGeneratePathMode(MASK mask, EClickType clicktype, BOOL down) const;
|
||||
|
||||
static LLHandle<LLFloaterPathfindingConsole> getInstanceHandle();
|
||||
|
||||
BOOL isRenderPath() const;
|
||||
|
||||
BOOL isRenderNavMesh() const;
|
||||
void setRenderNavMesh(BOOL pIsRenderNavMesh);
|
||||
|
||||
BOOL isRenderWalkables() const;
|
||||
void setRenderWalkables(BOOL pIsRenderWalkables);
|
||||
|
||||
BOOL isRenderStaticObstacles() const;
|
||||
void setRenderStaticObstacles(BOOL pIsRenderStaticObstacles);
|
||||
|
||||
BOOL isRenderMaterialVolumes() const;
|
||||
void setRenderMaterialVolumes(BOOL pIsRenderMaterialVolumes);
|
||||
|
||||
BOOL isRenderExclusionVolumes() const;
|
||||
void setRenderExclusionVolumes(BOOL pIsRenderExclusionVolumes);
|
||||
|
||||
BOOL isRenderWorld() const;
|
||||
void setRenderWorld(BOOL pIsRenderWorld);
|
||||
|
||||
BOOL isRenderAnyShapes() const;
|
||||
U32 getRenderShapeFlags();
|
||||
|
||||
ERenderHeatmapType getRenderHeatmapType() const;
|
||||
void setRenderHeatmapType(ERenderHeatmapType pRenderHeatmapType);
|
||||
|
||||
F32 getCharacterWidth() const;
|
||||
void setCharacterWidth(F32 pCharacterWidth);
|
||||
|
||||
ECharacterType getCharacterType() const;
|
||||
void setCharacterType(ECharacterType pCharacterType);
|
||||
|
||||
int getHeatMapType() const;
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
typedef enum
|
||||
{
|
||||
kConsoleStateUnknown,
|
||||
kConsoleStateLibraryNotImplemented,
|
||||
kConsoleStateRegionNotEnabled,
|
||||
kConsoleStateCheckingVersion,
|
||||
kConsoleStateDownloading,
|
||||
kConsoleStateHasNavMesh,
|
||||
kConsoleStateError
|
||||
} EConsoleState;
|
||||
|
||||
// Does its own instance management, so clients not allowed
|
||||
// to allocate or destroy.
|
||||
LLFloaterPathfindingConsole(const LLSD& pSeed);
|
||||
virtual ~LLFloaterPathfindingConsole();
|
||||
|
||||
void onShowWalkabilitySet();
|
||||
void onShowWorldToggle();
|
||||
void onCharacterWidthSet();
|
||||
void onCharacterTypeSwitch();
|
||||
void onViewCharactersClicked();
|
||||
void onUnfreezeClicked();
|
||||
void onFreezeClicked();
|
||||
void onViewEditLinksetClicked();
|
||||
void onClearPathClicked();
|
||||
void onNavMeshZoneCB(LLPathfindingNavMeshZone::ENavMeshZoneRequestStatus pNavMeshZoneRequestStatus);
|
||||
void onAgentStateCB(LLPathfindingManager::EAgentState pAgentState);
|
||||
void onRegionBoundaryCross();
|
||||
|
||||
void setConsoleState(EConsoleState pConsoleState);
|
||||
|
||||
void updateControlsOnConsoleState();
|
||||
void updateStatusOnConsoleState();
|
||||
std::string getSimulatorStatusText() const;
|
||||
|
||||
void initializeNavMeshZoneForCurrentRegion();
|
||||
|
||||
void setAgentState(LLPathfindingManager::EAgentState pAgentState);
|
||||
|
||||
void generatePath();
|
||||
void updatePathTestStatus();
|
||||
void resetShapeRenderFlags() { mShapeRenderFlags = 0; }
|
||||
void setShapeRenderFlag( LLPathingLib::LLShapeType type ) { mShapeRenderFlags |= (1<<type); }
|
||||
void fillInColorsForNavMeshVisualization();
|
||||
|
||||
LLRootHandle<LLFloaterPathfindingConsole> mSelfHandle;
|
||||
LLCheckBoxCtrl *mShowNavMeshCheckBox;
|
||||
LLComboBox *mShowNavMeshWalkabilityComboBox;
|
||||
LLCheckBoxCtrl *mShowWalkablesCheckBox;
|
||||
LLCheckBoxCtrl *mShowStaticObstaclesCheckBox;
|
||||
LLCheckBoxCtrl *mShowMaterialVolumesCheckBox;
|
||||
LLCheckBoxCtrl *mShowExclusionVolumesCheckBox;
|
||||
LLCheckBoxCtrl *mShowWorldCheckBox;
|
||||
LLTextBase *mPathfindingViewerStatus;
|
||||
LLTextBase *mPathfindingSimulatorStatus;
|
||||
LLButton *mViewCharactersButton;
|
||||
LLTabContainer *mEditTestTabContainer;
|
||||
LLPanel *mEditTab;
|
||||
LLPanel *mTestTab;
|
||||
LLTextBase *mUnfreezeLabel;
|
||||
LLButton *mUnfreezeButton;
|
||||
LLTextBase *mLinksetsLabel;
|
||||
LLButton *mLinksetsButton;
|
||||
LLTextBase *mFreezeLabel;
|
||||
LLButton *mFreezeButton;
|
||||
LLSliderCtrl *mCharacterWidthSlider;
|
||||
LLComboBox *mCharacterTypeComboBox;
|
||||
LLTextBase *mPathTestingStatus;
|
||||
LLButton *mClearPathButton;
|
||||
|
||||
LLPathfindingNavMeshZone::navmesh_zone_slot_t mNavMeshZoneSlot;
|
||||
LLPathfindingNavMeshZone mNavMeshZone;
|
||||
bool mIsNavMeshUpdating;
|
||||
|
||||
LLPathfindingManager::agent_state_slot_t mAgentStateSlot;
|
||||
boost::signals2::connection mRegionBoundarySlot;
|
||||
|
||||
EConsoleState mConsoleState;
|
||||
|
||||
//Container that is populated and subsequently submitted to the LLPathingSystem for processing
|
||||
LLPathingLib::PathingPacket mPathData;
|
||||
bool mHasStartPoint;
|
||||
bool mHasEndPoint;
|
||||
U32 mShapeRenderFlags;
|
||||
|
||||
static LLHandle<LLFloaterPathfindingConsole> sInstanceHandle;
|
||||
|
||||
public:
|
||||
LLPathingLib::NavMeshColors mNavMeshColors;
|
||||
};
|
||||
|
||||
#endif // LL_LLFLOATERPATHFINDINGCONSOLE_H
|
||||
LLPathingLib::NavMeshColors mNavMeshColors;
|
||||
};
|
||||
|
||||
#endif // LL_LLFLOATERPATHFINDINGCONSOLE_H
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@
|
|||
#include "message.h"
|
||||
#include "pipeline.h"
|
||||
#include "llappviewer.h" // for do_disconnect()
|
||||
#include "llfloaterpathfindingconsole.h"
|
||||
|
||||
#include <deque>
|
||||
#include <queue>
|
||||
|
|
@ -1092,14 +1091,6 @@ void process_region_handshake(LLMessageSystem* msg, void** user_data)
|
|||
}
|
||||
|
||||
regionp->unpackRegionHandshake();
|
||||
|
||||
LLFloaterPathfindingConsole* pWindow = LLFloaterPathfindingConsole::getInstanceHandle().get();
|
||||
if ( pWindow && pWindow->getHeartBeat() )
|
||||
{
|
||||
pWindow->regionCrossingOccured();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
<floater.string name="pathing_choose_start_point">Please choose start point.</floater.string>
|
||||
<floater.string name="pathing_choose_end_point">Please choose end point.</floater.string>
|
||||
<floater.string name="pathing_path_valid">Path is shown in orange.</floater.string>
|
||||
<floater.string name="navmesh_update_needed">Region boundary hit, navmesh may not be accurate.</floater.string>
|
||||
<text
|
||||
height="13"
|
||||
word_wrap="true"
|
||||
|
|
|
|||
Loading…
Reference in New Issue