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); } 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> } }
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 ); } }
struct gbStatusTbl* gbBuildState(struct sqlConnection *conn, struct gbSelect* select, struct dbLoadOptions* options, float maxShrinkage, char* tmpDir, int verboseLevel, boolean extFileUpdate, boolean* maxShrinkageExceeded) /* Load status table and find of state of all genbank entries in the release * compared to the database. */ { struct gbStatusTbl* statusTbl; struct selectStatusData ssData; unsigned selectFlags = (select->type | select->release->srcDb); ZeroVar(&ssData); gOptions = options; *maxShrinkageExceeded = FALSE; gbVerbose = verboseLevel; gErrorCnt = 0; loadNonCoding = dbLoadNonCoding(sqlGetDatabase(conn), select); if (loadNonCoding) gbVerbMsg(1, "NOTE: loading non-coding"); gbVerbEnter(3, "build state table"); gbVerbMsg(4, "reading gbSeq accessions"); ssData.select = select; ssData.seqHash = seqTblLoadAcc(conn, select); gbVerbMsg(4, "reading gbStatus"); statusTbl = gbStatusTblSelectLoad(conn, selectFlags, select->accPrefix, selectStatus, &ssData, tmpDir, extFileUpdate, (gbVerbose >= 4)); findNewEntries(select, statusTbl); /* Don't allow deletes when select criteria has changed */ if ((ssData.orgCatDelCnt > 0) && !(gOptions->flags & DBLOAD_LARGE_DELETES)) errAbort("%u entries deleted due to organism category no longer being selected, specify -allowLargeDeletes to override", ssData.orgCatDelCnt); /* check shrinkage unless override */ if ((gOptions->flags & DBLOAD_LARGE_DELETES) == 0) { if (!checkShrinkage(select, maxShrinkage, statusTbl)) *maxShrinkageExceeded = TRUE; } /* don't do other setup if we are going to stop on maxShrinkageExceeded */ if (!*maxShrinkageExceeded) { gbVerbMsg(4, "checking for orphans"); findOrphans(conn, select, ssData.seqHash, statusTbl); if (((gOptions->flags & DBLOAD_INITIAL) == 0)) { gbVerbMsg(4, "checking for type change"); checkForTypeChange(conn, select, statusTbl); } } #ifdef DUMP_HASH_STATS hashPrintStats(ssData.seqHash, "stateSeq", stderr); #endif hashFree(&ssData.seqHash); gbVerbLeave(3, "build state table"); /* always print stats */ fprintf(stderr, "gbLoadRna: selected %s: delete=%u seqChg=%u metaChg=%u extChg=%u new=%u orphan=%u derived=%u noChg=%u\n", gbSelectDesc(select), statusTbl->numDelete, statusTbl->numSeqChg, statusTbl->numMetaChg, statusTbl->numExtChg, statusTbl->numNew, statusTbl->numOrphan, statusTbl->numRebuildDerived, statusTbl->numNoChg); /* this doesn't include large delete errors */ if (gErrorCnt > 0) errAbort("Errors detecting when constructing state table"); return statusTbl; }