Layer::Layer():
active_(true),
- z_depth_(0.0f),
- dirty_time_(Time::end())
+ z_depth(0.0f),
+ dirty_time_(Time::end())//,
+ //z_depth_static(false)
{
_LayerCounter::counter++;
+ Vocab vocab=get_param_vocab();
+ Vocab::const_iterator viter;
+ for(viter=vocab.begin();viter!=vocab.end();viter++)
+ {
+ static_params.insert(make_pair(viter->get_name(),false));
+ }
}
Layer::LooseHandle
bool
Layer::set_param(const String ¶m, const ValueBase &value)
{
- if(param=="z_depth" && value.same_type_as(z_depth_))
+ IMPORT(z_depth)
+ return false;
+}
+
+bool
+Layer::set_param_static(const String ¶m, const bool x)
+{
+ Sparams::iterator iter;
+
+ for(iter=static_params.begin();iter!=static_params.end();iter++)
{
- z_depth_=value.get(z_depth_);
- return true;
+ if(iter->first == param)
+ {
+ iter->second = x;
+ return true;
+ }
}
+ //SET_STATIC(z_depth,x)
+
return false;
}
+
+bool
+Layer::get_param_static(const String ¶m) const
+{
+
+ Sparams::const_iterator iter;
+
+ for(iter=static_params.begin();iter!=static_params.end();iter++)
+ {
+ if(iter->first == param)
+ {
+ return iter->second;
+ }
+ }
+ //GET_STATIC(z_depth);
+
+ return false;
+}
+
+
etl::handle<Transform>
Layer::get_transform()const
{
Layer::get_z_depth(const synfig::Time& t)const
{
if(!dynamic_param_list().count("z_depth"))
- return z_depth_;
+ return z_depth;
return (*dynamic_param_list().find("z_depth")->second)(t).get(Real());
}
Layer::get_param(const String & param)const
{
if(param=="z_depth")
- return get_z_depth();
-
+ {
+ synfig::ValueBase ret(get_z_depth());
+ ret.set_static(get_param_static(param));
+ return ret;
+ }
return ValueBase();
}
{
Layer::Vocab ret;
- ret.push_back(ParamDesc(z_depth_,"z_depth")
+ ret.push_back(ParamDesc(z_depth,"z_depth")
.set_local_name(_("Z Depth"))
.set_animation_only(true)
);