class ring::AffiliationUpdater

Overview

Exact incremental affiliation across frames. More…

#include <cage_affiliation.hpp>
 
class AffiliationUpdater {
public:
    // construction
 
    AffiliationUpdater();
    AffiliationUpdater(AffiliationUpdater&&);
    AffiliationUpdater(const AffiliationUpdater&);
    ~AffiliationUpdater();
 
    // methods
 
    AffiliationUpdater& operator=(AffiliationUpdater&&);
    AffiliationUpdater& operator=(const AffiliationUpdater&);
    const CageAffiliation& update(const std::vector<std::vector<int>>& rings, const std::vector<std::vector<int>>& nList);
    int lastReclassified() const;
};

Detailed Documentation

Exact incremental affiliation across frames.

Diffs the six-ring set (by canonical ring key) and the neighbour rows against the previous frame, recomputes affiliation inside the locality closure of the changes, and carries stored answers elsewhere. The result is identical to cageAffiliation on the new frame. The neighbour graph should come from SkinNeighborList (default: mutual four-nearest, the TUM v2 graph).

Methods

const CageAffiliation& update(const std::vector<std::vector<int>>& rings, const std::vector<std::vector<int>>& nList)

Classify the frame, reusing the previous frame’s answers outside the locality closure of what changed.

The reference stays valid until the next update call.

int lastReclassified() const

Rings reclassified by the last update (the dirty closure); the first call reports every ring.