class SpatialModelCell: {
public:
SpatialModelCell(std::vector<lsst::afw::image::Footprint::PtrType> fpList,
std::vector<modelQA> modelList);
virtual ~SpatialModelCell() {};
void orderFootprints(); /* based upon brightness/proximity */
void orderModels(); /* based upon modelQA quality metric */
void fixEntry(); /* call orderModels(), set _isFixed = True */
lsst::detection::Footprint::PtrType getCurrentFootprint();
modelQA getCurrentModel();
void setCurrentEntry(int id); /* choose a particular entry */
void incrementCurrentEntry(); /* go to the next one in the list */
private:
/* position of the grid point */
int _colC;
int _rowC;
/* synchronized lists of footprints and models */
/* should this be a whole another class ? */
std::vector<lsst::detection::Footprint::PtrType> _fpList;
std::vector<modelQA> _modelList;
/* number of entries; len(_fpList) */
int _nEntries;
/* which entry we are using; 0 <= _entryID < _nEntries */
int _entryID;
/* we are using _entryID no matter what */
bool _isFixed = False;
};
/* This class should be associated with each object you are building your
model around. I currently have something called (badly)
DifferenceImageFootprintInformation for image subtraction; this class
coulld/should be merged with or derived from a QA class and used here */
class ModelQA: {
public:
double (?) returnQAMetric();
private:
}