/* === S Y N F I G ========================================================= */
/*! \file valuenode_subtract.cpp
-** \brief Template File
+** \brief Implementation of the "Subtract" valuenode conversion.
**
** $Id$
**
#include "vector.h"
#include "angle.h"
#include "real.h"
+#include <ETL/misc>
#endif
case ValueBase::TYPE_COLOR:
return ((*ref_a)(t).get(Color())-(*ref_b)(t).get(Color()))*(*scalar)(t).get(Real());
case ValueBase::TYPE_INTEGER:
- {
- Real ret = ((*ref_a)(t).get(int())-(*ref_b)(t).get(int()))*(*scalar)(t).get(Real()) + 0.5f;
- if (ret < 0) return static_cast<int>(ret-1);
- return static_cast<int>(ret);
- }
+ return round_to_int(((*ref_a)(t).get(int())-(*ref_b)(t).get(int()))*(*scalar)(t).get(Real()));
case ValueBase::TYPE_REAL:
return ((*ref_a)(t).get(Vector::value_type())-(*ref_b)(t).get(Vector::value_type()))*(*scalar)(t).get(Real());
case ValueBase::TYPE_TIME:
bool
ValueNode_Subtract::set_link_vfunc(int i,ValueNode::Handle value)
{
- assert(i>=0 && i<3);
+ assert(i>=0 && i<link_count());
+
switch(i)
{
case 0:
ValueNode::LooseHandle
ValueNode_Subtract::get_link_vfunc(int i)const
{
- assert(i>=0 && i<3);
+ assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return ref_a;
String
ValueNode_Subtract::link_local_name(int i)const
{
- assert(i>=0 && i<3);
+ assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return _("LHS");
String
ValueNode_Subtract::link_name(int i)const
{
- assert(i>=0 && i<3);
+ assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return "lhs";