synfig::Vector vect(duckmatic->snap_point_to_grid(vector)-drag_offset_);
int i;
+ // drag the vertex and position ducks first
for(i=0,iter=selected_ducks.begin();iter!=selected_ducks.end();++iter,i++)
- {
- if((*iter)->get_type()!=Duck::TYPE_VERTEX &&
- (*iter)->get_type()!=Duck::TYPE_POSITION)
- continue;
- (*iter)->set_trans_point(positions[i]+vect);
- }
+ if((*iter)->get_type() == Duck::TYPE_VERTEX || (*iter)->get_type() == Duck::TYPE_POSITION)
+ (*iter)->set_trans_point(positions[i]+vect);
+
+ // then drag the others
for(i=0,iter=selected_ducks.begin();iter!=selected_ducks.end();++iter,i++)
- {
- if((*iter)->get_type()==Duck::TYPE_VERTEX ||
- (*iter)->get_type()==Duck::TYPE_POSITION)
- continue;
- (*iter)->set_trans_point(positions[i]+vect);
- }
+ if((*iter)->get_type() != Duck::TYPE_VERTEX && (*iter)->get_type() != Duck::TYPE_POSITION)
+ (*iter)->set_trans_point(positions[i]+vect);
+
last_translate_=vect;
}
return true;
}
break;
-/* case ValueBase::TYPE_SEGMENT:
+ case ValueBase::TYPE_SEGMENT:
{
etl::handle<Bezier> bezier(new Bezier());
ValueNode_Composite::Handle value_node;
name=guid_string(value_desc);
}
- duck_p=new class Duck(segment.p1);
+ duck_p=new Duck(segment.p1);
duck_p->set_name(name+".P1");
duck_p->set_type(Duck::TYPE_VERTEX);
add_duck(duck_p);
- duck_c=new class Duck(segment.t1);
+ duck_c=new Duck(segment.t1);
duck_c->set_name(name+".T1");
duck_c->set_type(Duck::TYPE_TANGENT);
add_duck(duck_c);
bezier->p1=duck_p;
bezier->c1=duck_c;
- duck_p=new class Duck(segment.p2);
+ duck_p=new Duck(segment.p2);
duck_p->set_name(name+".P2");
duck_p->set_type(Duck::TYPE_VERTEX);
add_duck(duck_p);
- duck_c=new class Duck(segment.t2);
+ duck_c=new Duck(segment.t2);
duck_c->set_type(Duck::TYPE_TANGENT);
duck_c->set_name(name+".T2");
add_duck(duck_c);
return true;
}
break;
-*/
case ValueBase::TYPE_BLINEPOINT:
{
false),
1.0f),
synfigapp::ValueDesc(value_node,i)));
- duck->set_value_desc(synfigapp::ValueDesc(value_node,i));
if(param_desc)
{
false),
1.0f),
synfigapp::ValueDesc(value_node,i)));
- duck->set_value_desc(synfigapp::ValueDesc(value_node,i));
add_bezier(bezier);
bezier=0;
false),
1.0f),
synfigapp::ValueDesc(value_node,i)));
- duck->set_value_desc(synfigapp::ValueDesc(value_node,i));
}
false),
1.0f),
synfigapp::ValueDesc(value_node,first)));
- duck->set_value_desc(synfigapp::ValueDesc(value_node,first));
add_bezier(bezier);
bezier=0;
synfigapp::ValueDesc(value_node,first)));
}
}
- /*else if(value_node->get_contained_type()==ValueBase::TYPE_SEGMENT)
+ else if(value_node->get_contained_type()==ValueBase::TYPE_SEGMENT)
{
for(i=0;i<value_node->link_count();i++)
{
return false;
}
}
- */
else
return false;
}