diff options
Diffstat (limited to 'indra/llinventory/lllandmark.cpp')
-rw-r--r-- | indra/llinventory/lllandmark.cpp | 276 |
1 files changed, 138 insertions, 138 deletions
diff --git a/indra/llinventory/lllandmark.cpp b/indra/llinventory/lllandmark.cpp index bd7ab3c2c8..bfc0a4f511 100644 --- a/indra/llinventory/lllandmark.cpp +++ b/indra/llinventory/lllandmark.cpp @@ -1,25 +1,25 @@ -/** +/** * @file lllandmark.cpp * @brief Landmark asset class * * $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$ */ @@ -37,84 +37,84 @@ LLLandmark::region_map_t LLLandmark::mRegions; LLLandmark::region_callback_map_t LLLandmark::sRegionCallbackMap; LLLandmark::LLLandmark() : - mGlobalPositionKnown(false) + mGlobalPositionKnown(false) { } LLLandmark::LLLandmark(const LLVector3d& pos) : - mGlobalPositionKnown(true), - mGlobalPos( pos ) + mGlobalPositionKnown(true), + mGlobalPos( pos ) { } bool LLLandmark::getGlobalPos(LLVector3d& pos) { - if(mGlobalPositionKnown) - { - pos = mGlobalPos; - } - else if(mRegionID.notNull()) - { - F32 g_x = -1.0; - F32 g_y = -1.0; - if(mRegionID == mLocalRegion.first) - { - from_region_handle(mLocalRegion.second, &g_x, &g_y); - } - else - { - region_map_t::iterator it = mRegions.find(mRegionID); - if(it != mRegions.end()) - { - from_region_handle((*it).second.mRegionHandle, &g_x, &g_y); - } - } - if((g_x > 0.f) && (g_y > 0.f)) - { - pos.mdV[0] = g_x + mRegionPos.mV[0]; - pos.mdV[1] = g_y + mRegionPos.mV[1]; - pos.mdV[2] = mRegionPos.mV[2]; - setGlobalPos(pos); - } - } - return mGlobalPositionKnown; + if(mGlobalPositionKnown) + { + pos = mGlobalPos; + } + else if(mRegionID.notNull()) + { + F32 g_x = -1.0; + F32 g_y = -1.0; + if(mRegionID == mLocalRegion.first) + { + from_region_handle(mLocalRegion.second, &g_x, &g_y); + } + else + { + region_map_t::iterator it = mRegions.find(mRegionID); + if(it != mRegions.end()) + { + from_region_handle((*it).second.mRegionHandle, &g_x, &g_y); + } + } + if((g_x > 0.f) && (g_y > 0.f)) + { + pos.mdV[0] = g_x + mRegionPos.mV[0]; + pos.mdV[1] = g_y + mRegionPos.mV[1]; + pos.mdV[2] = mRegionPos.mV[2]; + setGlobalPos(pos); + } + } + return mGlobalPositionKnown; } void LLLandmark::setGlobalPos(const LLVector3d& pos) { - mGlobalPos = pos; - mGlobalPositionKnown = true; + mGlobalPos = pos; + mGlobalPositionKnown = true; } bool LLLandmark::getRegionID(LLUUID& region_id) { - if(mRegionID.notNull()) - { - region_id = mRegionID; - return true; - } - return false; + if(mRegionID.notNull()) + { + region_id = mRegionID; + return true; + } + return false; } LLVector3 LLLandmark::getRegionPos() const { - return mRegionPos; + return mRegionPos; } // static LLLandmark* LLLandmark::constructFromString(const char *buffer, const S32 buffer_size) { - S32 chars_read = 0; - S32 chars_read_total = 0; - S32 count = 0; - U32 version = 0; + S32 chars_read = 0; + S32 chars_read_total = 0; + S32 count = 0; + U32 version = 0; bool bad_block = false; LLLandmark* result = NULL; - // read version - count = sscanf( buffer, "Landmark version %u\n%n", &version, &chars_read ); + // read version + count = sscanf( buffer, "Landmark version %u\n%n", &version, &chars_read ); chars_read_total += chars_read; if (count != 1 @@ -207,116 +207,116 @@ LLLandmark* LLLandmark::constructFromString(const char *buffer, const S32 buffer // static void LLLandmark::registerCallbacks(LLMessageSystem* msg) { - msg->setHandlerFunc("RegionIDAndHandleReply", &processRegionIDAndHandle); + msg->setHandlerFunc("RegionIDAndHandleReply", &processRegionIDAndHandle); } // static void LLLandmark::requestRegionHandle( - LLMessageSystem* msg, - const LLHost& upstream_host, - const LLUUID& region_id, - region_handle_callback_t callback) + LLMessageSystem* msg, + const LLHost& upstream_host, + const LLUUID& region_id, + region_handle_callback_t callback) { - if(region_id.isNull()) - { - // don't bother with checking - it's 0. - LL_DEBUGS("Landmark") << "requestRegionHandle: null" << LL_ENDL; - if(callback) - { - const U64 U64_ZERO = 0; - callback(region_id, U64_ZERO); - } - } - else - { - if(region_id == mLocalRegion.first) - { - LL_DEBUGS("Landmark") << "requestRegionHandle: local" << LL_ENDL; - if(callback) - { - callback(region_id, mLocalRegion.second); - } - } - else - { - region_map_t::iterator it = mRegions.find(region_id); - if(it == mRegions.end()) - { - LL_DEBUGS("Landmark") << "requestRegionHandle: upstream" << LL_ENDL; - if(callback) - { - region_callback_map_t::value_type vt(region_id, callback); - sRegionCallbackMap.insert(vt); - } - LL_DEBUGS("Landmark") << "Landmark requesting information about: " - << region_id << LL_ENDL; - msg->newMessage("RegionHandleRequest"); - msg->nextBlock("RequestBlock"); - msg->addUUID("RegionID", region_id); - msg->sendReliable(upstream_host); - } - else if(callback) - { - // we have the answer locally - just call the callack. - LL_DEBUGS("Landmark") << "requestRegionHandle: ready" << LL_ENDL; - callback(region_id, (*it).second.mRegionHandle); - } - } - } + if(region_id.isNull()) + { + // don't bother with checking - it's 0. + LL_DEBUGS("Landmark") << "requestRegionHandle: null" << LL_ENDL; + if(callback) + { + const U64 U64_ZERO = 0; + callback(region_id, U64_ZERO); + } + } + else + { + if(region_id == mLocalRegion.first) + { + LL_DEBUGS("Landmark") << "requestRegionHandle: local" << LL_ENDL; + if(callback) + { + callback(region_id, mLocalRegion.second); + } + } + else + { + region_map_t::iterator it = mRegions.find(region_id); + if(it == mRegions.end()) + { + LL_DEBUGS("Landmark") << "requestRegionHandle: upstream" << LL_ENDL; + if(callback) + { + region_callback_map_t::value_type vt(region_id, callback); + sRegionCallbackMap.insert(vt); + } + LL_DEBUGS("Landmark") << "Landmark requesting information about: " + << region_id << LL_ENDL; + msg->newMessage("RegionHandleRequest"); + msg->nextBlock("RequestBlock"); + msg->addUUID("RegionID", region_id); + msg->sendReliable(upstream_host); + } + else if(callback) + { + // we have the answer locally - just call the callack. + LL_DEBUGS("Landmark") << "requestRegionHandle: ready" << LL_ENDL; + callback(region_id, (*it).second.mRegionHandle); + } + } + } - // As good a place as any to expire old entries. - expireOldEntries(); + // As good a place as any to expire old entries. + expireOldEntries(); } // static void LLLandmark::setRegionHandle(const LLUUID& region_id, U64 region_handle) { - mLocalRegion.first = region_id; - mLocalRegion.second = region_handle; + mLocalRegion.first = region_id; + mLocalRegion.second = region_handle; } // static void LLLandmark::processRegionIDAndHandle(LLMessageSystem* msg, void**) { - LLUUID region_id; - msg->getUUID("ReplyBlock", "RegionID", region_id); - mRegions.erase(region_id); - CacheInfo info; - const F32 CACHE_EXPIRY_SECONDS = 60.0f * 10.0f; // ten minutes - info.mTimer.setTimerExpirySec(CACHE_EXPIRY_SECONDS); - msg->getU64("ReplyBlock", "RegionHandle", info.mRegionHandle); - region_map_t::value_type vt(region_id, info); - mRegions.insert(vt); + LLUUID region_id; + msg->getUUID("ReplyBlock", "RegionID", region_id); + mRegions.erase(region_id); + CacheInfo info; + const F32 CACHE_EXPIRY_SECONDS = 60.0f * 10.0f; // ten minutes + info.mTimer.setTimerExpirySec(CACHE_EXPIRY_SECONDS); + msg->getU64("ReplyBlock", "RegionHandle", info.mRegionHandle); + region_map_t::value_type vt(region_id, info); + mRegions.insert(vt); #if LL_DEBUG - U32 grid_x, grid_y; - grid_from_region_handle(info.mRegionHandle, &grid_x, &grid_y); - LL_DEBUGS() << "Landmark got reply for region: " << region_id << " " - << grid_x << "," << grid_y << LL_ENDL; + U32 grid_x, grid_y; + grid_from_region_handle(info.mRegionHandle, &grid_x, &grid_y); + LL_DEBUGS() << "Landmark got reply for region: " << region_id << " " + << grid_x << "," << grid_y << LL_ENDL; #endif - // make all the callbacks here. - region_callback_map_t::iterator it; - while((it = sRegionCallbackMap.find(region_id)) != sRegionCallbackMap.end()) - { - (*it).second(region_id, info.mRegionHandle); - sRegionCallbackMap.erase(it); - } + // make all the callbacks here. + region_callback_map_t::iterator it; + while((it = sRegionCallbackMap.find(region_id)) != sRegionCallbackMap.end()) + { + (*it).second(region_id, info.mRegionHandle); + sRegionCallbackMap.erase(it); + } } // static void LLLandmark::expireOldEntries() { - for(region_map_t::iterator it = mRegions.begin(); it != mRegions.end(); ) - { - if((*it).second.mTimer.hasExpired()) - { - mRegions.erase(it++); - } - else - { - ++it; - } - } + for(region_map_t::iterator it = mRegions.begin(); it != mRegions.end(); ) + { + if((*it).second.mTimer.hasExpired()) + { + mRegions.erase(it++); + } + else + { + ++it; + } + } } |