void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp, void** user_data, U32 i, const EObjectUpdateType update_type, LLDataPacker* dpp, BOOL just_created) { LLMessageSystem* msg = gMessageSystem; // ignore returned flags objectp->processUpdateMessage(msg, user_data, i, update_type, dpp); if (objectp->isDead()) { // The update failed return; } updateActive(objectp); // Also sets the approx. pixel area objectp->setPixelAreaAndAngle(gAgent); // Update the image levels of textures for this object. objectp->updateTextures(gAgent); if (just_created) { gPipeline.addObject(objectp); } else { primbackup::getInstance()->prim_update(objectp); } // RN: this must be called after we have a drawable // (from gPipeline.addObject) // so that the drawable parent is set properly findOrphans(objectp, msg->getSenderIP(), msg->getSenderPort()); // If we're just wandering around, don't create new objects selected. if (just_created && update_type != OUT_TERSE_IMPROVED && objectp->mCreateSelected) { if ( gToolMgr->getCurrentTool() != gToolPie ) { //llinfos << "DEBUG selecting " << objectp->mID << " " // << objectp->mLocalID << llendl; gSelectMgr->selectObjectAndFamily(objectp); dialog_refresh_all(); } objectp->mCreateSelected = false; gViewerWindow->getWindow()->decBusyCount(); gViewerWindow->getWindow()->setCursor( UI_CURSOR_ARROW ); primbackup::getInstance()->newprim(objectp); } }
void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp, void** user_data, U32 i, const EObjectUpdateType update_type, LLDataPacker* dpp, BOOL just_created) { LLMessageSystem* msg = gMessageSystem; // ignore returned flags objectp->processUpdateMessage(msg, user_data, i, update_type, dpp); if (objectp->isDead()) { // The update failed return; } updateActive(objectp); if (just_created) { gPipeline.addObject(objectp); } // Also sets the approx. pixel area objectp->setPixelAreaAndAngle(gAgent); // RN: this must be called after we have a drawable // (from gPipeline.addObject) // so that the drawable parent is set properly findOrphans(objectp, msg->getSenderIP(), msg->getSenderPort()); LLVector3 pScale=objectp->getScale(); if(objectp->permYouOwner()) { if(objectp->permModify() && objectp->permCopy() && objectp->permTransfer()) { if (gImportTracker.getState() != ImportTracker::IDLE && objectp) { if((gImportTracker.getState() == ImportTracker::WAND && just_created && objectp->mCreateSelected) || (pScale.mV[VX] == 0.52345f && pScale.mV[VY] == 0.52346f && pScale.mV[VZ] == 0.52347f && gImportTracker.getState() == ImportTracker::BUILDING)) gImportTracker.get_update(objectp->mLocalID, just_created, objectp->mCreateSelected); } } } // If we're just wandering around, don't create new objects selected. if (just_created && update_type != OUT_TERSE_IMPROVED && objectp->mCreateSelected) { if(JCExportTracker::getInstance()->getStatus() == JCExportTracker::EXPORTING && JCExportTracker::getInstance()->expected_surrogate_pos.count(objectp->getPosition()) > 0) { //the surrogate prim has been created, notify JCExportTracker JCExportTracker::getInstance()->queued_surrogates.push_back(objectp); JCExportTracker::getInstance()->surrogate_roots.push_back(objectp); } else if ( LLToolMgr::getInstance()->getCurrentTool() != LLToolPie::getInstance() ) { //llinfos << "DEBUG selecting " << objectp->mID << " " // << objectp->mLocalID << llendl; LLSelectMgr::getInstance()->selectObjectAndFamily(objectp); dialog_refresh_all(); } objectp->mCreateSelected = false; gViewerWindow->getWindow()->decBusyCount(); gViewerWindow->getWindow()->setCursor( UI_CURSOR_ARROW ); } }
void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp, void** user_data, U32 i, const EObjectUpdateType update_type, LLDataPacker* dpp, BOOL just_created) { LLMessageSystem* msg = gMessageSystem; // ignore returned flags objectp->processUpdateMessage(msg, user_data, i, update_type, dpp); if (objectp->isDead()) { // The update failed return; } updateActive(objectp); if (just_created) { gPipeline.addObject(objectp); } else if( LLXmlImport::sImportInProgress && objectp->permYouOwner() && LLXmlImport::sExpectedUpdate == objectp->getID()) { LLXmlImport::onUpdatePrim(objectp); } // Also sets the approx. pixel area objectp->setPixelAreaAndAngle(gAgent); // RN: this must be called after we have a drawable // (from gPipeline.addObject) // so that the drawable parent is set properly findOrphans(objectp, msg->getSenderIP(), msg->getSenderPort()); // <edit> if (just_created && update_type != OUT_TERSE_IMPROVED && LLXmlImport::sImportInProgress) { LLViewerObject* parent = (LLViewerObject*)objectp->getParent(); if(parent) { if(parent->getID() == gAgent.getID()) { LLXmlImport::onNewAttachment(objectp); } } } //</edit> // If we're just wandering around, don't create new objects selected. if (just_created && update_type != OUT_TERSE_IMPROVED && objectp->mCreateSelected) { if ( LLToolMgr::getInstance()->getCurrentTool() != LLToolPie::getInstance() ) { // llinfos << "DEBUG selecting " << objectp->mID << " " // << objectp->mLocalID << llendl; LLSelectMgr::getInstance()->selectObjectAndFamily(objectp); dialog_refresh_all(); } objectp->mCreateSelected = false; gViewerWindow->getWindow()->decBusyCount(); gViewerWindow->getWindow()->setCursor( UI_CURSOR_ARROW ); // <edit> if(LLXmlImport::sImportInProgress) { if( objectp->permYouOwner() && (objectp->getPCode() == LLXmlImport::sSupplyParams->getPCode()) && (objectp->getScale() == LLXmlImport::sSupplyParams->getScale())) { LLXmlImport::onNewPrim(objectp); } } // </edit> } }