5 #include "IInteriorLabelAnchorCategoryMapper.h"
8 #include "LabelLayer.h"
9 #include "LabelAnchorCategory.h"
10 #include "CallbackCollection.h"
11 #include "IInteriorLabelAnchorCategoryMapperFactory.h"
12 #include "InteriorLabelAnchorCategory.h"
16 #include <unordered_map>
30 typedef std::unordered_map<std::string, std::string> TInteriorLabelNameToTag;
31 typedef std::unordered_multimap<std::string, std::string> TInteriorTagToLabelCategory;
32 typedef std::unordered_map<std::string, InteriorLabelAnchorCategory> TAnchorCategoryMap;
33 typedef std::vector<InteriorLabelAnchorCategory> TAnchorCategoryList;
36 Labels::LabelLayer::IdType labelLayerId,
37 TInteriorLabelNameToTag& interiorLabelNameToTag,
38 TInteriorTagToLabelCategory& interiorTagToLabelCategory,
39 const TAnchorCategoryMap& labelAnchorCategories);
51 std::vector<InteriorLabelAnchorCategory> OrderedCandidatesForTag(
const std::string& tag)
const;
54 const Labels::LabelLayer::IdType m_labelLayerId;
55 const TInteriorLabelNameToTag m_interiorLabelNameToTag;
56 const TInteriorTagToLabelCategory m_interiorTagToLabelCategory;
57 TAnchorCategoryMap m_labelAnchorCategories;
58 TAnchorCategoryList m_orderedCandidatesForDefaultTag;
60 const std::string m_defaultTag;
62 void RegisterLabelAnchorCategories();
63 void UnregisterLabelAnchorCategories();