// tangent.
if( value_desc.parent_is_value_node() &&
value_desc.get_parent_value_node()->get_type()==ValueBase::TYPE_BLINEPOINT &&
- (value_desc.get_index()==4 || value_desc.get_index()==5) &&
+ (value_desc.get_name()=="t1" || value_desc.get_name()=="t2") &&
+ //(value_desc.get_index()==4 || value_desc.get_index()==5) &&
(*value_desc.get_parent_value_node())(time).get(BLinePoint()).get_split_tangent_flag()==false)
{
{
Vector t2((*parent_value_node->get_link("t2"))(time));
}
- if (value_desc.get_index()==4) {
+ //if (value_desc.get_index()==4) {
+ if (value_desc.get_name()=="t1") {
ValueNode_Composite::Handle parent_value_node;
parent_value_node=parent_value_node.cast_dynamic(value_desc.get_parent_value_node());
action->set_param("canvas_interface",get_canvas_interface());
action->set_param("time",time);
action->set_param("new_value",value);
- action->set_param("value_desc",ValueDesc(parent_value_node,5));
+ action->set_param("value_desc",ValueDesc(parent_value_node, parent_value_node->get_link_index_from_name("t2")));
if(!action->is_ready())
throw Error(Error::TYPE_NOTREADY);
case ValueBase::TYPE_VECTOR:
{
Angle old_angle = (*(ValueNode_RadialComposite::Handle::cast_dynamic(
- value_desc.get_value_node())->get_link_vfunc(1)))(time).get(Angle());
+ value_desc.get_value_node())->get_link("theta")))(time).get(Angle());
Vector vect(value.get(Vector()));
components[0]=vect.mag();
Angle change = Angle(Angle::tan(vect[1],vect[0])) - old_angle;
action->set_param("canvas",get_canvas());
action->set_param("canvas_interface",get_canvas_interface());
action->set_param("time",time);
- action->set_param("new_value",(*parent_value_node->get_link(4))(time));
- action->set_param("value_desc",ValueDesc(parent_value_node,5));
+ action->set_param("new_value",(*parent_value_node->get_link("t1"))(time));
+ action->set_param("value_desc",ValueDesc(parent_value_node,parent_value_node->get_link_index_from_name("t2")));
if(!action->is_ready())
throw Error(Error::TYPE_NOTREADY);
action->set_param("canvas_interface",get_canvas_interface());
action->set_param("time",time);
action->set_param("new_value",average);
- action->set_param("value_desc",ValueDesc(parent_value_node,4));
+ action->set_param("value_desc",ValueDesc(parent_value_node,parent_value_node->get_link_index_from_name("t1")));
if(!action->is_ready())
throw Error(Error::TYPE_NOTREADY);
action->set_param("canvas_interface",get_canvas_interface());
action->set_param("time",time);
action->set_param("new_value",average);
- action->set_param("value_desc",ValueDesc(parent_value_node,5));
+ action->set_param("value_desc",ValueDesc(parent_value_node,parent_value_node->get_link_index_from_name("t2")));
if(!action->is_ready())
throw Error(Error::TYPE_NOTREADY);
}
*/
-
+ ValueBase local_value;
+ local_value.set_static(false);
+ if(!value_desc.is_value_node() || ValueNode_Const::Handle::cast_dynamic(value_desc.get_value_node()))
+ {
+ if(value_desc.is_value_node())
+ local_value=ValueNode_Const::Handle::cast_dynamic(value_desc.get_value_node())->get_value();
+ else
+ local_value=value_desc.get_value();
+ }
// If we are in animate editing mode
- if(get_edit_mode()&MODE_ANIMATE)
+ if(get_edit_mode()&MODE_ANIMATE && !local_value.get_static())
{
ValueNode_Animated::Handle& value_node(value_node_animated);
if(ValueNode_Const::Handle::cast_dynamic(value_desc.get_value_node()))
{
Action::Handle action(ValueNodeConstSet::create());
-
+ synfig::ValueNode_Const::Handle localvaluenode(ValueNode_Const::Handle::cast_dynamic(value_desc.get_value_node()));
+ value.set_static(localvaluenode->get_static());
action->set_param("canvas",get_canvas());
action->set_param("canvas_interface",get_canvas_interface());
action->set_param("value_node",value_desc.get_value_node());
if(value_desc.parent_is_layer_param() && !value_desc.is_value_node())
{
Action::Handle layer_param_set(LayerParamSet::create());
-
+ synfig::ValueBase localvalue(value_desc.get_value());
+ value.set_static(local_value.get_static());
layer_param_set->set_param("canvas",get_canvas());
layer_param_set->set_param("canvas_interface",get_canvas_interface());
layer_param_set->set_param("layer",value_desc.get_layer());