/* === S Y N F I G ========================================================= */
/*! \file outline.cpp
-** \brief Template
+** \brief Implementation of the "Outline" layer
**
** $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
SYNFIG_LAYER_INIT(Outline);
SYNFIG_LAYER_SET_NAME(Outline,"outline");
-SYNFIG_LAYER_SET_LOCAL_NAME(Outline,_("Outline"));
-SYNFIG_LAYER_SET_CATEGORY(Outline,_("Geometry"));
+SYNFIG_LAYER_SET_LOCAL_NAME(Outline,N_("Outline"));
+SYNFIG_LAYER_SET_CATEGORY(Outline,N_("Geometry"));
SYNFIG_LAYER_SET_VERSION(Outline,"0.2");
SYNFIG_LAYER_SET_CVS_ID(Outline,"$Id$");
float m1,m2; // the slopes of each line
- // compute slopes, note the cludge for infinity, however, this will
+ // compute slopes, note the kluge for infinity, however, this will
// be close enough
if ((x1-x0)!=0)
Outline::sync()
{
clear();
+
+ if (!bline.get_list().size())
+ {
+ synfig::warning(string("Outline::sync():")+N_("No vertices in outline " + string("\"") + get_description() + string("\"")));
+ return;
+ }
+
try {
#if 1
const bool loop(bline.get_loop());
+
+ ValueNode_BLine::Handle bline_valuenode;
+ if (bline.get_contained_type() == ValueBase::TYPE_SEGMENT)
+ {
+ bline_valuenode = ValueNode_BLine::create(bline);
+ bline = (*bline_valuenode)(0);
+ }
+
const vector<synfig::BLinePoint> bline_(bline.get_list().begin(),bline.get_list().end());
#define bline bline_
return true;
}
- if( param=="width_list" && value.same_as(width_list))
+ if( param=="width_list" && value.same_type_as(width_list))
{
width_list=value;
//sync();
ret.push_back(ParamDesc("bline")
.set_local_name(_("Vertices"))
- .set_origin("offset")
- .set_scalar("width")
+ .set_origin("origin")
+ .set_hint("width")
.set_description(_("A list of BLine Points"))
);