projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ignore generated files, such as PNG files.
[synfig.git]
/
synfig-core
/
trunk
/
src
/
synfig
/
valuenode_range.cpp
diff --git
a/synfig-core/trunk/src/synfig/valuenode_range.cpp
b/synfig-core/trunk/src/synfig/valuenode_range.cpp
index
40104d0
..
fedea25
100644
(file)
--- a/
synfig-core/trunk/src/synfig/valuenode_range.cpp
+++ b/
synfig-core/trunk/src/synfig/valuenode_range.cpp
@@
-1,11
+1,12
@@
/* === S Y N F I G ========================================================= */
/*! \file valuenode_range.cpp
/* === S Y N F I G ========================================================= */
/*! \file valuenode_range.cpp
-** \brief
Template File
+** \brief
Implementation of the "Range" valuenode conversion.
**
** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
**
** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007, 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
@@
-82,7
+83,7
@@
synfig::ValueNode_Range::ValueNode_Range(const ValueBase &value):
break;
default:
assert(0);
break;
default:
assert(0);
- throw runtime_error(
"synfig::ValueNode_Range:Bad type "+ValueBase::type
_name(id));
+ throw runtime_error(
get_local_name()+_(":Bad type ")+ValueBase::type_local
_name(id));
}
assert(min_->get_type()==id);
}
assert(min_->get_type()==id);
@@
-110,10
+111,6
@@
synfig::ValueNode_Range::~ValueNode_Range()
unlink_all();
}
unlink_all();
}
-#define min(x,y) (x>y ? y : x)
-#define max(x,y) (x>y ? x : y)
-#define range(low,high,input) (min(high,max(low,input)))
-
synfig::ValueBase
synfig::ValueNode_Range::operator()(Time t)const
{
synfig::ValueBase
synfig::ValueNode_Range::operator()(Time t)const
{
@@
-138,11
+135,11
@@
synfig::ValueNode_Range::operator()(Time t)const
return maximum;
}
case ValueBase::TYPE_INTEGER:
return maximum;
}
case ValueBase::TYPE_INTEGER:
- return
range((*min_)(t).get(int()), (*max_)(t).get(int()), (*link_)(t).get(int(
)));
+ return
std::max((*min_)(t).get(int()), std::min((*max_)(t).get(int()), (*link_)(t).get(int()
)));
case ValueBase::TYPE_REAL:
case ValueBase::TYPE_REAL:
- return
range((*min_)(t).get(Real()), (*max_)(t).get(Real()), (*link_)(t).get(Real(
)));
+ return
std::max((*min_)(t).get(Real()), std::min((*max_)(t).get(Real()), (*link_)(t).get(Real()
)));
case ValueBase::TYPE_TIME:
case ValueBase::TYPE_TIME:
- return
range((*min_)(t).get(Time()), (*max_)(t).get(Time()), (*link_)(t).get(Time(
)));
+ return
std::max((*min_)(t).get(Time()), std::min((*max_)(t).get(Time()), (*link_)(t).get(Time()
)));
default:
assert(0);
break;
default:
assert(0);
break;
@@
-153,30
+150,22
@@
synfig::ValueNode_Range::operator()(Time t)const
bool
ValueNode_Range::set_link_vfunc(int i,ValueNode::Handle value)
{
bool
ValueNode_Range::set_link_vfunc(int i,ValueNode::Handle value)
{
- assert(i>=0 && i<3);
+ assert(i>=0 && i<link_count());
+
switch(i)
{
switch(i)
{
- case 0:
- min_=value;
- signal_child_changed()(i);signal_value_changed()();
- return true;
- case 1:
- max_=value;
- signal_child_changed()(i);signal_value_changed()();
- return true;
- case 2:
- link_=value;
- signal_child_changed()(i);signal_value_changed()();
- return true;
+ case 0: CHECK_TYPE_AND_SET_VALUE(min_, get_type());
+ case 1: CHECK_TYPE_AND_SET_VALUE(max_, get_type());
+ case 2: CHECK_TYPE_AND_SET_VALUE(link_, get_type());
}
}
-
return false;
}
ValueNode::LooseHandle
ValueNode_Range::get_link_vfunc(int i)const
{
return false;
}
ValueNode::LooseHandle
ValueNode_Range::get_link_vfunc(int i)const
{
- assert(i>=0 && i<3);
+ assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return min_;
switch(i)
{
case 0: return min_;
@@
-195,7
+184,8
@@
ValueNode_Range::link_count()const
String
ValueNode_Range::link_local_name(int i)const
{
String
ValueNode_Range::link_local_name(int i)const
{
- assert(i>=0 && i<3);
+ assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return _("Min");
switch(i)
{
case 0: return _("Min");
@@
-208,7
+198,8
@@
ValueNode_Range::link_local_name(int i)const
String
ValueNode_Range::link_name(int i)const
{
String
ValueNode_Range::link_name(int i)const
{
- assert(i>=0 && i<3);
+ assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return "min";
switch(i)
{
case 0: return "min";