1 #include "annotation_colors.hpp"
5 DefaultColorMap::DefaultColorMap()
6 : defaultColor(Color(0.0, 0.0, 0.0)) // set default color to black
10 DefaultColorMap::DefaultColorMap(const Color &c)
15 DefaultColorMap::DefaultColorMap(const DefaultColorMap &dcm)
16 : defaultColor(dcm.defaultColor),
21 AnnotationColors::AnnotationColors()
25 AnnotationColors::AnnotationColors(const AnnotationColors &ac)
26 : root_map(ac.root_map)
30 void AnnotationColors::clear()
33 root_map.defaultColor = Color(0.0, 0.0, 0.0);
36 void AnnotationColors::setColor(Color &c)
38 root_map.defaultColor = c;
41 Color AnnotationColors::color()
43 return root_map.defaultColor;
46 void AnnotationColors::appendTypeColor(const string &type, const Color &c)
48 root_map.cm[type].defaultColor = c;
51 Color AnnotationColors::typeColor(const string &type)
53 return root_map.cm[type].defaultColor;
56 void AnnotationColors::erase(const string &type)
58 root_map.cm.erase(type);
61 void AnnotationColors::appendInstanceColor(const string &type,
62 const string &instance,
65 root_map.cm[type].cm[instance].defaultColor = c;
68 Color AnnotationColors::instanceColor(const string &type,
69 const string &instance)
71 return root_map.cm[type].cm[instance].defaultColor;
74 void AnnotationColors::erase(const string &type,
75 const string& instance)
77 root_map.cm[type].cm.erase(instance);
80 Color AnnotationColors::lookup(const annot &a) const
82 return lookup(a.type, a.name);
85 Color AnnotationColors::lookup(const string &type, const string &instance) const
87 // Yeah, there's probably a nicer looking recursive solution
89 DefaultColorMap::const_iterator type_map = root_map.cm.find(type);
90 if (type_map != root_map.cm.end() ) {
91 // found lookup instance
92 DefaultColorMap::const_iterator instance_map = type_map->second.cm.find(instance);
93 if (instance_map != type_map->second.cm.end() ) {
94 return instance_map->second.defaultColor;
96 return type_map->second.defaultColor;
100 return root_map.defaultColor;