From 581de7c7b8025c48e585c1af80e060af94aca328 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Mon, 5 Mar 2012 17:20:35 -0800 Subject: PATH-205,PATH-304: More work to handle downloading of out-of-date navmeshes. --- indra/newview/llpathfindingnavmeshzone.h | 99 ++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 indra/newview/llpathfindingnavmeshzone.h (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h new file mode 100644 index 0000000000..9d1139de32 --- /dev/null +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -0,0 +1,99 @@ +/** + * @file llpathfindingnavmeshzone.h + * @author William Todd Stinson + * @brief A class for representing the zone of navmeshes containing and possible surrounding the current region. + * + * $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_LLPATHFINDINGNAVMESHZONE_H +#define LL_LLPATHFINDINGNAVMESHZONE_H + +#include "llsd.h" +#include "lluuid.h" +#include "llpathfindingnavmesh.h" + +#include + +#include +#include + +class LLPathfindingNavMeshZone +{ +public: + typedef enum { + kNavMeshZoneRequestUnknown, + kNavMeshZoneRequestStarted, + kNavMeshZoneRequestCompleted, + kNavMeshZoneRequestNotEnabled, + kNavMeshZoneRequestError + } ENavMeshZoneRequestStatus; + + typedef boost::function navmesh_zone_callback_t; + typedef boost::signals2::signal navmesh_zone_signal_t; + typedef boost::signals2::connection navmesh_zone_slot_t; + + LLPathfindingNavMeshZone(); + virtual ~LLPathfindingNavMeshZone(); + + navmesh_zone_slot_t registerNavMeshZoneListener(navmesh_zone_callback_t pNavMeshZoneCallback); + void setCurrentRegionAsCenter(); + void refresh(); + void disable(); + + void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLUUID &pRegionUUID, U32 pNavMeshVersion, const LLSD::Binary &pNavMeshData); + +protected: + +private: + class NavMeshLocation + { + public: + NavMeshLocation(const LLUUID &pRegionUUID, S32 pDirection); + NavMeshLocation(const NavMeshLocation &other); + virtual ~NavMeshLocation(); + + void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLUUID &pRegionUUID, U32 pNavMeshVersion, const LLSD::Binary &pNavMeshData); + LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const; + + NavMeshLocation &operator =(const NavMeshLocation &other); + + protected: + + private: + LLUUID mRegionUUID; + S32 mDirection; + bool mHasNavMesh; + U32 mNavMeshVersion; + LLPathfindingNavMesh::ENavMeshRequestStatus mRequestStatus; + }; + + typedef std::map NavMeshLocations; + + void updateStatus(); + + NavMeshLocations mNavMeshLocations; + navmesh_zone_signal_t mNavMeshZoneSignal; + LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot; +}; + +#endif // LL_LLPATHFINDINGNAVMESHZONE_H -- cgit v1.2.3 From a0c626fe411336871505c2c414143ae4b2f73259 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Tue, 6 Mar 2012 18:40:37 -0800 Subject: PATH-205,PATH-304: More work to handle downloading of out-of-date navmeshes. --- indra/newview/llpathfindingnavmeshzone.h | 40 ++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 15 deletions(-) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 9d1139de32..8489b5899b 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -32,8 +32,9 @@ #include "lluuid.h" #include "llpathfindingnavmesh.h" -#include +#include +#include #include #include @@ -56,44 +57,53 @@ public: virtual ~LLPathfindingNavMeshZone(); navmesh_zone_slot_t registerNavMeshZoneListener(navmesh_zone_callback_t pNavMeshZoneCallback); - void setCurrentRegionAsCenter(); - void refresh(); - void disable(); + void initialize(); - void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLUUID &pRegionUUID, U32 pNavMeshVersion, const LLSD::Binary &pNavMeshData); + void enable(); + void disable(); + void refresh(); protected: private: + typedef boost::function navmesh_location_callback_t; class NavMeshLocation { public: - NavMeshLocation(const LLUUID &pRegionUUID, S32 pDirection); - NavMeshLocation(const NavMeshLocation &other); + NavMeshLocation(S32 pDirection, navmesh_location_callback_t pLocationCallback); virtual ~NavMeshLocation(); - void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLUUID &pRegionUUID, U32 pNavMeshVersion, const LLSD::Binary &pNavMeshData); - LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const; + void enable(); + void refresh(); + void disable(); - NavMeshLocation &operator =(const NavMeshLocation &other); + LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const; protected: private: - LLUUID mRegionUUID; + void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLUUID &pRegionUUID, U32 pNavMeshVersion, const LLSD::Binary &pNavMeshData); + + void clear(); + LLViewerRegion *getRegion() const; + S32 mDirection; + LLUUID mRegionUUID; bool mHasNavMesh; U32 mNavMeshVersion; + navmesh_location_callback_t mLocationCallback; LLPathfindingNavMesh::ENavMeshRequestStatus mRequestStatus; + LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot; }; - typedef std::map NavMeshLocations; + typedef boost::shared_ptr NavMeshLocationPtr; + typedef std::vector NavMeshLocationPtrs; + void handleNavMeshLocation(); void updateStatus(); - NavMeshLocations mNavMeshLocations; - navmesh_zone_signal_t mNavMeshZoneSignal; - LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot; + NavMeshLocationPtrs mNavMeshLocationPtrs; + navmesh_zone_signal_t mNavMeshZoneSignal; }; #endif // LL_LLPATHFINDINGNAVMESHZONE_H -- cgit v1.2.3 From f578181af9cbe3277374578c27487e2e72956079 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Thu, 8 Mar 2012 12:34:11 -0800 Subject: PATH-304: Adding functionality to handle the reloading of out-of-date navmeshes. --- indra/newview/llpathfindingnavmeshzone.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 8489b5899b..7084869b33 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -38,11 +38,14 @@ #include #include +#define XXX_STINSON_DEBUG_NAVMESH_ZONE + class LLPathfindingNavMeshZone { public: typedef enum { kNavMeshZoneRequestUnknown, + kNavMeshZoneRequestNeedsUpdate, kNavMeshZoneRequestStarted, kNavMeshZoneRequestCompleted, kNavMeshZoneRequestNotEnabled, @@ -78,6 +81,10 @@ private: void disable(); LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const; +#ifdef XXX_STINSON_DEBUG_NAVMESH_ZONE + const LLUUID &getRegionUUID() const {return mRegionUUID;}; + S32 getDirection() const {return mDirection;}; +#endif // XXX_STINSON_DEBUG_NAVMESH_ZONE protected: -- cgit v1.2.3 From 125ca3d506eb07615c23dc4e553b76000b7d9f06 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Thu, 8 Mar 2012 15:05:04 -0800 Subject: Disabling the debugging messages. --- indra/newview/llpathfindingnavmeshzone.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 7084869b33..833f3ebb05 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -38,7 +38,7 @@ #include #include -#define XXX_STINSON_DEBUG_NAVMESH_ZONE +//#define XXX_STINSON_DEBUG_NAVMESH_ZONE class LLPathfindingNavMeshZone { -- cgit v1.2.3 From c990cc71ce124059a072c7778ac962253bacb199 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Mon, 12 Mar 2012 19:18:19 -0700 Subject: PATH-304: Adding an extra state for the pathfinding console to report that the status of the navmesh is being checked. --- indra/newview/llpathfindingnavmeshzone.h | 1 + 1 file changed, 1 insertion(+) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 833f3ebb05..7b6583a663 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -45,6 +45,7 @@ class LLPathfindingNavMeshZone public: typedef enum { kNavMeshZoneRequestUnknown, + kNavMeshZoneRequestChecking, kNavMeshZoneRequestNeedsUpdate, kNavMeshZoneRequestStarted, kNavMeshZoneRequestCompleted, -- cgit v1.2.3 From d4fb7c99febf07b4eb7f3a9d2eab485e356d1439 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Wed, 14 Mar 2012 14:09:36 -0700 Subject: PATH-302: Adding in status reporting for the simulator navmesh status. Separating the viewer status messaging from the simulator status. --- indra/newview/llpathfindingnavmeshzone.h | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 7b6583a663..7f83e9d37b 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -31,6 +31,7 @@ #include "llsd.h" #include "lluuid.h" #include "llpathfindingnavmesh.h" +#include "llpathfindingnavmeshstatus.h" #include @@ -38,6 +39,8 @@ #include #include +class LLPathfindingNavMeshStatus; + //#define XXX_STINSON_DEBUG_NAVMESH_ZONE class LLPathfindingNavMeshZone @@ -53,9 +56,18 @@ public: kNavMeshZoneRequestError } ENavMeshZoneRequestStatus; + typedef enum { + kNavMeshZonePending, + kNavMeshZoneBuilding, + kNavMeshZoneSomePending, + kNavMeshZoneSomeBuilding, + kNavMeshZonePendingAndBuilding, + kNavMeshZoneComplete + } ENavMeshZoneStatus; + typedef boost::function navmesh_zone_callback_t; typedef boost::signals2::signal navmesh_zone_signal_t; - typedef boost::signals2::connection navmesh_zone_slot_t; + typedef boost::signals2::connection navmesh_zone_slot_t; LLPathfindingNavMeshZone(); virtual ~LLPathfindingNavMeshZone(); @@ -67,6 +79,8 @@ public: void disable(); void refresh(); + ENavMeshZoneStatus getNavMeshZoneStatus() const; + protected: private: @@ -82,6 +96,7 @@ private: void disable(); LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const; + LLPathfindingNavMeshStatus::ENavMeshStatus getNavMeshStatus() const; #ifdef XXX_STINSON_DEBUG_NAVMESH_ZONE const LLUUID &getRegionUUID() const {return mRegionUUID;}; S32 getDirection() const {return mDirection;}; @@ -90,7 +105,7 @@ private: protected: private: - void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLUUID &pRegionUUID, U32 pNavMeshVersion, const LLSD::Binary &pNavMeshData); + void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLPathfindingNavMeshStatus &pNavMeshStatus, const LLSD::Binary &pNavMeshData); void clear(); LLViewerRegion *getRegion() const; @@ -99,6 +114,7 @@ private: LLUUID mRegionUUID; bool mHasNavMesh; U32 mNavMeshVersion; + LLPathfindingNavMeshStatus::ENavMeshStatus mNavMeshStatus; navmesh_location_callback_t mLocationCallback; LLPathfindingNavMesh::ENavMeshRequestStatus mRequestStatus; LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot; @@ -110,8 +126,9 @@ private: void handleNavMeshLocation(); void updateStatus(); - NavMeshLocationPtrs mNavMeshLocationPtrs; - navmesh_zone_signal_t mNavMeshZoneSignal; + NavMeshLocationPtrs mNavMeshLocationPtrs; + ENavMeshZoneRequestStatus mNavMeshZoneRequestStatus; + navmesh_zone_signal_t mNavMeshZoneSignal; }; #endif // LL_LLPATHFINDINGNAVMESHZONE_H -- cgit v1.2.3 From a72034fa42ebaf7e2f56c4a8cb0f445f12d22fe4 Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Tue, 24 Apr 2012 19:23:20 -0700 Subject: PATH-580: BUGFIX Adding functionality to detect when the region's capabilities have not yet been loading and deferring requests for the navmesh query until the capabilities are fully loaded. --- indra/newview/llpathfindingnavmeshzone.h | 270 ++++++++++++++++--------------- 1 file changed, 136 insertions(+), 134 deletions(-) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 7f83e9d37b..8c330559a9 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -1,134 +1,136 @@ -/** - * @file llpathfindingnavmeshzone.h - * @author William Todd Stinson - * @brief A class for representing the zone of navmeshes containing and possible surrounding the current region. - * - * $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_LLPATHFINDINGNAVMESHZONE_H -#define LL_LLPATHFINDINGNAVMESHZONE_H - -#include "llsd.h" -#include "lluuid.h" -#include "llpathfindingnavmesh.h" -#include "llpathfindingnavmeshstatus.h" - -#include - -#include -#include -#include - -class LLPathfindingNavMeshStatus; - -//#define XXX_STINSON_DEBUG_NAVMESH_ZONE - -class LLPathfindingNavMeshZone -{ -public: - typedef enum { - kNavMeshZoneRequestUnknown, - kNavMeshZoneRequestChecking, - kNavMeshZoneRequestNeedsUpdate, - kNavMeshZoneRequestStarted, - kNavMeshZoneRequestCompleted, - kNavMeshZoneRequestNotEnabled, - kNavMeshZoneRequestError - } ENavMeshZoneRequestStatus; - - typedef enum { - kNavMeshZonePending, - kNavMeshZoneBuilding, - kNavMeshZoneSomePending, - kNavMeshZoneSomeBuilding, - kNavMeshZonePendingAndBuilding, - kNavMeshZoneComplete - } ENavMeshZoneStatus; - - typedef boost::function navmesh_zone_callback_t; - typedef boost::signals2::signal navmesh_zone_signal_t; - typedef boost::signals2::connection navmesh_zone_slot_t; - - LLPathfindingNavMeshZone(); - virtual ~LLPathfindingNavMeshZone(); - - navmesh_zone_slot_t registerNavMeshZoneListener(navmesh_zone_callback_t pNavMeshZoneCallback); - void initialize(); - - void enable(); - void disable(); - void refresh(); - - ENavMeshZoneStatus getNavMeshZoneStatus() const; - -protected: - -private: - typedef boost::function navmesh_location_callback_t; - class NavMeshLocation - { - public: - NavMeshLocation(S32 pDirection, navmesh_location_callback_t pLocationCallback); - virtual ~NavMeshLocation(); - - void enable(); - void refresh(); - void disable(); - - LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const; - LLPathfindingNavMeshStatus::ENavMeshStatus getNavMeshStatus() const; -#ifdef XXX_STINSON_DEBUG_NAVMESH_ZONE - const LLUUID &getRegionUUID() const {return mRegionUUID;}; - S32 getDirection() const {return mDirection;}; -#endif // XXX_STINSON_DEBUG_NAVMESH_ZONE - - protected: - - private: - void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLPathfindingNavMeshStatus &pNavMeshStatus, const LLSD::Binary &pNavMeshData); - - void clear(); - LLViewerRegion *getRegion() const; - - S32 mDirection; - LLUUID mRegionUUID; - bool mHasNavMesh; - U32 mNavMeshVersion; - LLPathfindingNavMeshStatus::ENavMeshStatus mNavMeshStatus; - navmesh_location_callback_t mLocationCallback; - LLPathfindingNavMesh::ENavMeshRequestStatus mRequestStatus; - LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot; - }; - - typedef boost::shared_ptr NavMeshLocationPtr; - typedef std::vector NavMeshLocationPtrs; - - void handleNavMeshLocation(); - void updateStatus(); - - NavMeshLocationPtrs mNavMeshLocationPtrs; - ENavMeshZoneRequestStatus mNavMeshZoneRequestStatus; - navmesh_zone_signal_t mNavMeshZoneSignal; -}; - -#endif // LL_LLPATHFINDINGNAVMESHZONE_H +/** + * @file llpathfindingnavmeshzone.h + * @author William Todd Stinson + * @brief A class for representing the zone of navmeshes containing and possible surrounding the current region. + * + * $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_LLPATHFINDINGNAVMESHZONE_H +#define LL_LLPATHFINDINGNAVMESHZONE_H + +#include "llsd.h" +#include "lluuid.h" +#include "llpathfindingnavmesh.h" +#include "llpathfindingnavmeshstatus.h" + +#include + +#include +#include +#include + +class LLPathfindingNavMeshStatus; + +//#define XXX_STINSON_DEBUG_NAVMESH_ZONE + +class LLPathfindingNavMeshZone +{ +public: + typedef enum { + kNavMeshZoneRequestUnknown, + kNavMeshZoneRequestWaiting, + kNavMeshZoneRequestChecking, + kNavMeshZoneRequestNeedsUpdate, + kNavMeshZoneRequestStarted, + kNavMeshZoneRequestCompleted, + kNavMeshZoneRequestNotEnabled, + kNavMeshZoneRequestError + } ENavMeshZoneRequestStatus; + + typedef enum { + kNavMeshZonePending, + kNavMeshZoneBuilding, + kNavMeshZoneSomePending, + kNavMeshZoneSomeBuilding, + kNavMeshZonePendingAndBuilding, + kNavMeshZoneComplete + } ENavMeshZoneStatus; + + typedef boost::function navmesh_zone_callback_t; + typedef boost::signals2::signal navmesh_zone_signal_t; + typedef boost::signals2::connection navmesh_zone_slot_t; + + LLPathfindingNavMeshZone(); + virtual ~LLPathfindingNavMeshZone(); + + navmesh_zone_slot_t registerNavMeshZoneListener(navmesh_zone_callback_t pNavMeshZoneCallback); + void initialize(); + + void enable(); + void disable(); + void refresh(); + + ENavMeshZoneStatus getNavMeshZoneStatus() const; + +protected: + +private: + typedef boost::function navmesh_location_callback_t; + class NavMeshLocation + { + public: + NavMeshLocation(S32 pDirection, navmesh_location_callback_t pLocationCallback); + virtual ~NavMeshLocation(); + + void enable(); + void refresh(); + void disable(); + + LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const; + LLPathfindingNavMeshStatus::ENavMeshStatus getNavMeshStatus() const; +#ifdef XXX_STINSON_DEBUG_NAVMESH_ZONE + const LLUUID &getRegionUUID() const {return mRegionUUID;}; + S32 getDirection() const {return mDirection;}; +#endif // XXX_STINSON_DEBUG_NAVMESH_ZONE + + protected: + + private: + void handleNavMesh(LLPathfindingNavMesh::ENavMeshRequestStatus pNavMeshRequestStatus, const LLPathfindingNavMeshStatus &pNavMeshStatus, const LLSD::Binary &pNavMeshData); + + void clear(); + LLViewerRegion *getRegion() const; + + S32 mDirection; + LLUUID mRegionUUID; + bool mHasNavMesh; + U32 mNavMeshVersion; + LLPathfindingNavMeshStatus::ENavMeshStatus mNavMeshStatus; + navmesh_location_callback_t mLocationCallback; + LLPathfindingNavMesh::ENavMeshRequestStatus mRequestStatus; + LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot; + }; + + typedef boost::shared_ptr NavMeshLocationPtr; + typedef std::vector NavMeshLocationPtrs; + + void handleNavMeshLocation(); + void updateStatus(); + + NavMeshLocationPtrs mNavMeshLocationPtrs; + ENavMeshZoneRequestStatus mNavMeshZoneRequestStatus; + navmesh_zone_signal_t mNavMeshZoneSignal; +}; + +#endif // LL_LLPATHFINDINGNAVMESHZONE_H + -- cgit v1.2.3 From b912c27bf44a45e607adc3b5c94d3fd8a9bbf53e Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Mon, 11 Jun 2012 16:40:53 -0700 Subject: PATH-711: Implementing Leo's changes for the pathfinding console. --- indra/newview/llpathfindingnavmeshzone.h | 1 + 1 file changed, 1 insertion(+) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 8c330559a9..1e92f6b131 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -32,6 +32,7 @@ #include "lluuid.h" #include "llpathfindingnavmesh.h" #include "llpathfindingnavmeshstatus.h" +#include "llviewerregion.h" #include -- cgit v1.2.3 From f6153ab73508ad972827950e0276dfd2a8e79bf1 Mon Sep 17 00:00:00 2001 From: prep Date: Thu, 14 Jun 2012 16:58:11 -0400 Subject: WIP: path-722. Some agent_state_updates come through (god mode), region crossings, cleanup logic is a TBD, etc.. --- indra/newview/llpathfindingnavmeshzone.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 1e92f6b131..679e72c978 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -69,7 +69,7 @@ public: typedef boost::function navmesh_zone_callback_t; typedef boost::signals2::signal navmesh_zone_signal_t; - typedef boost::signals2::connection navmesh_zone_slot_t; + typedef boost::signals2::connection navmesh_zone_slot_t; LLPathfindingNavMeshZone(); virtual ~LLPathfindingNavMeshZone(); -- cgit v1.2.3 From 7cc44fb7fe40706e2017343d76ed226f477dad8d Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Fri, 22 Jun 2012 18:15:56 -0700 Subject: PATH-759: Removing XXX_STINSON_DEBUG_NAVMESH_ZONE ifdefs. --- indra/newview/llpathfindingnavmeshzone.h | 6 ------ 1 file changed, 6 deletions(-) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 679e72c978..d4e7a717b2 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -42,8 +42,6 @@ class LLPathfindingNavMeshStatus; -//#define XXX_STINSON_DEBUG_NAVMESH_ZONE - class LLPathfindingNavMeshZone { public: @@ -99,10 +97,6 @@ private: LLPathfindingNavMesh::ENavMeshRequestStatus getRequestStatus() const; LLPathfindingNavMeshStatus::ENavMeshStatus getNavMeshStatus() const; -#ifdef XXX_STINSON_DEBUG_NAVMESH_ZONE - const LLUUID &getRegionUUID() const {return mRegionUUID;}; - S32 getDirection() const {return mDirection;}; -#endif // XXX_STINSON_DEBUG_NAVMESH_ZONE protected: -- cgit v1.2.3 From 78910cf3016fc55eaf8214640b348df0f8bcdeda Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Tue, 26 Jun 2012 18:04:19 -0700 Subject: Updating the header licensing comments. --- indra/newview/llpathfindingnavmeshzone.h | 54 +++++++++++++++----------------- 1 file changed, 26 insertions(+), 28 deletions(-) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index d4e7a717b2..0229de50ec 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -1,30 +1,29 @@ -/** - * @file llpathfindingnavmeshzone.h - * @author William Todd Stinson - * @brief A class for representing the zone of navmeshes containing and possible surrounding the current region. - * - * $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$ - */ - +/** +* @file llpathfindingnavmeshzone.h +* @brief Header file for llpathfindingnavmeshzone +* @author Stinson@lindenlab.com +* +* $LicenseInfo:firstyear=2012&license=viewerlgpl$ +* Second Life Viewer Source Code +* Copyright (C) 2012, 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_LLPATHFINDINGNAVMESHZONE_H #define LL_LLPATHFINDINGNAVMESHZONE_H @@ -128,4 +127,3 @@ private: }; #endif // LL_LLPATHFINDINGNAVMESHZONE_H - -- cgit v1.2.3 From 685a672b74550ca0dbf8a816257c84c9c44fd34d Mon Sep 17 00:00:00 2001 From: Todd Stinson Date: Thu, 28 Jun 2012 15:37:55 -0700 Subject: Cleaning up new files in preparation for merge into viewer-release. --- indra/newview/llpathfindingnavmeshzone.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'indra/newview/llpathfindingnavmeshzone.h') diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index 0229de50ec..baa1cc5979 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -27,19 +27,18 @@ #ifndef LL_LLPATHFINDINGNAVMESHZONE_H #define LL_LLPATHFINDINGNAVMESHZONE_H -#include "llsd.h" -#include "lluuid.h" -#include "llpathfindingnavmesh.h" -#include "llpathfindingnavmeshstatus.h" -#include "llviewerregion.h" - #include #include #include #include -class LLPathfindingNavMeshStatus; +#include "llpathfindingnavmesh.h" +#include "llpathfindingnavmeshstatus.h" +#include "llsd.h" +#include "lluuid.h" + +class LLViewerRegion; class LLPathfindingNavMeshZone { -- cgit v1.2.3