ValueNode_DynamicList* value_node(new ValueNode_DynamicList(value_list.front().get_type()));
+ // when creating a list of vectors, start it off being looped.
+ // I think the only time this is used if for creating polygons,
+ // and we want them to be looped by default
+ if (value_node->get_contained_type() == ValueBase::TYPE_VECTOR)
+ value_node->set_loop(true);
+
for(iter=value_list.begin();iter!=value_list.end();++iter)
{
ValueNode::Handle item(ValueNode_Const::create(*iter));
ValueBase
ValueNode_DynamicList::operator()(Time t)const
{
+ if (getenv("SYNFIG_DEBUG_VALUENODE_OPERATORS"))
+ printf("%s:%d operator()\n", __FILE__, __LINE__);
+
std::vector<ValueBase> ret_list;
std::vector<ListEntry>::const_iterator iter;
{
{ ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x)return x; }
- ValueNode_DynamicList* ret=new ValueNode_DynamicList(container_type);
+ ValueNode_DynamicList* ret=dynamic_cast<ValueNode_DynamicList*>(create_new());
ret->set_guid(get_guid()^deriv_guid);
std::vector<ListEntry>::const_iterator iter;
ListEntry list_entry(*iter);
//list_entry.value_node=find_value_node(iter->value_node->get_guid()^deriv_guid).get();
//if(!list_entry.value_node)
- list_entry.value_node=iter->value_node->clone(deriv_guid);
+ list_entry.value_node=iter->value_node->clone(deriv_guid);
ret->add(list_entry);
//ret->list.back().value_node=iter->value_node.clone();
}
LinkableValueNode*
ValueNode_DynamicList::create_new()const
{
- assert(0);
-
- return 0;
+ return new ValueNode_DynamicList(container_type);
}
int