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(AnnotationColors &ac)
26 : root_map(ac.root_map)
30 void AnnotationColors::setColor(Color &c)
32 root_map.defaultColor = c;
35 Color AnnotationColors::color()
37 return root_map.defaultColor;
40 void AnnotationColors::appendTypeColor(const string &type, const Color &c)
42 root_map.cm[type].defaultColor = c;
45 Color AnnotationColors::typeColor(const string &type)
47 return root_map.cm[type].defaultColor;
50 void AnnotationColors::erase(const string &type)
52 root_map.cm.erase(type);
55 void AnnotationColors::appendInstanceColor(const string &type,
56 const string &instance,
59 root_map.cm[type].cm[instance].defaultColor = c;
62 Color AnnotationColors::instanceColor(const string &type,
63 const string &instance)
65 return root_map.cm[type].cm[instance].defaultColor;
68 void AnnotationColors::erase(const string &type,
69 const string& instance)
71 root_map.cm[type].cm.erase(instance);
74 Color AnnotationColors::lookup(const annot &a)
76 return lookup(a.type, a.name);
79 Color AnnotationColors::lookup(const string &type, const string &instance)
81 // Yeah, there's probably a nicer looking recursive solution
83 DefaultColorMap::iterator type_map = root_map.cm.find(type);
84 if (type_map != root_map.cm.end() ) {
85 // found lookup instance
86 DefaultColorMap::iterator instance_map = type_map->second.cm.find(instance);
87 if (instance_map != type_map->second.cm.end() ) {
88 return instance_map->second.defaultColor;
90 return type_map->second.defaultColor;
94 return root_map.defaultColor;