Ejemplo n.º 1
0
void FlatView::setCloud(boost::shared_ptr<PointCloud> new_pc) {
    if(new_pc == pc_.lock())
        return;

    if(!pc_.expired()){
        boost::shared_ptr<PointCloud> old_pc = pc_.lock();
        disconnect(old_pc.get(), SIGNAL(flagUpdate()), this,
                   SLOT(update()));
        disconnect(old_pc.get(), SIGNAL(labelUpdate()), this,
                   SLOT(update()));
    }

    pc_ = new_pc;

    // Late event cause deletion possible? Seems to help?
    if(pc_.expired())
        return;

    boost::shared_ptr<PointCloud> pc = pc_.lock();
    cloud_idx_lookup_.resize(pc->scan_width()*pc->scan_height(), -1);
    for(uint idx = 0 ; idx < pc->cloudToGridMap().size(); idx++){
        QPoint p = cloudToImageCoord(idx);
        cloud_idx_lookup_[p.x() + p.y()*pc->scan_width()] = idx;
    }

    connect(pc.get(), SIGNAL(flagUpdate()), this, SLOT(update()));
    connect(pc.get(), SIGNAL(labelUpdate()), this, SLOT(update()));


    if(gl_init_)
        resizeGL(width(), height());
    if(this->isVisible())
        update();
}
Ejemplo n.º 2
0
static void markNew(struct gbStatusTbl* statusTbl,
                    struct gbStatus* status,
                    struct gbProcessed* processed,
                    struct gbAligned* aligned)
/* mark an entry as new */
{
slAddHead(&statusTbl->newList, status);
statusTbl->numNew++;
status->entry = processed->entry;
status->selectProc = processed;
status->selectAlign = aligned;
status->stateChg = GB_NEW;
status->seqRelease = gbStatusTblGetStr(statusTbl,
                                       aligned->update->release->version);
status->seqUpdate = gbStatusTblGetStr(statusTbl,
                                      aligned->update->shortName);
status->metaRelease = status->seqRelease;
status->metaUpdate = status->seqUpdate;
status->extRelease = status->seqRelease;
status->extUpdate = status->seqUpdate;

flagUpdate(processed, aligned, TRUE);
if (gbVerbose >= 5)
    traceSelect("new", status);
}
Ejemplo n.º 3
0
static void markMetaChanged(struct gbSelect* select,
                            struct gbStatusTbl* statusTbl,
                            struct gbStatus* tmpStatus,
                            struct gbProcessed* processed,
                            struct gbAligned* aligned)
/* mark an entry as metaChanged */
{
struct gbStatus* status = gbStatusStore(statusTbl, tmpStatus);

slAddHead(&statusTbl->metaChgList, status);
statusTbl->numMetaChg++;
status->entry = processed->entry;
status->selectProc = processed;
status->stateChg = GB_META_CHG;
status->metaRelease = gbStatusTblGetStr(statusTbl,
                                        aligned->update->release->version);
status->metaUpdate = gbStatusTblGetStr(statusTbl,
                                       aligned->update->shortName);
if (!sameString(status->extRelease, select->release->version))
    {
    /* ext seq also changed */
    status->stateChg |= GB_EXT_CHG;
    status->extRelease = status->metaRelease;
    status->extUpdate = status->metaUpdate;
    }

flagUpdate(processed, aligned, FALSE);
if (gbVerbose >= 5)
    traceSelect("metaChg", status);
}
Ejemplo n.º 4
0
static void markSeqChanged(struct gbStatusTbl* statusTbl,
                           struct gbStatus* tmpStatus,
                           struct gbProcessed* processed,
                           struct gbAligned* aligned)
/* mark an entry as seqChanged; called if version or number of alignments
* changes */
{
struct gbStatus* status = gbStatusStore(statusTbl, tmpStatus);

slAddHead(&statusTbl->seqChgList, status);
statusTbl->numSeqChg++;
status->entry = aligned->entry;
status->selectProc = processed;
status->selectAlign = aligned;
status->stateChg = (GB_SEQ_CHG|GB_META_CHG|GB_EXT_CHG);
status->seqRelease = gbStatusTblGetStr(statusTbl,
                                       aligned->update->release->version);
status->seqUpdate = gbStatusTblGetStr(statusTbl,
                                      aligned->update->shortName);
status->metaRelease = status->seqRelease;
status->metaUpdate = status->seqUpdate;
status->extRelease = status->seqRelease;
status->extUpdate = status->seqUpdate;

flagUpdate(processed, aligned, TRUE);
if (gbVerbose >= 5)
    traceSelect("seqChg", status);
}
Ejemplo n.º 5
0
static void markRebuildDerived(struct gbStatusTbl* statusTbl,
                               struct gbStatus* tmpStatus,
                               struct gbProcessed* processed,
                               struct gbAligned* aligned)
/* mark an entry as rebuilDerived, which is a subset of metaChg */
{
struct gbStatus* status = gbStatusStore(statusTbl, tmpStatus);

slAddHead(&statusTbl->metaChgList, status);  // metaChgList is correct
statusTbl->numRebuildDerived++;
status->entry = processed->entry;
status->selectProc = processed;
status->stateChg = GB_REBUILD_DERIVED;
status->metaRelease = gbStatusTblGetStr(statusTbl,
                                        aligned->update->release->version);
status->metaUpdate = gbStatusTblGetStr(statusTbl,
                                       aligned->update->shortName);
flagUpdate(processed, aligned, FALSE);
if (gbVerbose >= 5)
    traceSelect("rebuildDerived", status);
}
Ejemplo n.º 6
0
static void markExtChanged(struct gbStatusTbl* statusTbl,
                           struct gbStatus* tmpStatus,
                           struct gbProcessed* processed,
                           struct gbAligned* aligned)
/* mark an entry as extChanged */
{
struct gbStatus* status = gbStatusStore(statusTbl, tmpStatus);

slAddHead(&statusTbl->extChgList, status);
statusTbl->numExtChg++;
status->entry = processed->entry;
status->selectProc = processed;
status->stateChg = GB_EXT_CHG;
status->extRelease = gbStatusTblGetStr(statusTbl,
                                       aligned->update->release->version);
status->extUpdate = gbStatusTblGetStr(statusTbl,
                                       aligned->update->shortName);

/* flag update as needing processing */
flagUpdate(processed, aligned, FALSE);
if (gbVerbose >= 5)
    traceSelect("extChg", status);
}