/* === S Y N F I G ========================================================= */
-/*! \file valuenode_subtract.cpp
+/*! \file valuenode_stripes.cpp
** \brief Template File
**
-** $Id: valuenode_stripes.cpp,v 1.1.1.1 2005/01/04 01:23:15 darco Exp $
+** $Id$
**
** \legal
-** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
**
-** This software and associated documentation
-** are CONFIDENTIAL and PROPRIETARY property of
-** the above-mentioned copyright holder.
+** This package is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License as
+** published by the Free Software Foundation; either version 2 of
+** the License, or (at your option) any later version.
**
-** You may not copy, print, publish, or in any
-** other way distribute this software without
-** a prior written agreement with
-** the copyright holder.
+** This package is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
** \endlegal
*/
/* ========================================================================= */
ValueNode_Stripes::create(const ValueBase& x)
{
ValueBase::Type id(x.get_type());
-
+
if(id!=ValueBase::TYPE_GRADIENT)
{
assert(0);
- throw runtime_error("synfig::ValueNode_Stripes:Bad type "+ValueBase::type_name(id));
- }
+ throw runtime_error("synfig::ValueNode_Stripes:Bad type "+ValueBase::type_name(id));
+ }
ValueNode_Stripes* value_node=new ValueNode_Stripes();
assert(value_node->get_type()==id);
-
+
return value_node;
}
synfig::ValueBase
synfig::ValueNode_Stripes::operator()(Time t)const
{
- const int total((*stripes_)(t).get(int()));
+ const int total((*stripes_)(t).get(int()));
int i;
Gradient ret;
const Color color1((*color1_)(t).get(Color()));
const Color color2((*color2_)(t).get(Color()));
const float width(max(0.0,min(1.0,(*width_)(t).get(Real()))));
-
+
const float stripe_width_a(width/total);
const float stripe_width_b((1.0-width)/total);
-
+
for(i=0;i<total;i++)
{
float pos(float(i)/total+stripe_width_b/2);
return _("Stripe Count");
case 3:
return _("Width");
+ default:
+ return String();
}
- return String();
-}
+}
String
ValueNode_Stripes::link_name(int i)const
return "stripes";
case 3:
return "width";
+ default:
+ return String();
}
- return String();
-}
+}
int
ValueNode_Stripes::get_link_index_from_name(const String &name)const