load and display a motif list
[mussa.git] / alg / annotation_colors.cpp
index aab22d1b9b2d85258a36cf7da577922b78c88b92..a84d4591d125c40c0841a7d8216f0f666b0f50e5 100644 (file)
@@ -22,11 +22,17 @@ AnnotationColors::AnnotationColors()
 {
 }
 
-AnnotationColors::AnnotationColors(AnnotationColors &ac)
+AnnotationColors::AnnotationColors(const AnnotationColors &ac)
   : root_map(ac.root_map)
 {
 }
 
+void AnnotationColors::clear()
+{
+  root_map.cm.clear();
+  root_map.defaultColor = Color(0.0, 0.0, 0.0);
+}
+
 void AnnotationColors::setColor(Color &c)
 {
   root_map.defaultColor = c;
@@ -71,19 +77,19 @@ void AnnotationColors::erase(const string &type,
   root_map.cm[type].cm.erase(instance);
 }
 
-Color AnnotationColors::lookup(const annot &a)
+Color AnnotationColors::lookup(const annot &a) const
 {
   return lookup(a.type, a.name);
 }
 
-Color AnnotationColors::lookup(const string &type, const string &instance)
+Color AnnotationColors::lookup(const string &type, const string &instance) const
 {
   // Yeah, there's probably a nicer looking recursive solution
   // to this problem.
-  DefaultColorMap::iterator type_map = root_map.cm.find(type);
+  DefaultColorMap::const_iterator type_map = root_map.cm.find(type);
   if (type_map != root_map.cm.end() ) {
     // found lookup instance
-    DefaultColorMap::iterator instance_map = type_map->second.cm.find(instance);
+    DefaultColorMap::const_iterator instance_map = type_map->second.cm.find(instance);
     if (instance_map != type_map->second.cm.end() ) {
       return instance_map->second.defaultColor;
     } else {