projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove a dependency (introduced r2360) of the (GUI independent) code in
[synfig.git]
/
synfig-studio
/
trunk
/
src
/
synfigapp
/
value_desc.h
diff --git
a/synfig-studio/trunk/src/synfigapp/value_desc.h
b/synfig-studio/trunk/src/synfigapp/value_desc.h
index
5e7a73a
..
ccc562a
100644
(file)
--- a/
synfig-studio/trunk/src/synfigapp/value_desc.h
+++ b/
synfig-studio/trunk/src/synfigapp/value_desc.h
@@
-6,6
+6,7
@@
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2008 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
@@
-31,6
+32,7
@@
#include <synfig/string.h>
#include <synfig/layer.h>
#include <synfig/value.h>
#include <synfig/string.h>
#include <synfig/layer.h>
#include <synfig/value.h>
+#include <synfig/valuenode_animated.h>
#include <synfig/valuenode_const.h>
#include <synfig/canvas.h>
#include <synfig/valuenode_const.h>
#include <synfig/canvas.h>
@@
-50,7
+52,8
@@
class ValueDesc
// Info for ValueNode parent
synfig::ValueNode::Handle parent_value_node;
// Info for ValueNode parent
synfig::ValueNode::Handle parent_value_node;
- int index;
+ int index; // -2 if it's a waypoint, -1 if it's const, >=0 if it's LinkableValueNode
+ synfig::Time waypoint_time;
// Info for exported ValueNode
synfig::Canvas::Handle canvas;
// Info for exported ValueNode
synfig::Canvas::Handle canvas;
@@
-68,7
+71,7
@@
public:
return false;
if((parent_value_node||rhs.parent_value_node) && parent_value_node!=rhs.parent_value_node)
return false;
return false;
if((parent_value_node||rhs.parent_value_node) && parent_value_node!=rhs.parent_value_node)
return false;
- if(
(index>-1||rhs.index>-1) &&
index!=rhs.index)
+ if(index!=rhs.index)
return false;
return true;
}
return false;
return true;
}
@@
-94,6
+97,11
@@
public:
// parent_value_node(parent_value_node),
// index(parent_value_node->get_link_index_from_name(param_name)) { }
// parent_value_node(parent_value_node),
// index(parent_value_node->get_link_index_from_name(param_name)) { }
+ ValueDesc(synfig::ValueNode_Animated::Handle parent_value_node,synfig::Time waypoint_time):
+ parent_value_node(parent_value_node),
+ index(-2),
+ waypoint_time(waypoint_time) { }
+
ValueDesc(synfig::Canvas::Handle canvas,const synfig::String& name):
name(name),
canvas(canvas) { }
ValueDesc(synfig::Canvas::Handle canvas,const synfig::String& name):
name(name),
canvas(canvas) { }
@@
-111,6
+119,7
@@
public:
bool parent_is_value_node()const { return (bool)parent_value_node; }
bool parent_is_linkable_value_node()const { return parent_is_value_node() && index>=0; }
bool parent_is_value_node_const()const { return parent_is_value_node() && index==-1; }
bool parent_is_value_node()const { return (bool)parent_value_node; }
bool parent_is_linkable_value_node()const { return parent_is_value_node() && index>=0; }
bool parent_is_value_node_const()const { return parent_is_value_node() && index==-1; }
+ bool parent_is_waypoint()const { return parent_is_value_node() && index==-2; }
bool parent_is_canvas()const { return (bool)canvas; }
bool is_value_node()const { return parent_is_value_node() || parent_is_canvas() || (parent_is_layer_param() && (bool)layer->dynamic_param_list().count(name)); }
bool parent_is_canvas()const { return (bool)canvas; }
bool is_value_node()const { return parent_is_value_node() || parent_is_canvas() || (parent_is_layer_param() && (bool)layer->dynamic_param_list().count(name)); }
@@
-121,6
+130,7
@@
public:
synfig::ValueNode::Handle get_parent_value_node()const { assert(parent_is_value_node()); return parent_value_node; }
int get_index()const { assert(parent_is_linkable_value_node()); return index; }
synfig::ValueNode::Handle get_parent_value_node()const { assert(parent_is_value_node()); return parent_value_node; }
int get_index()const { assert(parent_is_linkable_value_node()); return index; }
+ synfig::Time get_waypoint_time()const { assert(parent_is_waypoint()); return waypoint_time; }
const synfig::String& get_value_node_id()const { assert(parent_is_canvas()); return name; }
const synfig::String& get_value_node_id()const { assert(parent_is_canvas()); return name; }
@@
-143,8
+153,12
@@
public:
if(parent_is_layer_param() && layer->dynamic_param_list().count(name))
return layer->dynamic_param_list().find(name)->second;
if(parent_is_linkable_value_node())
if(parent_is_layer_param() && layer->dynamic_param_list().count(name))
return layer->dynamic_param_list().find(name)->second;
if(parent_is_linkable_value_node())
- return
synfig::LinkableValueNode::Handle::cast_reinterpret(parent_value_node
)->get_link(index);
+ return
(synfig::LinkableValueNode::Handle::cast_reinterpret(parent_value_node)
)->get_link(index);
// return reinterpret_cast<synfig::LinkableValueNode*>(parent_value_node.get())->get_link(index);
// return reinterpret_cast<synfig::LinkableValueNode*>(parent_value_node.get())->get_link(index);
+ if(parent_is_value_node_const())
+ return parent_value_node;
+ if(parent_is_waypoint())
+ return (synfig::ValueNode_Animated::Handle::cast_reinterpret(parent_value_node))->find(waypoint_time)->get_value_node();
return 0;
}
return 0;
}
@@
-152,7
+166,7
@@
public:
get_value(synfig::Time time=0)const
{
// if the value is constant, return that constant value (at *any* time, it doesn't matter which)
get_value(synfig::Time time=0)const
{
// if the value is constant, return that constant value (at *any* time, it doesn't matter which)
- if(parent_is_value_node_const()
&& parent_value_node
)
+ if(parent_is_value_node_const())
return (*parent_value_node)(0);
if(is_value_node() && get_value_node())
return (*get_value_node())(time);
return (*parent_value_node)(0);
if(is_value_node() && get_value_node())
return (*get_value_node())(time);