synfig::ValueNode_DynamicList Class Reference

Animated List ValueNode. More...

#include <valuenode_dynamiclist.h>

Inheritance diagram for synfig::ValueNode_DynamicList:

synfig::LinkableValueNode synfig::ValueNode synfig::Node synfig::ValueNode_BLine

List of all members.

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 ValueNodeclone (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< ListEntrylist

Protected Member Functions

 ValueNode_DynamicList (ValueBase::Type container_type=ValueBase::TYPE_NIL)
virtual bool set_link_vfunc (int i, ValueNode::Handle x)
LinkableValueNodecreate_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...


Detailed Description

Animated List ValueNode.

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".


Member Typedef Documentation

typedef etl::handle<ValueNode_DynamicList> synfig::ValueNode_DynamicList::Handle

Reimplemented from synfig::LinkableValueNode.

Reimplemented in synfig::ValueNode_BLine.

typedef etl::handle<const ValueNode_DynamicList> synfig::ValueNode_DynamicList::ConstHandle

Reimplemented from synfig::LinkableValueNode.

Reimplemented in synfig::ValueNode_BLine.


Constructor & Destructor Documentation

ValueNode_DynamicList::ValueNode_DynamicList ( ValueBase::Type  container_type = ValueBase::TYPE_NIL  )  [protected]

ValueNode_DynamicList::~ValueNode_DynamicList (  )  [virtual]


Member Function Documentation

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.

ValueBase ValueNode_DynamicList::operator() ( Time  t  )  const [virtual]

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]

Implements synfig::LinkableValueNode.

Reimplemented in synfig::ValueNode_BLine.

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

template<typename iterator>
static Handle synfig::ValueNode_DynamicList::create ( iterator  begin,
iterator  end 
) [inline, static]

void ValueNode_DynamicList::insert_time ( const Time location,
const Time delta 
)

ValueNode * ValueNode_DynamicList::clone ( const GUID deriv_guid = GUID()  )  const [virtual]

Todo:
This needs to be documented further.

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]

Implements synfig::LinkableValueNode.

Reimplemented in synfig::ValueNode_BLine.

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]

Note:
The construction parameter (id) is the type that the list contains, rather than the type that it will yield (which is ValueBase::TYPE_LIST)

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]


Member Data Documentation

ValueBase::Type synfig::ValueNode_DynamicList::container_type [protected]

bool synfig::ValueNode_DynamicList::loop_ [protected]

std::vector<ListEntry> synfig::ValueNode_DynamicList::list


The documentation for this class was generated from the following files:
Generated on Wed Aug 15 05:00:25 2007 for synfig by  doxygen 1.5.3