1 #include <msp/core/algorithm.h>
9 Effect::Effect(Renderable &c):
12 enable_for_method(Tag());
15 void Effect::enable_for_method(Tag tag)
17 auto i = lower_bound(enabled_methods, tag);
18 if(i==enabled_methods.end() || *i!=tag)
19 enabled_methods.insert(i, tag);
22 void Effect::disable_for_method(Tag tag)
24 auto i = lower_bound(enabled_methods, tag);
25 if(i!=enabled_methods.end() && *i==tag)
26 enabled_methods.erase(i);
29 bool Effect::is_enabled_for_method(Tag tag) const
31 auto i = lower_bound(enabled_methods, tag);
32 return (i!=enabled_methods.end() && *i==tag);
36 void Effect::Template::create_base(Effect &effect) const
38 for(Tag m: enabled_methods)
39 effect.enable_for_method(m);
43 Effect::Template::Loader::Loader(Template &t, Collection &c):
44 CollectionObjectLoader<Template>(t, &c)
47 void Effect::Template::Loader::init_actions()
49 add("content", &Template::content_name);
50 add("enable_for_method", &Loader::enable_for_method);
53 void Effect::Template::Loader::enable_for_method(const string &m)
55 obj.enabled_methods.push_back(m);