LLSimInfo* LLWorldMap::simInfoFromHandle(const U64 handle) { sim_info_map_t::const_iterator it = mSimInfoMap.find(handle); if (it != mSimInfoMap.end()) { return it->second; } // <FS:CR> Aurora Sim U32 x = 0, y = 0; from_region_handle(handle, &x, &y); for (it = mSimInfoMap.begin(); it != mSimInfoMap.end(); ++it) { U32 checkRegionX, checkRegionY; from_region_handle((*it).first, &checkRegionX, &checkRegionY); LLSimInfo* info = (*it).second; if (x >= checkRegionX && x < (checkRegionX + info->getSizeX()) && y >= checkRegionY && y < (checkRegionY + info->getSizeY())) { return info; } } // </FS:CR> Aurora Sim return NULL; }
LLViewerRegion* LLWorld::getRegionFromHandle(const U64 &handle) { // <FS:CR> Aurora Sim U32 x, y; from_region_handle(handle, &x, &y); // </FS:CR> Aurora Sim for (region_list_t::iterator iter = mRegionList.begin(); iter != mRegionList.end(); ++iter) { LLViewerRegion* regionp = *iter; // <FS:CR> Aurora Sim //if (regionp->getHandle() == handle) U32 checkRegionX, checkRegionY; F32 checkRegionWidth = regionp->getWidth(); from_region_handle(regionp->getHandle(), &checkRegionX, &checkRegionY); if (x >= checkRegionX && x < (checkRegionX + checkRegionWidth) && y >= checkRegionY && y < (checkRegionY + checkRegionWidth)) // <FS:CR> Aurora Sim { return regionp; } } return NULL; }
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; }
void LLWorldMap::dump() { for (sim_info_map_t::iterator it = mSimInfoMap.begin(); it != mSimInfoMap.end(); ++it) { U64 handle = (*it).first; LLSimInfo* info = (*it).second; U32 x_pos, y_pos; from_region_handle(handle, &x_pos, &y_pos); llinfos << x_pos << "," << y_pos << " " << info->mName << " " << (S32)info->mAccess << " " << std::hex << info->mRegionFlags << std::dec << " " << info->mWaterHeight //<< " " << info->mTelehubName //<< " " << info->mTelehubPosition << llendl; if (info->mCurrentImage) { llinfos << "image discard " << (S32)info->mCurrentImage->getDiscardLevel() << " fullwidth " << info->mCurrentImage->getWidth(0) << " fullheight " << info->mCurrentImage->getHeight(0) << " maxvirt " << info->mCurrentImage->mMaxVirtualSize << " maxdisc " << (S32)info->mCurrentImage->getMaxDiscardLevel() << llendl; } } }
/* static */ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport) { std::string sim_string = LLSLURL::stripProtocol(url); std::string region_name; S32 x = 128; S32 y = 128; S32 z = 0; LLURLSimString::parse(sim_string, ®ion_name, &x, &y, &z); // remap x and y to local coordinates S32 local_x = x % REGION_WIDTH_UNITS; S32 local_y = y % REGION_WIDTH_UNITS; if (local_x < 0) local_x += REGION_WIDTH_UNITS; if (local_y < 0) local_y += REGION_WIDTH_UNITS; LLVector3 local_pos; local_pos.mV[VX] = (F32)local_x; local_pos.mV[VY] = (F32)local_y; local_pos.mV[VZ] = (F32)z; LLVector3d global_pos = from_region_handle(region_handle); global_pos += LLVector3d(local_pos); if (teleport) { gAgent.teleportViaLocation(global_pos); LLFloaterWorldMap* instance = LLFloaterWorldMap::getInstance(); if(instance) { instance->trackLocation(global_pos); } } else { LLSD key; key["type"] = "remote_place"; key["x"] = global_pos.mdV[VX]; key["y"] = global_pos.mdV[VY]; key["z"] = global_pos.mdV[VZ]; LLSideTray::getInstance()->showPanel("panel_places", key); // LLFloaterURLDisplay functionality moved to LLPanelPlaces in Side Tray. // // display informational floater, allow user to click teleport btn // LLFloaterURLDisplay* url_displayp = LLFloaterReg::getTypedInstance<LLFloaterURLDisplay>("preview_url",LLSD()); // if(url_displayp) // { // url_displayp->displayParcelInfo(region_handle, local_pos); // if(snapshot_id.notNull()) // { // url_displayp->setSnapshotDisplay(snapshot_id); // } // std::string locationString = llformat("%s %d, %d, %d", region_name.c_str(), x, y, z); // url_displayp->setLocationString(locationString); // } } }
void LLSurface::initTextures() { /////////////////////// // // Main surface texture // createSTexture(); /////////////////////// // // Water texture // if (gSavedSettings.getBOOL("RenderWater") ) { createWaterTexture(); mWaterObjp = (LLVOWater *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_WATER, mRegionp); gPipeline.createObject(mWaterObjp); LLVector3d water_pos_global = from_region_handle(mRegionp->getHandle()); // <FS:CR> Aurora Sim //water_pos_global += LLVector3d(128.0, 128.0, DEFAULT_WATER_HEIGHT); // region doesn't have a valid water height yet water_pos_global += LLVector3d(mRegionp->getWidth()/2, mRegionp->getWidth()/2, DEFAULT_WATER_HEIGHT); mWaterObjp->setPositionGlobal(water_pos_global); // </FS:CR> Aurora Sim } }
// <edit> void LLPreviewSound::playAmbient( void* userdata ) { LLPreviewSound* self = (LLPreviewSound*) userdata; const LLInventoryItem *item = self->getItem(); if(item && gAudiop) { F32 gain = 0.01f; for(int i = 0; i < 2; i++) { gMessageSystem->newMessageFast(_PREHASH_SoundTrigger); gMessageSystem->nextBlockFast(_PREHASH_SoundData); gMessageSystem->addUUIDFast(_PREHASH_SoundID, LLUUID(item->getAssetUUID())); gMessageSystem->addUUIDFast(_PREHASH_OwnerID, LLUUID::null); gMessageSystem->addUUIDFast(_PREHASH_ObjectID, LLUUID::null); gMessageSystem->addUUIDFast(_PREHASH_ParentID, LLUUID::null); gMessageSystem->addU64Fast(_PREHASH_Handle, gAgent.getRegion()->getHandle()); LLVector3d pos = -from_region_handle(gAgent.getRegion()->getHandle()); gMessageSystem->addVector3Fast(_PREHASH_Position, (LLVector3)pos); gMessageSystem->addF32Fast(_PREHASH_Gain, gain); gMessageSystem->sendReliable(gAgent.getRegionHost()); gain = 1.0f; } } }
//static added one block for openregion ----- voodoo void LLSurface::rebuildWater() { //lldebugs << "Rebuilding Water..."; //BOOL renderwater = gSavedSettings.getBOOL("RenderWater") && LLWorld::getInstance()->getAllowRenderWater(); if(!mWaterObjp.isNull()) //if(prev_renderwater && !renderwater) { //lldebugs << "Removing Water"; //Remove the old gObjectList.killObject(mWaterObjp); } if (gSavedSettings.getBOOL("RenderWater") && gHippoLimits->mRenderWater) //if (!prev_renderwater && renderwater) { //lldebugs << "Building Water"; createWaterTexture(); mWaterObjp = (LLVOWater *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_WATER, mRegionp); gPipeline.createObject(mWaterObjp); LLVector3d water_pos_global = from_region_handle(mRegionp->getHandle()); water_pos_global += LLVector3d(128.0, 128.0, DEFAULT_WATER_HEIGHT); //water_pos_global += LLVector3d(mRegionp->getWidth()/2, mRegionp->getWidth()/2, DEFAULT_WATER_HEIGHT); mWaterObjp->setPositionGlobal(water_pos_global); } //lldebugs << "Rebuilding Water Complete"; }
LLVector3d LLSimInfo::getGlobalPos(const LLVector3& local_pos) const { LLVector3d pos = from_region_handle(mHandle); pos.mdV[VX] += local_pos.mV[VX]; pos.mdV[VY] += local_pos.mV[VY]; pos.mdV[VZ] += local_pos.mV[VZ]; return pos; }
void LLViewerRegion::getInfo(LLSD& info) { info["Region"]["Host"] = getHost().getIPandPort(); info["Region"]["Name"] = getName(); U32 x, y; from_region_handle(getHandle(), &x, &y); info["Region"]["Handle"]["x"] = (LLSD::Integer)x; info["Region"]["Handle"]["y"] = (LLSD::Integer)y; }
static void region_track_callback(const U64& region_handle) { if(region_handle != 0) { LLVector3d pos_global = from_region_handle(region_handle); pos_global += LLVector3d(128.0f, 128.0f, 0.0f); gFloaterWorldMap->trackLocation(pos_global); LLFloaterWorldMap::show(NULL, TRUE); } }
void LLWorld::removeRegion(const LLHost &host) { F32 x, y; LLViewerRegion *regionp = getRegion(host); if (!regionp) { llwarns << "Trying to remove region that doesn't exist!" << llendl; return; } if (regionp == gAgent.getRegion()) { for (region_list_t::iterator iter = mRegionList.begin(); iter != mRegionList.end(); ++iter) { LLViewerRegion* reg = *iter; llwarns << "RegionDump: " << reg->getName() << " " << reg->getHost() << " " << reg->getOriginGlobal() << llendl; } llwarns << "Agent position global " << gAgent.getPositionGlobal() << " agent " << gAgent.getPositionAgent() << llendl; llwarns << "Regions visited " << gAgent.getRegionsVisited() << llendl; llwarns << "gFrameTimeSeconds " << gFrameTimeSeconds << llendl; llwarns << "Disabling region " << regionp->getName() << " that agent is in!" << llendl; LLAppViewer::instance()->forceDisconnect(LLTrans::getString("YouHaveBeenDisconnected")); regionp->saveObjectCache() ; //force to save objects here in case that the object cache is about to be destroyed. return; } from_region_handle(regionp->getHandle(), &x, &y); llinfos << "Removing region " << x << ":" << y << llendl; mRegionList.remove(regionp); mActiveRegionList.remove(regionp); mCulledRegionList.remove(regionp); mVisibleRegionList.remove(regionp); mRegionRemovedSignal(regionp); //double check all objects of this region are removed. gObjectList.clearAllMapObjectsInRegion(regionp) ; //llassert_always(!gObjectList.hasMapObjectInRegion(regionp)) ; updateWaterObjects(); delete regionp; }
void LLFloaterObjectIMInfo::regionhandle(const U64& region_handle) { mRegionHandle = region_handle; if(LLWorldMap::getInstance()->simNameFromPosGlobal(from_region_handle(region_handle), mRegionName)) { lookingforRegion = FALSE; mSlurl = mRegionName + mPosPart; childSetVisible("Unknown_Slurl",false); childSetVisible("Slurl",true); childSetText("Slurl",mSlurl); } else { U32 global_x; U32 global_y; from_region_handle(region_handle, &global_x, &global_y); U16 grid_x = (U16)(global_x / REGION_WIDTH_UNITS); U16 grid_y = (U16)(global_y / REGION_WIDTH_UNITS); lookingforRegion = TRUE; llinfos << "region name for (" << grid_x << ", " << grid_y << ") not cached, requesting" << llendl; LLWorldMap::getInstance()->sendMapBlockRequest(grid_x, grid_y, grid_x, grid_y, true); } }
/* static */ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const LLSLURL& slurl, const LLUUID& snapshot_id, bool teleport) { // we can't teleport cross grid at this point HippoGridInfo* new_grid = gHippoGridManager->getGrid(slurl.getGrid()); if( new_grid != gHippoGridManager->getCurrentGrid()) { LLSD args; args["SLURL"] = slurl.getLocationString(); args["CURRENT_GRID"] = gHippoGridManager->getCurrentGrid()->getGridName(); std::string grid_label = new_grid ? new_grid->getGridName() : ""; if(!grid_label.empty()) { args["GRID"] = grid_label; } else { args["GRID"] = slurl.getGrid() + " (Unrecognized)"; } LLNotificationsUtil::add("CantTeleportToGrid", args); return; } LLVector3d global_pos = from_region_handle(region_handle); LLVector3 local_pos = slurl.getPosition(); global_pos += LLVector3d(local_pos); if (teleport) { gAgent.teleportViaLocation(global_pos); if(gFloaterWorldMap) { gFloaterWorldMap->trackLocation(global_pos); } } else { // display informational floater, allow user to click teleport btn LLFloaterURLDisplay* url_displayp = LLFloaterURLDisplay::getInstance(LLSD()); url_displayp->displayParcelInfo(region_handle, local_pos); if(snapshot_id.notNull()) { url_displayp->setSnapshotDisplay(snapshot_id); } std::string locationString = llformat("%s %i, %i, %i", slurl.getRegion().c_str(), (S32)local_pos.mV[VX],(S32)local_pos.mV[VY],(S32)local_pos.mV[VZ]); url_displayp->setLocationString(locationString); } }
void LLSimInfo::dump() const { U32 x_pos, y_pos; from_region_handle(mHandle, &x_pos, &y_pos); LL_INFOS("World Map") << x_pos << "," << y_pos << " " << mName << " " << (S32)mAccess << " " << std::hex << mRegionFlags << std::dec // << " " << mWaterHeight << LL_ENDL; }
void LLFloaterObjectIMInfo::draw() { if(lookingforRegion) { if(LLWorldMap::getInstance()->simNameFromPosGlobal(from_region_handle(mRegionHandle), mRegionName)) { lookingforRegion = FALSE; mSlurl = mRegionName + mPosPart; childSetVisible("Unknown_Slurl",false); childSetVisible("Slurl",true); childSetText("Slurl",mSlurl); } } LLFloater::draw(); }
void LLFloaterURLDisplay::displayParcelInfo(U64 region_handle, const LLVector3& pos_local) { mRegionHandle = region_handle; mRegionPosition = pos_local; LLVector3d pos_global = from_region_handle(region_handle); pos_global += (LLVector3d)pos_local; LLUUID region_id; // don't know this LLUUID landmark_asset_id; // don't know this either mPlacePanel->displayParcelInfo(pos_local, landmark_asset_id, region_id, pos_global); this->setVisible(true); this->setFrontmost(true); }
LLViewerRegion::LLViewerRegion( U64 regionHandle , const LLHost &host , const U32 surface_grid_width , const U32 patch_grid_width , const F32 region_width_meters ) : m_regionHandle(regionHandle) , m_host(host) , mWidth(region_width_meters) { mOriginGlobal = from_region_handle(regionHandle); initStats(); }
void LLWorld::removeRegion(const LLHost &host) { F32 x, y; LLViewerRegion *regionp = getRegion(host); if (!regionp) { llwarns << "Trying to remove region that doesn't exist!" << llendl; return; } if (regionp == gAgent.getRegion()) { for (region_list_t::iterator iter = mRegionList.begin(); iter != mRegionList.end(); ++iter) { LLViewerRegion* reg = *iter; llwarns << "RegionDump: " << reg->getName() << " " << reg->getHost() << " " << reg->getOriginGlobal() << llendl; } llwarns << "Agent position global " << gAgent.getPositionGlobal() << " agent " << gAgent.getPositionAgent() << llendl; llwarns << "Regions visited " << gAgent.getRegionsVisited() << llendl; llwarns << "gFrameTimeSeconds " << gFrameTimeSeconds << llendl; llwarns << "Disabling region " << regionp->getName() << " that agent is in!" << llendl; LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in."); return; } from_region_handle(regionp->getHandle(), &x, &y); llinfos << "Removing region " << x << ":" << y << llendl; mRegionList.remove(regionp); mActiveRegionList.remove(regionp); mCulledRegionList.remove(regionp); mVisibleRegionList.remove(regionp); delete regionp; updateWaterObjects(); }
/* static */ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport) { std::string sim_string = stripProtocol(url); std::string region_name; S32 x = 128; S32 y = 128; S32 z = 0; LLURLSimString::parse(sim_string, ®ion_name, &x, &y, &z); // remap x and y to local coordinates S32 local_x = x % REGION_WIDTH_UNITS; S32 local_y = y % REGION_WIDTH_UNITS; if (local_x < 0) local_x += REGION_WIDTH_UNITS; if (local_y < 0) local_y += REGION_WIDTH_UNITS; LLVector3 local_pos; local_pos.mV[VX] = (F32)local_x; local_pos.mV[VY] = (F32)local_y; local_pos.mV[VZ] = (F32)z; if (teleport) { LLVector3d global_pos = from_region_handle(region_handle); global_pos += LLVector3d(local_pos); gAgent.teleportViaLocation(global_pos); if(gFloaterWorldMap) { gFloaterWorldMap->trackLocation(global_pos); } } else { // display informational floater, allow user to click teleport btn LLFloaterURLDisplay* url_displayp = LLFloaterURLDisplay::getInstance(LLSD()); url_displayp->displayParcelInfo(region_handle, local_pos); if(snapshot_id.notNull()) { url_displayp->setSnapshotDisplay(snapshot_id); } std::string locationString = llformat("%s %d, %d, %d", region_name.c_str(), x, y, z); url_displayp->setLocationString(locationString); } }
void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global) { LLSimInfo* sim_info = LLWorldMap::getInstance()->simInfoFromPosGlobal(pos_global); if (!sim_info) { LLWorldMap::getInstance()->mIsTrackingUnknownLocation = TRUE; LLWorldMap::getInstance()->mInvalidLocation = FALSE; LLWorldMap::getInstance()->mUnknownLocation = pos_global; LLTracker::stopTracking(NULL); S32 world_x = S32(pos_global.mdV[0] / 256); S32 world_y = S32(pos_global.mdV[1] / 256); LLWorldMap::getInstance()->sendMapBlockRequest(world_x, world_y, world_x, world_y, true); setDefaultBtn(""); return; } if (sim_info->isDown()) { // Down sim. Show the blue circle of death! LLWorldMap::getInstance()->mIsTrackingUnknownLocation = TRUE; LLWorldMap::getInstance()->mUnknownLocation = pos_global; LLWorldMap::getInstance()->mInvalidLocation = TRUE; LLTracker::stopTracking(NULL); setDefaultBtn(""); return; } std::string sim_name = sim_info->getName(); U32 locX, locY; from_region_handle(sim_info->getHandle(), &locX, &locY); F32 region_x = pos_global.mdV[VX] - locX; F32 region_y = pos_global.mdV[VY] - locY; std::string full_name = llformat("%s (%d, %d, %d)", // sim_name.c_str(), // [RLVa:KB] - Alternate: Snowglobe-1.2.4 | Checked: 2009-07-04 (RLVa-1.0.0a) (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ? sim_name.c_str() : RlvStrings::getString(RLV_STRING_HIDDEN_REGION).c_str(), // [/RLVa:KB] llround(region_x), llround(region_y), llround((F32)pos_global.mdV[VZ])); std::string tooltip(""); mTrackedStatus = LLTracker::TRACKING_LOCATION; LLTracker::trackLocation(pos_global, full_name, tooltip); LLWorldMap::getInstance()->mIsTrackingUnknownLocation = FALSE; LLWorldMap::getInstance()->mIsTrackingDoubleClick = FALSE; LLWorldMap::getInstance()->mIsTrackingCommit = FALSE; setDefaultBtn("Teleport"); }
LLSimInfo* LLWorldMap::simInfoFromHandle(const U64 findhandle) { std::map<U64, LLSimInfo*>::const_iterator it; for (it = LLWorldMap::getInstance()->mSimInfoMap.begin(); it != LLWorldMap::getInstance()->mSimInfoMap.end(); ++it) { const U64 handle = (*it).first; LLSimInfo* info = (*it).second; if(handle == findhandle) { return info; } U32 x = 0, y = 0; from_region_handle(findhandle, &x, &y); U32 checkRegionX, checkRegionY; from_region_handle(handle, &checkRegionX, &checkRegionY); if(x > checkRegionX && x < (checkRegionX + info->msizeX) && y > checkRegionY && y < (checkRegionY + info->msizeY)) { return info; } } return NULL; }
/* static */ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const LLSLURL& slurl, const LLUUID& snapshot_id, bool teleport) { // we can't teleport cross grid at this point if((!LLGridManager::getInstance()->isSystemGrid(slurl.getGrid()) || !LLGridManager::getInstance()->isSystemGrid()) && (slurl.getGrid() != LLGridManager::getInstance()->getGrid())) { LLSD args; args["SLURL"] = slurl.getLocationString(); args["CURRENT_GRID"] = LLGridManager::getInstance()->getGridLabel(); LLSD grid_info; LLGridManager::getInstance()->getGridInfo(slurl.getGrid(), grid_info); if(grid_info.has(GRID_LABEL_VALUE)) { args["GRID"] = grid_info[GRID_LABEL_VALUE].asString(); } else { args["GRID"] = slurl.getGrid(); } LLNotificationsUtil::add("CantTeleportToGrid", args); return; } LLVector3d global_pos = from_region_handle(region_handle); global_pos += LLVector3d(slurl.getPosition()); if (teleport) { gAgent.teleportViaLocation(global_pos); LLFloaterWorldMap* instance = LLFloaterWorldMap::getInstance(); if(instance) { instance->trackLocation(global_pos); } } else { LLSD key; key["type"] = "remote_place"; key["x"] = global_pos.mdV[VX]; key["y"] = global_pos.mdV[VY]; key["z"] = global_pos.mdV[VZ]; LLFloaterSidePanelContainer::showPanel("places", key); } }
void LLWorldMap::sendHandleRegionRequest(U64 region_handle, url_callback_t callback, const std::string& callback_url, bool teleport) // immediately teleport when result returned { mSLURLRegionName.clear(); mSLURLRegionHandle = region_handle; mSLURL = callback_url; mSLURLCallback = callback; mSLURLTeleport = teleport; U32 global_x; U32 global_y; from_region_handle(region_handle, &global_x, &global_y); U16 grid_x = (U16)(global_x / REGION_WIDTH_UNITS); U16 grid_y = (U16)(global_y / REGION_WIDTH_UNITS); sendMapBlockRequest(grid_x, grid_y, grid_x, grid_y, true); }
/* static */ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const LLSLURL& slurl, const LLUUID& snapshot_id, bool teleport) { // <FS:AW optional opensim support> #ifndef HAS_OPENSIM_SUPPORT // we can't teleport cross grid at this point if( LLGridManager::getInstance()->getGrid(slurl.getGrid()) != LLGridManager::getInstance()->getGrid()) { LLSD args; args["SLURL"] = slurl.getLocationString(); args["CURRENT_GRID"] = LLGridManager::getInstance()->getGridLabel(); args["GRID"] = LLGridManager::getInstance()->getGridLabel(slurl.getGrid()); LLNotificationsUtil::add("CantTeleportToGrid", args); return; } #endif // HAS_OPENSIM_SUPPORT // </FS:AW optional opensim support> LLVector3d global_pos = from_region_handle(region_handle); global_pos += LLVector3d(slurl.getPosition()); if (teleport) { gAgent.teleportViaLocation(global_pos); LLFloaterWorldMap* instance = LLFloaterWorldMap::getInstance(); if(instance) { instance->trackLocation(global_pos); } } else { LLSD key; key["type"] = "remote_place"; key["x"] = global_pos.mdV[VX]; key["y"] = global_pos.mdV[VY]; key["z"] = global_pos.mdV[VZ]; LLFloaterSidePanelContainer::showPanel("places", key); } }
void LLSurface::rebuildWater() { BOOL renderwater = gSavedSettings.getBOOL("RenderWater") && LLWorld::getInstance()->getAllowRenderWater(); BOOL prev_renderwater = !mWaterObjp.isNull(); if(prev_renderwater && !renderwater) { gObjectList.killObject(mWaterObjp); } if (!prev_renderwater && renderwater) { createWaterTexture(); mWaterObjp = (LLVOWater *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_WATER, mRegionp); gPipeline.createObject(mWaterObjp); LLVector3d water_pos_global = from_region_handle(mRegionp->getHandle()); water_pos_global += LLVector3d(mRegionp->getWidth()/2, mRegionp->getWidth()/2, DEFAULT_WATER_HEIGHT); mWaterObjp->setPositionGlobal(water_pos_global); } }
void LLNavigationBar::onRegionNameResponse( std::string typed_location, std::string region_name, LLVector3 local_coords, U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport) { // Invalid location? if (!region_handle) { invokeSearch(typed_location); return; } // Teleport to the location. LLVector3d region_pos = from_region_handle(region_handle); LLVector3d global_pos = region_pos + (LLVector3d) local_coords; llinfos << "Teleporting to: " << LLSLURL::buildSLURLfromPosGlobal(region_name, global_pos, false) << llendl; gAgent.teleportViaLocation(global_pos); }
// static void LLFloaterWorldMap::onCommitSearchResult(LLUICtrl*, void* userdata) { LLFloaterWorldMap* self = (LLFloaterWorldMap*) userdata; LLCtrlListInterface *list = self->childGetListInterface("search_results"); if (!list) return; LLSD selected_value = list->getSelectedValue(); std::string sim_name = selected_value.asString(); if (sim_name.empty()) { return; } LLStringUtil::toLower(sim_name); std::map<U64, LLSimInfo*>::const_iterator it; for (it = LLWorldMap::getInstance()->mSimInfoMap.begin(); it != LLWorldMap::getInstance()->mSimInfoMap.end(); ++it) { LLSimInfo* info = (*it).second; std::string info_sim_name = info->mName; LLStringUtil::toLower(info_sim_name); if (sim_name == info_sim_name) { LLVector3d pos_global = from_region_handle( info->mHandle ); F64 local_x = self->childGetValue("spin x"); F64 local_y = self->childGetValue("spin y"); F64 local_z = self->childGetValue("spin z"); pos_global.mdV[VX] += local_x; pos_global.mdV[VY] += local_y; pos_global.mdV[VZ] = local_z; self->childSetValue("location", sim_name); self->trackLocation(pos_global); self->setDefaultBtn("Teleport"); break; } } onShowTargetBtn(self); }
void LLNavigationBar::onRegionNameResponse( std::string typed_location, std::string region_name, LLVector3 local_coords, U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport) { // Invalid location? if (region_handle) { // Teleport to the location. LLVector3d region_pos = from_region_handle(region_handle); LLVector3d global_pos = region_pos + (LLVector3d) local_coords; llinfos << "Teleporting to: " << LLSLURL(region_name, global_pos).getSLURLString() << llendl; gAgent.teleportViaLocation(global_pos); } else if (gSavedSettings.getBOOL("SearchFromAddressBar")) { invokeSearch(typed_location); } }
void LLSurface::initTextures() { /////////////////////// // // Main surface texture // createSTexture(); /////////////////////// // // Water texture // if (gSavedSettings.getBOOL("RenderWater") && LLWorld::getInstance()->getAllowRenderWater()) { createWaterTexture(); mWaterObjp = (LLVOWater *)gObjectList.createObjectViewer(LLViewerObject::LL_VO_WATER, mRegionp); gPipeline.createObject(mWaterObjp); LLVector3d water_pos_global = from_region_handle(mRegionp->getHandle()); water_pos_global += LLVector3d(mRegionp->getWidth()/2, mRegionp->getWidth()/2, DEFAULT_WATER_HEIGHT); mWaterObjp->setPositionGlobal(water_pos_global); } }