/* === S Y N F I G ========================================================= */
-/*! \file valuenode_blinerevtangent.cpp
-** \brief Template File
+/*! \file valuenode_blinereversetangent.cpp
+** \brief Implementation of the "Reverse Tangent" valuenode conversion.
**
** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
-** Copyright (c) 2007 Chris Moore
+** 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
LinkableValueNode(x->get_type())
{
if(x->get_type()!=ValueBase::TYPE_BLINEPOINT)
- throw Exception::BadType(ValueBase::type_name(x->get_type()));
+ throw Exception::BadType(ValueBase::type_local_name(x->get_type()));
set_link("reference",x);
set_link("reverse",ValueNode_Const::create(bool(false)));
}
bool
-ValueNode_BLineRevTangent::set_link_vfunc(int i,ValueNode::Handle x)
+ValueNode_BLineRevTangent::set_link_vfunc(int i,ValueNode::Handle value)
{
assert(i>=0 && i<link_count());
+
switch(i)
{
- case 0:
- reference_=x;
- signal_child_changed()(i);signal_value_changed()();
- return true;
- case 1:
- reverse_=x;
- signal_child_changed()(i);signal_value_changed()();
- return true;
+ case 0: CHECK_TYPE_AND_SET_VALUE(reference_, get_type());
+ case 1: CHECK_TYPE_AND_SET_VALUE(reverse_, ValueBase::TYPE_BOOL);
}
return false;
}
ValueNode_BLineRevTangent::get_link_vfunc(int i)const
{
assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return reference_;
ValueNode_BLineRevTangent::link_name(int i)const
{
assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return "reference";
ValueNode_BLineRevTangent::link_local_name(int i)const
{
assert(i>=0 && i<link_count());
+
switch(i)
{
case 0: return _("Reference");