Example #1
0
//! compare two labels and fill in missing labels
void ShadeShapeMatch::fillMissingLabels(Labels &upLabels, Labels &dbLabels) {
	map<String,pair<int,float> > &upMap = upLabels.getMap();
	map<String,pair<int,float> > &dbMap = dbLabels.getMap();
	map<String,int> &upShadeLevelMap = upLabels.getShadeLevelMap();
	map<String,int> &dbShadeLevelMap = dbLabels.getShadeLevelMap();
	map<String,int> &upShapeNumMap = upLabels.getShapeMap();
	map<String,int> &dbShapeNumMap = dbLabels.getShapeMap();
	for(auto it=upMap.begin(); it!=upMap.end(); it++) {
		String label = it->first;
		if(dbMap.find(label)==dbMap.end()) {
			dbMap[label] = std::make_pair(0,0.0);
			dbShadeLevelMap[label] = upLabels.getShadeLevel(label);
			dbShapeNumMap[label] = upLabels.getShapeNum(label);
		}
	}
	for(auto it=dbMap.begin(); it!=dbMap.end(); it++) {
		String label = it->first;
		if(upMap.find(label)==upMap.end()) {
			upMap[label] = std::make_pair(0,0.0);
			upShadeLevelMap[label] = dbLabels.getShadeLevel(label);
			upShapeNumMap[label] = dbLabels.getShapeNum(label);
		}
	}
}