#include <valuenode_dynamiclist.h>
Public Types | |
typedef etl::handle < ValueNode_DynamicList > | Handle |
typedef etl::handle < const ValueNode_DynamicList > | ConstHandle |
Public Member Functions | |
void | add (const ValueNode::Handle &value_node, int index=-1) |
void | add (const ListEntry &value_node, int index=-1) |
void | erase (const ValueNode::Handle &value_node) |
void | reindex () |
int | find_next_valid_entry (int x, Time t) const |
int | find_prev_valid_entry (int x, Time t) const |
virtual ValueNode::LooseHandle | get_link_vfunc (int i) const |
virtual int | link_count () const |
virtual String | link_name (int i) const |
virtual ValueBase | operator() (Time t) const |
Returns the value of the ValueNode at time t. | |
virtual | ~ValueNode_DynamicList () |
virtual String | link_local_name (int i) const |
virtual int | get_link_index_from_name (const String &name) const |
virtual String | get_name () const |
Returns the name of the ValueNode type. | |
virtual String | get_local_name () const |
Returns the localized name of the ValueNode type. | |
bool | get_loop () const |
void | set_loop (bool x) |
ValueBase::Type | get_contained_type () const |
void | insert_time (const Time &location, const Time &delta) |
virtual ValueNode * | clone (const GUID &deriv_guid=GUID()) const |
virtual ListEntry | create_list_entry (int index, Time time=0, Real origin=0.5) |
Static Public Member Functions | |
template<typename iterator> | |
static Handle | create (iterator begin, iterator end) |
static Handle | create (ValueBase::Type id=ValueBase::TYPE_NIL) |
static bool | check_type (ValueBase::Type type) |
static ValueNode_DynamicList * | create_from (const ValueBase &x=ValueBase::TYPE_GRADIENT) |
Public Attributes | |
std::vector< ListEntry > | list |
Protected Member Functions | |
ValueNode_DynamicList (ValueBase::Type container_type=ValueBase::TYPE_NIL) | |
virtual bool | set_link_vfunc (int i, ValueNode::Handle x) |
LinkableValueNode * | create_new () const |
virtual void | get_times_vfunc (Node::time_set &set) const |
Protected Attributes | |
ValueBase::Type | container_type |
bool | loop_ |
Classes | |
class | ListEntry |
Contains a potential list item, and associated timing information. More... |
This ValueNode was originally set up to have a list of ValueNodes and their associated "on" and "off" points. ie: Any time that was directly after an "on" point, the item would be "on", and any time that was directly after an "off" point would be "off". This is pretty intuitive. However, it does have its problems.
The problems arise when we introduce the concept of a Keyframe. Keyframes can be manipulated via the Synfig Application Library. They allow the user to quickly and "automagickly" rearange an animation by moving the associated keyframes. With the old way that the "on" and "off" points were handled, this task became overly complicated.
What is required is a "symmetric" system of describing "on" and "off" points. Instead of the point representing the state of the item after that point in time, we have the point represent only that frame. The state of the item is calculated by looking at the points around it: If either (or both) points are "on", then the current state is "on". Otherwise, the point is "off"
This may be a bit confusing at first, but it is required if we want the keyframe mechanism to "just work".
typedef etl::handle<ValueNode_DynamicList> synfig::ValueNode_DynamicList::Handle |
typedef etl::handle<const ValueNode_DynamicList> synfig::ValueNode_DynamicList::ConstHandle |
ValueNode_DynamicList::ValueNode_DynamicList | ( | ValueBase::Type | container_type = ValueBase::TYPE_NIL |
) | [protected] |
ValueNode_DynamicList::~ValueNode_DynamicList | ( | ) | [virtual] |
void ValueNode_DynamicList::add | ( | const ValueNode::Handle & | value_node, | |
int | index = -1 | |||
) |
void ValueNode_DynamicList::add | ( | const ListEntry & | value_node, | |
int | index = -1 | |||
) |
void ValueNode_DynamicList::erase | ( | const ValueNode::Handle & | value_node | ) |
void ValueNode_DynamicList::reindex | ( | ) |
int ValueNode_DynamicList::find_next_valid_entry | ( | int | x, | |
Time | t | |||
) | const |
int ValueNode_DynamicList::find_prev_valid_entry | ( | int | x, | |
Time | t | |||
) | const |
ValueNode::LooseHandle ValueNode_DynamicList::get_link_vfunc | ( | int | i | ) | const [virtual] |
Implements synfig::LinkableValueNode.
int ValueNode_DynamicList::link_count | ( | ) | const [virtual] |
Implements synfig::LinkableValueNode.
String ValueNode_DynamicList::link_name | ( | int | i | ) | const [virtual] |
Implements synfig::LinkableValueNode.
Returns the value of the ValueNode at time t.
Reimplemented from synfig::ValueNode.
Reimplemented in synfig::ValueNode_BLine.
String ValueNode_DynamicList::link_local_name | ( | int | i | ) | const [virtual] |
int ValueNode_DynamicList::get_link_index_from_name | ( | const String & | name | ) | const [virtual] |
Implements synfig::LinkableValueNode.
String ValueNode_DynamicList::get_name | ( | ) | const [virtual] |
Returns the name of the ValueNode type.
Implements synfig::ValueNode.
Reimplemented in synfig::ValueNode_BLine.
String ValueNode_DynamicList::get_local_name | ( | ) | const [virtual] |
Returns the localized name of the ValueNode type.
Implements synfig::ValueNode.
Reimplemented in synfig::ValueNode_BLine.
bool synfig::ValueNode_DynamicList::get_loop | ( | ) | const [inline] |
void synfig::ValueNode_DynamicList::set_loop | ( | bool | x | ) | [inline] |
ValueBase::Type ValueNode_DynamicList::get_contained_type | ( | ) | const |
static Handle synfig::ValueNode_DynamicList::create | ( | iterator | begin, | |
iterator | end | |||
) | [inline, static] |
Reimplemented from synfig::LinkableValueNode.
Reimplemented in synfig::ValueNode_BLine.
ValueNode_DynamicList::ListEntry ValueNode_DynamicList::create_list_entry | ( | int | index, | |
Time | time = 0 , |
|||
Real | origin = 0.5 | |||
) | [virtual] |
Reimplemented in synfig::ValueNode_BLine.
bool ValueNode_DynamicList::set_link_vfunc | ( | int | i, | |
ValueNode::Handle | x | |||
) | [protected, virtual] |
Implements synfig::LinkableValueNode.
LinkableValueNode * ValueNode_DynamicList::create_new | ( | ) | const [protected, virtual] |
void ValueNode_DynamicList::get_times_vfunc | ( | Node::time_set & | set | ) | const [protected, virtual] |
Function to be overloaded that fills
Reimplemented from synfig::LinkableValueNode.
ValueNode_DynamicList::Handle ValueNode_DynamicList::create | ( | ValueBase::Type | id = ValueBase::TYPE_NIL |
) | [static] |
bool ValueNode_DynamicList::check_type | ( | ValueBase::Type | type | ) | [static] |
Reimplemented in synfig::ValueNode_BLine.
ValueNode_DynamicList * ValueNode_DynamicList::create_from | ( | const ValueBase & | x = ValueBase::TYPE_GRADIENT |
) | [static] |
bool synfig::ValueNode_DynamicList::loop_ [protected] |
std::vector<ListEntry> synfig::ValueNode_DynamicList::list |